Skip to content

Add experimental Linux port (GNOME 45-50 and X11) - #18

Draft
AbdulRehman56 wants to merge 3 commits into
nilbuild:mainfrom
AbdulRehman56:linux-port-upstream
Draft

AbdulRehman56 wants to merge 3 commits into
nilbuild:mainfrom
AbdulRehman56:linux-port-upstream

Conversation

@AbdulRehman56

@AbdulRehman56 AbdulRehman56 commented Nov 8, 2026 •

Copy link
Copy Markdown

This adds an optional, experimental Linux implementation alongside the existing macOS app: a GNOME Shell 45–50 companion for Wayland and a Rust overlay for X11. GNOME 45–49 are experimental, with versioned API inspection and mocked coverage only. TinyHand's concept, original app, artwork and sounds are by Kamran Ahmed (@nilbuild), https://github.com/nilbuild/tinyhand and https://tinyhand.app. I maintain this independent Linux port; the original MIT notice is preserved.

The macOS sources and original assets are unchanged. Linux code lives in linux/; the root README only gains a Linux section. The port includes Point/Draw modes, Alt pass-through, a toolbar, GTK4/libadwaita visual settings for 36 hands plus a laser, tap sounds, shortcuts, a per-user installer, packaging scripts, and Linux CI. The extension ZIP contains resized alpha artwork and all sounds; the X11 tarball installs without Cargo.

Local verification: 9 Rust tests, 23 companion tests (including GNOME 45–50 API shapes and native-preferences input release), Rust rendering self-test, schema validation, JavaScript/shell syntax, ZIP content checks, and isolated tarball install/uninstall. All 36 hands rendered with the latest Cairo-only Shell code; GTK settings layout/save checks also passed again on the maintainer's desktop. GNOME 50.1 is the only desktop-tested Shell version; the latest compatibility changes were not hot-loaded. Installed Mutter 18/Cairo APIs were introspected. CI repeats the rendering and settings tests, including the actual unpacked ZIP. Preferences require GTK 4.8+ and libadwaita 1.4+. linux/COMPATIBILITY.md records sources and test limits.

This is a draft for feedback, with incomplete macOS parity. Custom hands, pin reordering, complete hotkey settings, mixed-scale/multi-monitor behavior, shortcut conflicts, and interaction with other extensions need further work/testing. X11 remains experimental; other Wayland compositors are unsupported. GNOME Extensions submission is awaiting review, not approved. The fork's Linux prerelease workflow publishes only after all checks pass and is restricted to AbdulRehman56/tinyhand; it cannot publish an upstream release.

Linux documentation: linux/README.md, linux/CONTRIBUTING.md, and linux/RELEASE_NOTES.md.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant