Skip to content

Commit 8b9b49a

Browse files
authored
Gnome Wayland ydotool
1 parent 4fd99d9 commit 8b9b49a

1 file changed

Lines changed: 36 additions & 1 deletion

File tree

README.md

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,16 @@ Currently tested with:
88
This daemon does not, in any case modify any system file nor property of any device. So the process is totally reversible just by deleting the files and at most rebooting.
99

1010
CAUTION, in this alpha version the run option wont work for text environment commands, like for example `top`.
11-
As an alpha version, it is very prone to bugs and other sorts of failure. I release this project without any sort of warranty, so use under your own responsibility.
11+
As an alpha version, it is very prone to bugs and other sorts of failure. I release this project without any sort of warranty, so use under your own resp## What is this really?
12+
13+
NagaKeyMapper is not just a button remapper.
14+
15+
It is a userspace input translation daemon that converts the Razer Naga side keypad
16+
into a modal programmable keyboard under Wayland, using ydotool as a virtual device.
17+
18+
In other words: a QMK-like layer system for a mouse, without kernel modules.onsibility.
19+
20+
Keywords: Wayland input injection, uinput, evdev remapping, Razer Naga Linux, MMO mouse Linux
1221

1322
## CONFIGURATION
1423
The configuration file `mapping_xx.txt` has the following syntax:
@@ -79,3 +88,29 @@ The installation process automatically executes the daemon in the background and
7988
## UNINSTALLATION
8089

8190
To uninstall you just need to run ```$bash uninstall.sh```.
91+
92+
## Architecture
93+
94+
Device → evdev → naga → action parser → ydotool → virtual keyboard → compositor
95+
96+
The daemon grabs raw events from /dev/input and injects new ones through uinput.
97+
No X11 dependency, pure Wayland compatible.
98+
99+
## Why not xdotool?
100+
101+
Wayland does not allow synthetic keyboard input from clients.
102+
xdotool therefore fails in GNOME/Wayland sessions.
103+
104+
ydotool works because it writes to a virtual kernel input device (uinput).
105+
This daemon translates mouse buttons into kernel-level keyboard events.
106+
107+
## Dynamic profiles
108+
109+
Mappings can be switched instantly from the mouse itself:
110+
111+
7-chmap=mapping_02.txt
112+
113+
No restart required. The daemon reloads configuration live.
114+
115+
This allows modal workflows:
116+
navigation / editing / window manager layers

0 commit comments

Comments
 (0)