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
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
(append (map specification->package
'( "nss-certs"
"sway"
"dbus-glib"
"hyprland"
"mesa"
"mesa-utils"
"libvdpau"
"android-udev-rules"
"adb"
"fastboot"
"vulkan-tools"
"vulkan-headers"
"libva"
"libva-utils"
"intel-vaapi-driver"
"libvdpau"
"libvdpau-va-gl"
"emacs-next-pgtk"))
%base-packages))
'( "nss-certs"
"sway"
"dbus-glib"
"hyprland"
"mesa"
"mesa-utils"
"libvdpau"
"android-udev-rules"
"adb"
"fastboot"
"vulkan-tools"
"vulkan-headers"
"libva"
"libva-utils"
"intel-vaapi-driver"
"libvdpau"
"libvdpau-va-gl"
"emacs-next-pgtk"))
%base-packages))
(define-public base-system-services
(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 'android android-udev-rules
#:groups '("adbusers"))
(udev-rules-service 'qmk qmk-udev-rules)
(service nix-service-type)

1
qmk/qmk_firmware Submodule

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