You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| 1 | Install [build dependencies](#build-dependencies)| CGO backends and runtime libs | All Linux | Yes |
46
46
| 2 | Add user to `input` group: `sudo usermod -aG input "$USER"`|`evdev` keyboard capture **and Neru's own global hotkeys** on Wayland | Wayland | Yes (re-login required) |
47
47
| 3 | Bind `neru <mode>` in compositor keybindings | Only needed if you skip item 2 | Wayland | Yes (user config) |
48
+
| 4 | Make `/dev/uinput` writable (udev rule below) | Scroll injection through a uinput wheel; without it scrolling falls back to the compositor virtual pointer, which Chromium and Electron apps on Hyprland ignore. Also the fast path for `neru key`| Wayland | Yes (udev rule) |
48
49
49
50
Notes:
50
51
@@ -55,6 +56,8 @@ Notes:
55
56
the compositor only if you would rather not grant `/dev/input` access. See
56
57
[Global hotkeys on Wayland](./LINUX_DESKTOPS.md#global-hotkeys-on-wayland).
57
58
- Item 3 cannot be automated by a package; ship example snippets where helpful.
59
+
- Item 4 is what `neru doctor` reports under `capability.scroll` when it is
60
+
missing, and the daemon warns once at the first scroll that falls back.
58
61
59
62
---
60
63
@@ -78,6 +81,30 @@ works but modified clicks may degrade.
78
81
79
82
---
80
83
84
+
## Wayland scroll injection permissions
85
+
86
+
On Wayland, Neru scrolls through a virtual mouse wheel it creates on
87
+
`/dev/uinput`, so the events enter the input stack below the compositor and
88
+
reach every client like a physical wheel. Most distros ship that node as
89
+
root-only (`crw-rw---- root root`). The `input` group from the previous section
90
+
does not cover it; grant it with a udev rule:
91
+
92
+
```bash
93
+
echo'KERNEL=="uinput", GROUP="input", MODE="0660"'| sudo tee /etc/udev/rules.d/99-neru-uinput.rules
94
+
sudo udevadm control --reload && sudo udevadm trigger
95
+
```
96
+
97
+
Confirm with `ls -l /dev/uinput` (group `input`, mode `0660`) and restart the
98
+
daemon. If the node is missing entirely, load the module: `sudo modprobe uinput`.
99
+
100
+
Without it Neru still scrolls, through the compositor's virtual pointer, but
101
+
that path is not honored by every client: Chromium and Electron apps on
102
+
Hyprland scroll a few pixels and then stop. `neru doctor` reports the downgrade
103
+
under `capability.scroll` with the open error, and the daemon logs one warning
0 commit comments