24
submitted 1 month ago by DarkSpectrum@lemmy.world to c/linux@lemmy.ml

I am a new Linux user and have settled on Ubuntu 24.04.3 LTS in Wayland. In Windows, I used AutoHotKey to automate the keyboard to type repetitive text strings with a hotkey e.g. pressing Alt+E to type my@email.com

I believe the solution in Linux is to install an application like dotool or ydotool and then create a custom shortcut command. The problem is I cannot get dotool and ydotool to work. I'll document the issues I'm having with ydotool as there seems to be more awareness and support for this application.

I am following the instillation instructions here:

https://askubuntu.com/questions/1413829/how-can-i-install-and-use-the-latest-ydotool-keyboard-automation-tool-working-o

Everything seems to go fine until I get to this step and get the following error:

sudo systemctl enable ydotoold

Failed to enable unit: Unit file ydotoold.service does not exist.

I came across this issue which suggests it could be a permissions issue on /dev/uinput and tried to the solution provided in that post but I still can't enable ydotoold after a reboot.

Running this command works:

ydotoold --version

v1.0.4-38-g708e96f

But I am stuck here and not sure how to troubleshoot or progress further. Any help would be appreciated, thank you!

you are viewing a single comment's thread
view the rest of the comments
[-] hades@feddit.uk 4 points 1 month ago

It looks like you’re missing the ydotool.service unit file in the package. Can you check by running dpkg -L ydotool-custom (the name of the package you chose in step 3.4)?

Unit files are how services are defined in most Linux-based desktop systems, similar to services in Windows.

[-] DarkSpectrum@lemmy.world 4 points 1 month ago

Thanks for the reply Hades, the output of that command is:

/.

/usr

/usr/lib

/usr/lib/systemd

/usr/lib/systemd/user

/usr/lib/systemd/user/ydotoold.service

/usr/local

/usr/local/bin

/usr/local/bin/ydotool

/usr/local/bin/ydotoold

/usr/local/share

/usr/local/share/man

/usr/local/share/man/man1

/usr/local/share/man/man1/ydotool.1.gz

/usr/local/share/man/man8

/usr/local/share/man/man8/ydotoold.8.gz

[-] hades@feddit.uk 8 points 1 month ago* (last edited 1 month ago)

Ah okay, it’s a user unit then. Try the following:

$ systemctl --user enable ydotoold
$ systemctl --user start ydotoold
this post was submitted on 05 Jan 2026
24 points (100.0% liked)

Linux

62501 readers
229 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS