Jump to content

Qmk: Difference between revisions

From NixOS Wiki
Klinger (talk | contribs)
m link. category hardware
Axka (talk | contribs)
Make code blocks use File template
Line 10: Line 10:
To access the keyboard for configuration as a normal non-root user add the following nixos configuration:
To access the keyboard for configuration as a normal non-root user add the following nixos configuration:


<syntaxHighlight lang=nix>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
{
   hardware.keyboard.qmk.enable = true
   hardware.keyboard.qmk.enable = true
}
}
</syntaxHighlight>
</nowiki>}}


After that you can configure keyboard settings using the [https://www.caniusevia.com/ Via] app (if your firmware has enabled support for it).
After that you can configure keyboard settings using the [https://www.caniusevia.com/ Via] app (if your firmware has enabled support for it).
Line 23: Line 23:
=== Installation ===
=== Installation ===
Install the VIA package, and add the package to udev. The nixpkg disables the prompt to add the udev due to compatibility issues with NixOS, so it's necessary for the app to detect your keyboard.
Install the VIA package, and add the package to udev. The nixpkg disables the prompt to add the udev due to compatibility issues with NixOS, so it's necessary for the app to detect your keyboard.
<syntaxHighlight lang=nix>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
{
   environment.systemPackages = with pkgs; [
   environment.systemPackages = with pkgs; [
Line 31: Line 31:
}
}


</syntaxHighlight>
</nowiki>}}


After updating udev rules a system restart is required for the changes to take effect.  
After updating udev rules a system restart is required for the changes to take effect.  

Revision as of 21:16, 11 July 2025

QMK

QMK (Quantum Mechanical Keyboard) is an open-source firmware for mechanical keyboards that enables users to customize and program various aspects of their keyboards. It provides a rich set of features for customization, including keymaps, macros, LED backlighting, and layers.

QMK is built on top of the popular AVR and ARM microcontrollers, making it compatible with a wide range of keyboards, including custom and commercial keyboards. It allows users to create fully programmable keyboard layouts, which can then be saved, shared, and reused across different boards or devices.


NixOS configuration

To access the keyboard for configuration as a normal non-root user add the following nixos configuration:

❄︎ /etc/nixos/configuration.nix
{
  hardware.keyboard.qmk.enable = true
}

After that you can configure keyboard settings using the Via app (if your firmware has enabled support for it).

VIA

VIA is a feature in QMK that lets you change your keymap on your keyboard without needing to reflash firmware. Your keyboard must support VIA in order for it to work.

Installation

Install the VIA package, and add the package to udev. The nixpkg disables the prompt to add the udev due to compatibility issues with NixOS, so it's necessary for the app to detect your keyboard.

❄︎ /etc/nixos/configuration.nix
{
  environment.systemPackages = with pkgs; [
     via
  ];
  services.udev.packages = [ pkgs.via ];
}

After updating udev rules a system restart is required for the changes to take effect.

Flashing custom firmware

The qmk commandline application is fully supported in nixpkgs. After doing nix-shell -p qmk you can follow the upstream documentation for building, customizing and flashing your keyboard