forked from mirrors/nixpkgs
nixos/zsa: init at unstable-2020-12-16
add support for ZSA keyboards Co-authored-by: Julien Debon <julien.debon@pm.me>
This commit is contained in:
parent
0e01df647b
commit
0d0ff21f2f
27
nixos/modules/hardware/keyboard/zsa.nix
Normal file
27
nixos/modules/hardware/keyboard/zsa.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkOption mkIf types;
|
||||
cfg = config.hardware.keyboard.zsa;
|
||||
in
|
||||
{
|
||||
# TODO: make group configurable like in https://github.com/NixOS/nixpkgs/blob/0b2b4b8c4e729535a61db56468809c5c2d3d175c/pkgs/tools/security/nitrokey-app/udev-rules.nix ?
|
||||
options.hardware.keyboard.zsa = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enables udev rules for keyboards from ZSA like the ErgoDox EZ, Planck EZ and Moonlander Mark I.
|
||||
You need it when you want to flash a new configuration on the keyboard
|
||||
or use their live training in the browser.
|
||||
Access to the keyboard is granted to users in the "plugdev" group.
|
||||
You may want to install the wally-cli package.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.udev.packages = [ pkgs.zsa-udev-rules ];
|
||||
users.groups.plugdev = {};
|
||||
};
|
||||
}
|
|
@ -47,6 +47,7 @@
|
|||
./hardware/digitalbitbox.nix
|
||||
./hardware/device-tree.nix
|
||||
./hardware/sensor/iio.nix
|
||||
./hardware/keyboard/zsa.nix
|
||||
./hardware/ksm.nix
|
||||
./hardware/ledger.nix
|
||||
./hardware/logitech.nix
|
||||
|
|
33
pkgs/os-specific/linux/zsa-udev-rules/default.nix
Normal file
33
pkgs/os-specific/linux/zsa-udev-rules/default.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{ stdenv, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "zsa-udev-rules";
|
||||
version = "unstable-2020-12-16";
|
||||
|
||||
# TODO: use version and source from nixpkgs/pkgs/development/tools/wally-cli/default.nix after next release
|
||||
src = fetchFromGitHub {
|
||||
owner = "zsa";
|
||||
repo = "wally";
|
||||
rev = "e5dde3c700beab39fb941c6941e55535bf9b2af6";
|
||||
sha256 = "0pkybi32r1hrmpa1mc8qlzhv7xy5n5rr5ah25lbr0cipp1bda417";
|
||||
};
|
||||
|
||||
# it only installs files
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontFixup = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib/udev/rules.d
|
||||
cp dist/linux64/50-oryx.rules $out/lib/udev/rules.d/
|
||||
cp dist/linux64/50-wally.rules $out/lib/udev/rules.d/
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "udev rules for ZSA devices";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ davidak ];
|
||||
platforms = platforms.linux;
|
||||
homepage = "https://github.com/zsa/wally/wiki/Linux-install#2-create-a-udev-rule-file";
|
||||
};
|
||||
}
|
|
@ -16462,6 +16462,7 @@ in
|
|||
waffle = callPackage ../development/libraries/waffle { };
|
||||
|
||||
wally-cli = callPackage ../development/tools/wally-cli { };
|
||||
zsa-udev-rules = callPackage ../os-specific/linux/zsa-udev-rules { };
|
||||
|
||||
wavpack = callPackage ../development/libraries/wavpack { };
|
||||
|
||||
|
|
Loading…
Reference in a new issue