From 6d30f6d579948f80a43bd8b0df085a481b06e193 Mon Sep 17 00:00:00 2001 From: ebardie Date: Fri, 18 Aug 2023 17:24:55 +0100 Subject: [PATCH] fusuma: enable "essential" plugins Specifically the following plugins: fusuma-plugin-appmatcher fusuma-plugin-keypress fusuma-plugin-sendkey fusuma-plugin-tap fusuma-plugin-wmctrl I've not enabled the other plugins available on rubygems for the following reasons: * remap : seems niche functionality and requires further configuration to grant the user access permissions to event devices * thumbsense : pulls in remap (see above) * touchscreen : I've no way of testing. Note: enabling didn't appear to cause any problems. Ideally the plugin functionality would be made available as separate pkgs, but that would require patching Fusuma to search outside of the Gem directory. Enabling this subset of packages for what appears to be widely useful functionality seems a good option. --- .../manual/release-notes/rl-2311.section.md | 1 + pkgs/tools/inputmethods/fusuma/Gemfile | 15 ++++ pkgs/tools/inputmethods/fusuma/Gemfile.lock | 24 +++++- pkgs/tools/inputmethods/fusuma/gemset.nix | 86 +++++++++++++++++++ 4 files changed, 125 insertions(+), 1 deletion(-) diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index ce77ae2dd38b..e8562a7580c4 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -379,6 +379,7 @@ The module update takes care of the new config syntax and the data itself (user If you use this feature, updates to CoreDNS may require updating `vendorHash` by following these steps again. +- `fusuma` now enables the following plugins: [appmatcher](https://github.com/iberianpig/fusuma-plugin-appmatcher), [keypress](https://github.com/iberianpig/fusuma-plugin-keypress), [sendkey](https://github.com/iberianpig/fusuma-plugin-sendkey), [tap](https://github.com/iberianpig/fusuma-plugin-tap) and [wmctrl](https://github.com/iberianpig/fusuma-plugin-wmctrl). ## Nixpkgs internals {#sec-release-23.11-nixpkgs-internals} diff --git a/pkgs/tools/inputmethods/fusuma/Gemfile b/pkgs/tools/inputmethods/fusuma/Gemfile index 9aa2c3ac71a8..deeb92357964 100644 --- a/pkgs/tools/inputmethods/fusuma/Gemfile +++ b/pkgs/tools/inputmethods/fusuma/Gemfile @@ -1,2 +1,17 @@ source 'https://rubygems.org' gem "fusuma" +gem "fusuma-plugin-appmatcher" +gem "fusuma-plugin-keypress" +gem "fusuma-plugin-sendkey" +gem "fusuma-plugin-tap" +gem "fusuma-plugin-wmctrl" + +# I've not activated the following plugins for the reasons given below. + +# touchscreen needs specific h/w support I don't have access to, so I can't confirm +# if it's problem free. A quick check didn't reveal any problems. +#gem "fusuma-plugin-touchscreen" + +# thumbsense pulls in remap, and at best remap requires further configuration to allow the use access to event devices. +#gem "fusuma-plugin-thumbsense" +#gem "fusuma-plugin-remap" diff --git a/pkgs/tools/inputmethods/fusuma/Gemfile.lock b/pkgs/tools/inputmethods/fusuma/Gemfile.lock index 86cbfcfc5d88..e6055e890d47 100644 --- a/pkgs/tools/inputmethods/fusuma/Gemfile.lock +++ b/pkgs/tools/inputmethods/fusuma/Gemfile.lock @@ -2,12 +2,34 @@ GEM remote: https://rubygems.org/ specs: fusuma (3.1.0) + fusuma-plugin-appmatcher (0.6.0) + fusuma (~> 3.0) + rexml + ruby-dbus + fusuma-plugin-keypress (0.8.0) + fusuma (~> 2.0) + fusuma-plugin-sendkey (0.10.1) + fusuma (~> 3.1) + revdev + fusuma-plugin-tap (0.4.2) + fusuma (~> 2.0) + fusuma-plugin-wmctrl (1.3.1) + fusuma (~> 3.1) + revdev (0.2.1) + rexml (3.2.5) + ruby-dbus (0.19.0) + rexml PLATFORMS ruby DEPENDENCIES fusuma + fusuma-plugin-appmatcher + fusuma-plugin-keypress + fusuma-plugin-sendkey + fusuma-plugin-tap + fusuma-plugin-wmctrl BUNDLED WITH - 2.1.4 + 2.4.6 diff --git a/pkgs/tools/inputmethods/fusuma/gemset.nix b/pkgs/tools/inputmethods/fusuma/gemset.nix index bcb624aa5841..a118e56687d4 100644 --- a/pkgs/tools/inputmethods/fusuma/gemset.nix +++ b/pkgs/tools/inputmethods/fusuma/gemset.nix @@ -9,4 +9,90 @@ }; version = "3.1.0"; }; + fusuma-plugin-appmatcher = { + dependencies = ["fusuma" "rexml" "ruby-dbus"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "28e8c59d5984a5723510f19868c37c363bec93e51f6cb7a573170cf7f5b9189f"; + type = "gem"; + }; + version = "0.6.0"; + }; + fusuma-plugin-keypress = { + dependencies = ["fusuma"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "045c1820d909307abb1d232c0cf26bbd88eafa0453004124c07b15fff5d680de"; + type = "gem"; + }; + version = "0.8.0"; + }; + fusuma-plugin-sendkey = { + dependencies = ["fusuma" "revdev"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "f792fec194b611d5d79b93b6694876292c43bee55635d9422f885b6509eeb765"; + type = "gem"; + }; + version = "0.10.1"; + }; + fusuma-plugin-tap = { + dependencies = ["fusuma"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jlw08iw20fpykjglzj4c2fy3z13zsnmi63zbfpn0gmvs05869ys"; + type = "gem"; + }; + version = "0.4.2"; + }; + fusuma-plugin-wmctrl = { + dependencies = ["fusuma"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "067939b2d8b99cf8fce43be40341cda3de3371596a8a4fb24eb13ca84c0bffe5"; + type = "gem"; + }; + version = "1.3.1"; + }; + revdev = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b6zg6vqlaik13fqxxcxhd4qnkfgdjnl4wy3a1q67281bl0qpsz9"; + type = "gem"; + }; + version = "0.2.1"; + }; + rexml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; + type = "gem"; + }; + version = "3.2.5"; + }; + ruby-dbus = { + dependencies = ["rexml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18zbsr03drpx7mknm927i2kz5b49s0lwmrbmsdknfa674z0xy6sm"; + type = "gem"; + }; + version = "0.19.0"; + }; }