nerd-dictation icon indicating copy to clipboard operation
nerd-dictation copied to clipboard

Can't make it run with Ydotool on fedora

Open ElSamiru opened this issue 3 years ago • 8 comments

Hey everyone, first of all thanks for this amzing tool, I used on my previous distros (Parrot Os) and it was working smoothly, but now I'm on Fedora 37 and I can't make it run with Ydotool since I'm on Wayland. Can you give a more detailled workaround on how to setup. Especially here : You should then place them in a place that's available on your $PATH environment variable.

ElSamiru avatar Nov 22 '22 10:11 ElSamiru

I downloaded Ydotool with : sudo dnf install ydotool

ElSamiru avatar Nov 22 '22 11:11 ElSamiru

This is what I get on the terminal :

failed to connect socket: No such file or directory
Traceback (most recent call last):
  File "/home/creative/.config/nerd-dictation/nerd-dictation", line 1574, in <module>
    main()
  File "/home/creative/.config/nerd-dictation/nerd-dictation", line 1570, in main
    args.func(args)
  File "/home/creative/.config/nerd-dictation/nerd-dictation", line 1492, in <lambda>
    func=lambda args: main_begin(
                      ^^^^^^^^^^^
  File "/home/creative/.config/nerd-dictation/nerd-dictation", line 1203, in main_begin
    found_any = text_from_vosk_pipe(
                ^^^^^^^^^^^^^^^^^^^^
  File "/home/creative/.config/nerd-dictation/nerd-dictation", line 1006, in text_from_vosk_pipe
    handle_fn_wrapper(text, True)
  File "/home/creative/.config/nerd-dictation/nerd-dictation", line 943, in handle_fn_wrapper
    handle_fn(len(text_prev) - match, text_curr[match:])
  File "/home/creative/.config/nerd-dictation/nerd-dictation", line 197, in simulate_typing_with_ydotool
    run_command_or_exit_on_failure(
  File "/home/creative/.config/nerd-dictation/nerd-dictation", line 50, in run_command_or_exit_on_failure
    subprocess.check_output(cmd)
  File "/usr/lib64/python3.11/subprocess.py", line 465, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/subprocess.py", line 569, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ydotool', 'type', '--next-delay', '5', '--', 'bonjour']' died with <Signals.SIGABRT: 6>.
write() failed: Broken pipe

ElSamiru avatar Nov 22 '22 11:11 ElSamiru

Hi ElSamiru,

try this three commands:

sudo chmod u+s /usr/bin/ydotool ydotoold & ./nerd-dictation begin --simulate-input-tool=YDOTOOL --vosk-model-dir=./model &

It worked for me.

Tom-Obvious avatar Dec 14 '22 16:12 Tom-Obvious

Hey @Tom-Obvious thanks for the reply but it still not working on fedora 37, I install ydotool with sudo dnf install ydotool and then typed your command but I still have no permission.

Do you have a workarround from start to finish on how to setup ?

ElSamiru avatar Jan 06 '23 15:01 ElSamiru

Ah, I have this issue as well... I just posted an issue a minute ago too.

nPrevail avatar Jan 27 '23 00:01 nPrevail

sudo chmod u+s /usr/bin/ydotool ydotoold & ./nerd-dictation begin --simulate-input-tool=YDOTOOL --vosk-model-dir=./model &

This worked for me too!

nPrevail avatar Jan 27 '23 00:01 nPrevail

@Tom-Obvious

How do you implement these commands so that they are always on and permanent when you boot:

sudo chmod u+s /usr/bin/ydotool ydotoold &

It seems I have to keep running the two previous commands after I reboot and when I want to run:
./nerd-dictation begin --simulate-input-tool=YDOTOOL --vosk-model-dir=./model &

nPrevail avatar Jan 27 '23 05:01 nPrevail

I'm not sure what the issue is with ydotool, but you might have more success with the newish dotool support. dotool doesn't require a daemon so it's a bit simpler.

johngebbie avatar Mar 30 '23 10:03 johngebbie