diff --git a/base/apollo/colemak.kbd b/base/apollo/colemak.kbd new file mode 100644 index 0000000..d756e7b --- /dev/null +++ b/base/apollo/colemak.kbd @@ -0,0 +1,24 @@ +(defcfg + input (device-file "/dev/input/by-id/usb-Razer_Razer_BlackWidow-event-kbd") + + ;; To understand the importance of the following line, see the section on + ;; Compose-key sequences at the near-bottom of this file. + output (uinput-sink "blackwidow-colemak") + + fallthrough true ;; Comment this if you want unhandled events not to be emitted + allow-cmd false ;; Set this to false to disable any command-execution in KMonad +) +(defsrc + grv 1 2 3 4 5 6 7 8 9 0 - = bspc + tab q w e r t y u i o p [ ] \ + caps a s d f g h j k l ; ' ret + lsft z x c v b n m , . / rsft + lctl lmet lalt spc ralt rmet cmp rctl +) +(deflayer colemak + grv 1 2 3 4 5 6 7 8 9 0 - = bspc + tab q w f p g j l u y ; [ ] \ + bspc a r s t d h n e i o ' ret + lsft z x c v b k m , . / rsft + lctl lmet lalt spc ralt rmet cmp rctl +) diff --git a/base/apollo/configuration.nix b/base/apollo/configuration.nix index f014014..d0ae777 100644 --- a/base/apollo/configuration.nix +++ b/base/apollo/configuration.nix @@ -12,6 +12,7 @@ services.blueman.enable = true; services.upower.enable = true; hardware.i2c.enable = true; + hardware.openrazer.enable = true; services.pcscd.enable = true; services.tailscale = { enable = true; @@ -141,6 +142,43 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", MODE="0666 ]; + services.keyd = { + enable = true; + keyboards.blackwidow = { + ids = ["1532:0241"]; + settings.main = { + q = "q"; + w = "w"; + e = "f"; + r = "p"; + t = "g"; + y = "j"; + u = "l"; + i = "u"; + o = "y"; + p = ";"; + capslock = "backspace"; + a = "a"; + s = "r"; + d = "s"; + f = "t"; + g = "d"; + h = "h"; + j = "n"; + k = "e"; + l = "i"; + ";" = "o"; + z = "z"; + x = "x"; + c = "c"; + v = "v"; + b = "b"; + n = "k"; + }; + }; + }; + + # Enable sound with pipewire. services.pulseaudio.enable = false; security.rtkit.enable = true; @@ -164,7 +202,7 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", MODE="0666 users.users.maya = { isNormalUser = true; description = "Maya"; - extraGroups = [ "networkmanager" "wheel" "libvirtd" "qemu-libvirt" "camera" "input" "adbusers"]; + extraGroups = [ "networkmanager" "wheel" "libvirtd" "qemu-libvirt" "camera" "input" "adbusers" "inputs" "uinput" "openrazer"]; }; # Install firefox. @@ -187,6 +225,7 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", MODE="0666 xrizer wayvr-dashboard xwayland-satellite + polychromatic ]; # Some programs need SUID wrappers, can be configured further or are