adding qmk to guix

Inside of base we now have the appropriate udev rules and the manifest
to setup qmk. Also we have qmk setup as a submodule.
This commit is contained in:
Chris Cochrun 2023-07-13 06:41:07 -05:00
parent f249d24dd1
commit 4ecebc0cdd
3 changed files with 117 additions and 19 deletions

3
.gitmodules vendored
View file

@ -0,0 +1,3 @@
[submodule "qmk"]
path = qmk/qmk_firmware
url = git@gitlab.com:chriscochrun/qmk_firmware.git

View file

@ -35,27 +35,120 @@ root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL %wheel ALL=(ALL) ALL
YOUR-USER-NAME ALL=(ALL) NOPASSWD:/run/current-system/profile/bin/chvt,/run/current-system/profile/bin/loginctl")) YOUR-USER-NAME ALL=(ALL) NOPASSWD:/run/current-system/profile/bin/chvt,/run/current-system/profile/bin/loginctl"))
(define qmk-udev-rules
(udev-rule
"50-qmk.rules"
(string-append
"# Atmel DFU
### ATmega16U2
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"03eb\", ATTRS{idProduct}==\"2fef\", TAG+=\"uaccess\"
### ATmega32U2
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"03eb\", ATTRS{idProduct}==\"2ff0\", TAG+=\"uaccess\"
### ATmega16U4
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"03eb\", ATTRS{idProduct}==\"2ff3\", TAG+=\"uaccess\"
### ATmega32U4
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"03eb\", ATTRS{idProduct}==\"2ff4\", TAG+=\"uaccess\"
### AT90USB64
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"03eb\", ATTRS{idProduct}==\"2ff9\", TAG+=\"uaccess\"
### AT90USB162
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"03eb\", ATTRS{idProduct}==\"2ffa\", TAG+=\"uaccess\"
### AT90USB128
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"03eb\", ATTRS{idProduct}==\"2ffb\", TAG+=\"uaccess\"
# Input Club
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1c11\", ATTRS{idProduct}==\"b007\", TAG+=\"uaccess\"
# STM32duino
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1eaf\", ATTRS{idProduct}==\"0003\", TAG+=\"uaccess\"
# STM32 DFU
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"0483\", ATTRS{idProduct}==\"df11\", TAG+=\"uaccess\"
# BootloadHID
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"16c0\", ATTRS{idProduct}==\"05df\", TAG+=\"uaccess\"
# USBAspLoader
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"16c0\", ATTRS{idProduct}==\"05dc\", TAG+=\"uaccess\"
# USBtinyISP
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1782\", ATTRS{idProduct}==\"0c9f\", TAG+=\"uaccess\"
# ModemManager should ignore the following devices
# Atmel SAM-BA (Massdrop)
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"03eb\", ATTRS{idProduct}==\"6124\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
# Caterina (Pro Micro)
## pid.codes shared PID
### Keyboardio Atreus 2 Bootloader
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1209\", ATTRS{idProduct}==\"2302\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
## Spark Fun Electronics
### Pro Micro 3V3/8MHz
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1b4f\", ATTRS{idProduct}==\"9203\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
### Pro Micro 5V/16MHz
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1b4f\", ATTRS{idProduct}==\"9205\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
### LilyPad 3V3/8MHz (and some Pro Micro clones)
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1b4f\", ATTRS{idProduct}==\"9207\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
## Pololu Electronics
### A-Star 32U4
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1ffb\", ATTRS{idProduct}==\"0101\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
## Arduino SA
### Leonardo
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"2341\", ATTRS{idProduct}==\"0036\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
### Micro
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"2341\", ATTRS{idProduct}==\"0037\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
## Adafruit Industries LLC
### Feather 32U4
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"239a\", ATTRS{idProduct}==\"000c\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
### ItsyBitsy 32U4 3V3/8MHz
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"239a\", ATTRS{idProduct}==\"000d\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
### ItsyBitsy 32U4 5V/16MHz
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"239a\", ATTRS{idProduct}==\"000e\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
## dog hunter AG
### Leonardo
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"2a03\", ATTRS{idProduct}==\"0036\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
### Micro
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"2a03\", ATTRS{idProduct}==\"0037\", TAG+=\"uaccess\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"
# hid_listen
KERNEL==\"hidraw*\", MODE=\"0660\", GROUP=\"plugdev\", TAG+=\"uaccess\", TAG+=\"udev-acl\"
# hid bootloaders
## QMK HID
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"03eb\", ATTRS{idProduct}==\"2067\", TAG+=\"uaccess\"
## PJRC's HalfKay
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"16c0\", ATTRS{idProduct}==\"0478\", TAG+=\"uaccess\"
# APM32 DFU
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"314b\", ATTRS{idProduct}==\"0106\", TAG+=\"uaccess\"
# GD32V DFU
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"28e9\", ATTRS{idProduct}==\"0189\", TAG+=\"uaccess\"
# WB32 DFU
SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"342d\", ATTRS{idProduct}==\"dfa0\", TAG+=\"uaccess\"
")))
(define-public base-system-packages (define-public base-system-packages
(append (map specification->package (append (map specification->package
'( "nss-certs" '( "nss-certs"
"sway" "sway"
"dbus-glib" "dbus-glib"
"hyprland" "hyprland"
"mesa" "mesa"
"mesa-utils" "mesa-utils"
"libvdpau" "libvdpau"
"android-udev-rules" "android-udev-rules"
"adb" "adb"
"fastboot" "fastboot"
"vulkan-tools" "vulkan-tools"
"vulkan-headers" "vulkan-headers"
"libva" "libva"
"libva-utils" "libva-utils"
"intel-vaapi-driver" "intel-vaapi-driver"
"libvdpau" "libvdpau"
"libvdpau-va-gl" "libvdpau-va-gl"
"emacs-next-pgtk")) "emacs-next-pgtk"))
%base-packages)) %base-packages))
(define-public base-system-services (define-public base-system-services
(append (append
@ -75,6 +168,7 @@ YOUR-USER-NAME ALL=(ALL) NOPASSWD:/run/current-system/profile/bin/chvt,/run/cur
(udev-rules-service 'brightnessctl-udev-rules brightnessctl) (udev-rules-service 'brightnessctl-udev-rules brightnessctl)
(udev-rules-service 'android android-udev-rules (udev-rules-service 'android android-udev-rules
#:groups '("adbusers")) #:groups '("adbusers"))
(udev-rules-service 'qmk qmk-udev-rules)
(service nix-service-type) (service nix-service-type)

1
qmk/qmk_firmware Submodule

@ -0,0 +1 @@
Subproject commit 7dad54fdded54f7ea4bf66214385b77025961536