Vial og qmk på NixOS

Original oprettelse: 2024-12-12
Seneste git commit: 2025-05-05

Hvis man har været så heldig at have fået et ergo-mech keyboard til jul, og skal konfigurere sit keymap i Vial på NixOS - opdager man hurtigt at opsætningen af de nødvendige udev regler på NixOS, er en lidt anderledes process end hvad det er på “traditionelle” linux-distributioner.

Nix config #

For at bruge Vial til at customize sit keymap på sit nye tastatur, er man nødt til først på “traditionelle” linux-distributioner at redigere sine udev-filer, som Vial også vil henvise til første gang man opstarter det på en linux-maskine. På NixOS er den nedenstående konfiguration, alt som det kræver for at få Vial til at virke. Så man kan komme igang med at bruge Vial som grafisk konfigurations-værktøj til sit nye tastatur (per NixOS 25.05).

{pkgs, ...}:

{
  environment.systemPackages = with pkgs; [
    vial
  ];

  # tilføj de nødvendige pakker til udev for at Vial kan tilgå tastaturets firmware
  services.udev.packages = with pkgs; [
    vial via
  ];
}

Qmk og compiling af firmware #

For at compile firmware til sit keyboard på nixos, tilføjere man qmk til sin systemPackages, men idet at qmk blot er et værktøj for compilation skal man stadig have sit environment og source code sat op. I tilfældet af vial:

qmk clone -b vial vial-kb/vial-qmk # clone vial repo'et som qmk_firmware fork

cd qmk_firmware # skift til firmware directory

Hvor efter at man kan compile sin firmware for sit keyboard, hvis altså det eksistere i keyboards mappen med følgende command.

qmk compile -kb <keyboard-navn> -km <keymap>

Hvor <keyboard-navn korrespondere til en file-path i keyboard-mappen, og hvor <keymap> ofte vil være vial, men i tilfælde af mixed repo’s kan der også være andre muligheder. Yderligere kan man også ved brug af at sætte “handedness” for split keyboards med eeprom, når man flasher direkte til micro-controlleren gøre følgende:

qmk flash -kb <keyboard-navn> -km <keymap> -bl uf2-split-left # for at flashe venstre halvdel 
qmk flash -kb <keyboard-navn> -km <keymap> -bl uf2-split-right # for at flashe højre halvdel