feat(nix): NixOS integration — ALSA_PLUGIN_DIR + nixosModule#1025
feat(nix): NixOS integration — ALSA_PLUGIN_DIR + nixosModule#1025cjpais merged 1 commit intocjpais:mainfrom
Conversation
d5a5390 to
0739005
Compare
Note: Global hotkeys on Wayland
Update: HandyKeys (evdev backend) works natively on Wayland — no xdotool workaround needed. Set |
|
Just a heads up I don't believe handy keys works generally on Linux, but you can let me know. It's certainly not going to be the default without more testing |
|
Seems to work fine on my Niri on Wayland. 2026-03-13.02-20-07.mp4 |
a26d7e8 to
e590850
Compare
d5b245f to
069fdaf
Compare
|
Updated to put the key fix in handey-keys repo. |
|
I presume there is some auto bump in the nix flake for it to propagate |
069fdaf to
ceca5d9
Compare
what is this fix? |
|
Just adding the missing Insert Key and preventing keyboard hotplugs from
disconnecting listeners.
handy-computer/handy-keys#12
…On Fri, 13 Mar 2026, 07:52 CJ Pais, ***@***.***> wrote:
*cjpais* left a comment (cjpais/Handy#1025)
<#1025 (comment)>
Updated to put the key fix in handey-keys repo.
what is this fix?
—
Reply to this email directly, view it on GitHub
<#1025 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AZ3GVSJTRJXOQS47BWRWLOL4QO43LAVCNFSM6AAAAACWQI62ZOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DANJTGQYDCOBSG4>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
|
@y0usaf @xilec @CaptainSpof @kakapt please confirm this is a good change to have @zitongcharliedeng handy keys#12 should be pulled in tomorrow, just waiting on comment from you there to get more background |
I think setting |
|
For nixosModule, I think it is a good change but can we consider providing home manager module too? |
|
Updated the PR based on feedback: @kakapt re ALSA_PLUGIN_DIR — On my NixOS setup, without ALSA_PLUGIN_DIR set, CPAL gets 0 audio samples. Setting it to the pipewire store path fixed it, consistent with what nixpkgs does for alsa-utils (#432786). But I haven't tested with your PR #787 changes — is the ALSA version mismatch fix sufficient to make CPAL find PipeWire without ALSA_PLUGIN_DIR? Happy to drop it if so. @kakapt re home-manager module — Added |
7a6bf61 to
46493c2
Compare
Yeah, I had the same issue before. I also tried adding |
46493c2 to
0692500
Compare
Thanks for it! I'll test it soon and let you know! |
…ager module - Set ALSA_PLUGIN_DIR to PipeWire's alsa-lib path in package wrapper (NixOS store paths aren't in ALSA's default plugin search) - Add nixosModules.default: udev rule for /dev/uinput, systemPackages - Add homeManagerModules.default: systemd user service for autostart
0692500 to
34bd090
Compare
|
LGTM |
|
everyone here please give confirmation and I will pull it in when there is consensus! |
|
Lgtm |
|
@cjpais I notice that the doc does not mention the udev rules for |
|
@kakapt if you want to submit a PR to them I would gladly pull in |
|
great thanks, just gonna wait for the build to finish here and will pull in |
…ager module (cjpais#1025) - Set ALSA_PLUGIN_DIR to PipeWire's alsa-lib path in package wrapper (NixOS store paths aren't in ALSA's default plugin search) - Add nixosModules.default: udev rule for /dev/uinput, systemPackages - Add homeManagerModules.default: systemd user service for autostart Co-authored-by: zitongcharliedeng <[email protected]> (cherry picked from commit cf284b1)
Summary
Two changes to make Handy work out-of-the-box on NixOS:
1. ALSA_PLUGIN_DIR in package wrapper (
flake.nix, +1 line)On NixOS with PipeWire, CPAL opens the ALSA "default" device but gets 0 audio samples because PipeWire's ALSA plugin isn't on the default search path. Setting
ALSA_PLUGIN_DIRin the gapps wrapper fixes this.2. nixosModule for system-level config (
nix/module.nix, new file)Adds a
nixosModules.defaultoutput so NixOS users can enable Handy with:The module handles system config that the package wrapper cannot:
/dev/uinput(rdevgrab()needs it for virtual input devices)systemPackagesUsers still need to add themselves to the
inputgroup for evdev hotkey access.Test plan
nix flake check --no-buildpassesprograms.handy.enable = truesets up udev rule correctly