[GH-ISSUE #197] How to make uinput based tools work inside the APP container? #131

Closed
opened 2026-10-15 12:56:54 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @zexi on GitHub (Apr 28, 2025).
Original GitHub issue: https://github.com/games-on-whales/wolf/issues/197

Hi,

I want to use the ydotool automation tool to simulate mouse move and click event.

This ydotool utility is implemented based on the uinput module to simulate mouse movement and clicks. It works in the host machine's desktop environment, but fails to function inside the app container.

I entered the app container via docker exec, then installed it using apt install -y ydotool ydotoold. After accessing the desktop through the Moonlight client, I opened two kitty terminal windows: first executed ydotoold, then ran ydotool mousemove 100 100, but observed no mouse movement.

On the host OS can see dmesg shows the event: input: ydotoold virtual device as /devices/virtual/input/input110.

Originally created by @zexi on GitHub (Apr 28, 2025). Original GitHub issue: https://github.com/games-on-whales/wolf/issues/197 Hi, I want to use the [ydotool](https://github.com/ReimuNotMoe/ydotool) automation tool to simulate mouse move and click event. This ydotool utility is implemented based on the uinput module to simulate mouse movement and clicks. It works in the host machine's desktop environment, but fails to function inside the app container. I entered the app container via docker exec, then installed it using `apt install -y ydotool ydotoold`. After accessing the desktop through the Moonlight client, I opened two kitty terminal windows: first executed `ydotoold`, then ran `ydotool mousemove 100 100`, but observed no mouse movement. On the host OS can see dmesg shows the event: `input: ydotoold virtual device as /devices/virtual/input/input110`.
bsakaguchi 2026-10-15 12:56:54 +00:00
  • closed this issue
  • added the
    question
    label
Author
Owner

@ABeltramo commented on GitHub (Apr 30, 2025):

Wolf isolates container input devices in order to avoid overlapping inputs between multiple users. Depending on what you want to achieve you have a few different options:

  • break isolation: just set the flag Priviliged: true in your config.toml
  • manually mount the device: open up a root shell inside the container and use mknod to manually mount the new virtual devices created by ydotool inside the unprivileged container
  • use the Wolf APIs: you can use the APIs to fully control all kind of inputs by talking directly to Wolf. This isn't very well documented but I can help you out.

If you can share some more info on your use case I can probably help you out better!

<!-- gh-comment-id:2842584988 --> @ABeltramo commented on GitHub (Apr 30, 2025): Wolf isolates container input devices in order to avoid overlapping inputs between multiple users. Depending on what you want to achieve you have a few different options: - break isolation: just set the flag `Priviliged: true` in your `config.toml` - manually mount the device: open up a root shell inside the container and use `mknod` to manually mount the new virtual devices created by ydotool inside the unprivileged container - use the Wolf APIs: you can use the APIs to fully control all kind of inputs by talking directly to Wolf. This isn't very well documented but I can help you out. If you can share some more info on your use case I can probably help you out better!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/wolf#131
No description provided.