|
22 | 22 | # - gtk-layer-shell: positions the popup as a layer-shell surface |
23 | 23 | # (a plain GTK window can't be placed on Wayland). Built with |
24 | 24 | # introspection so the GtkLayerShell-0.1 typelib is loadable by gi. |
| 25 | +# - ydotool + ydotoold: key injection on Wayland. ydotoold writes to |
| 26 | +# /dev/uinput, which needs the --device=all finish-arg. Bundling it |
| 27 | +# means users don't have to install a host tool for Cut/Paste/Backspace. |
25 | 28 | # Neither ships in GNOME Platform 46, so both are built from source |
26 | 29 | # below with real upstream URL + sha256. |
27 | 30 | # |
28 | | -# NOT bundled - ydotool (key injection / paste chords): |
29 | | -# ydotool needs /dev/uinput + the ydotoold daemon, which a Flatpak |
30 | | -# sandbox cannot provide, so the binary would be inert here. wtype is |
31 | | -# also dead on KWin (no zwp_virtual_keyboard_v1). In-sandbox paste |
32 | | -# therefore needs the libei / XDG RemoteDesktop portal route (future |
33 | | -# work); until then the Wayland paste path degrades to "copy + press |
34 | | -# Ctrl+V yourself". Outside Flatpak the host's ydotool is used. |
35 | | -# |
36 | 31 | # RUNTIME VERSION: org.gnome.Platform//49 (GNOME 46 is EOL). 49 was |
37 | 32 | # verified to ship GTK3, the Handy-1 typelib, and python3-gi on Python |
38 | 33 | # 3.13 - the bundled Python wheels are cp313 to match. Re-check the |
@@ -86,6 +81,7 @@ finish-args: |
86 | 81 | # exactly what the feature does, and LinuxPop is self-distributed (not Flathub). |
87 | 82 | - --talk-name=org.freedesktop.Flatpak |
88 | 83 | - --device=dri # GTK rendering |
| 84 | + - --device=all # ydotoold needs /dev/uinput for key injection |
89 | 85 |
|
90 | 86 | cleanup: |
91 | 87 | - /include |
@@ -235,6 +231,23 @@ modules: |
235 | 231 | url: https://github.com/bugaevc/wl-clipboard/archive/refs/tags/v2.3.0.tar.gz |
236 | 232 | sha256: b4dc560973f0cd74e02f817ffa2fd44ba645a4f1ea94b7b9614dacc9f895f402 |
237 | 233 |
|
| 234 | + # ----- ydotool ----- |
| 235 | + # Key injection on Wayland. ydotool v1.x is pure C99 with no external |
| 236 | + # dependencies and only needs CMake. The companion ydotoold daemon holds |
| 237 | + # a persistent uinput device; the wrapper script starts it at launch. |
| 238 | + # --device=all grants /dev/uinput access inside the sandbox. |
| 239 | + # We patch out the manpage subdir so we don't need scdoc in the SDK. |
| 240 | + - name: ydotool |
| 241 | + buildsystem: cmake-ninja |
| 242 | + config-opts: |
| 243 | + - -DCMAKE_POLICY_VERSION_MINIMUM=3.5 |
| 244 | + sources: |
| 245 | + - type: archive |
| 246 | + url: https://github.com/ReimuNotMoe/ydotool/archive/refs/tags/v1.0.4.tar.gz |
| 247 | + sha256: ba075a43aa6ead51940e892ecffa4d0b8b40c241e4e2bc4bd9bd26b61fde23bd |
| 248 | + - type: patch |
| 249 | + path: ydotool-no-docs.patch |
| 250 | + |
238 | 251 | # ----- python3-dbus (dbus-python) ----- |
239 | 252 | # The Wayland/KDE backend uses dbus-python for KGlobalAccel (global |
240 | 253 | # hotkeys) and KWin scripting over D-Bus; it is NOT in the GNOME runtime, |
|
0 commit comments