2026-04-27 15:16:04 +02:00
2026-06-20 14:01:36 +02:00
2026-05-25 17:53:42 +02:00
2026-06-14 11:19:36 +02:00
2026-06-14 17:26:24 +02:00
2026-05-24 12:26:46 +02:00
2026-06-08 16:16:51 +02:00

⚠️ Documentation outdated. I recently rewrote the entire config using the dendritic pattern. One of these days, I will update the README.

NixOS Configuration

NixOS configuration

Installation Guide

⚠️ Important Notes
Before applying this configuration on another system, make sure to:

  • Update the hostName (in configuration.nix and home.nix).

Requirements: git installed. Then run:

cd
git clone https://github.com/Totorile1/nixos.git
cd nixos
sudo cp /etc/nixos/hardware-configuration.nix ./hosts/laptop/hardware-configuration
sudo nixos-rebuild switch --flake ~/nixos/#laptop

Things That Don't Work Reliably and need manual setup

  • Librewolf's extension settings
  • Librewolf's bookmarks
  • Thunderbird's email servers and settings and birdtray's settings1
  • Inkscape's settings

Configuration Structure

nixos/
├── assets/                # Images, icons, wallpapers, sounds
├── hosts/laptop/          # Host-specific NixOS config
├── modules/
│   ├── home-manager/      # User-level configurations (apps, shell, WM, plugins)
│   ├── nixos/             # System-level modules (daemons, services, udev, ly)
│   ├── qt/                # qt modules (qtbatticon)
│   └── scripts/           # Custom scripts called from keybinds or tools
├── other/
│   ├── kblayouts/         # Framework 16 RGB macropad layout
│   └── quickshell/        # QML configuration for topbar, notifications, screenshot, etc.
├── flake.nix
├── flake.lock
└── README.md

other/quickshell is the older quickshell configuration.


Applications & Tools

Shell & Terminal

Window Management

Browsing & Productivity

Utilities

System & Hardware

Daemons: upower, pipewire, pulseaudio, brightnessctl, playerctl, blueman, udiskie, networkmanager-applet, swww wallpaper daemon

Screenshots, Notifications, Bar and much more!


Keybindings

Window Management

Key Action
$mod + W Toggle floating
$mod + G Toggle group
Alt + Return Fullscreen
$mod + Arrow keys / Alt + Tab Move focus
$mod + Shift + Ctrl + Arrow keys Move window
$mod + Shift + Arrow keys Resize window

Workspaces

Key Action
$mod + 1..0 Switch workspace
$mod + Shift + 1..0 Move window to workspace
$mod + Ctrl + Arrow keys Cycle workspaces
$mod + Mouse wheel Scroll workspace
$mod + S / Alt + $mod + S Special workspace

Layout

Key Action
$mod + A Scroll layout column left
$mod + D Scroll layout column right

Applications

Key Action
$mod + T Terminal
$mod + E File manager
$mod + F Browser
$mod + N Notes
$mod + Shift + A App launcher
$mod + Alt + A Toggle sidebar
$mod + Q Kill apps (Steam/Pomodoro to special workspace)
$mod + L Lock screen
$mod + Shift + S Screenshot a window
F11 Screenshot the whole screen

Multimedia & System

Key Action
F1 Mute audio
F2 / F3 Volume down / up
F4 / F5 / F6 Media prev / play / next
F7 / F8 Brightness down / up
$mod + mouse Move / resize window

Framework 16 RGB Macropad

The Framework 16 RGB macropad is a 4×6 programmable key grid. Each key triggers one of the keybindings above via a macro.

If you dont have the physical macropad, the table below shows which keybinding each macro triggers so you can run it from the keyboard instead:

Macropad Key Linked Action (Hyprland keybinding)
Row 1, Col 1 Kill all apps except focused (Ctrl+$mod+6)
Row 1, Col 2 Performance mode (Ctrl+Alt+7)
Row 1, Col 3 Do not disturb (Ctrl+$mod+4
Row 1, Col 4 Notification center (Ctrl+Alt+1)
Row 2, Col 1 Pulseaudio control (Ctrl+$mod+3)
Row 2, Col 2 Change audio output (Ctrl+Alt+Shift+0)
Row 2, Col 3 Special characters (Ctrl+$mod+3)
Row 2, Col 4 Color picker (Ctrl+Alt+8)
Row 3, Col 1 Pomodoro timer (Ctrl+Alt+0)
Row 4, Col 1 Launch Anki (Ctrl+Alt+9)

Positions are labeled as [row, column] starting from top-left [1,1].
Each macro calls a script or application from this configuration.

Neovim keybinds

Key Action
<Space> <leader>
§ Cheatsheet
<leader>1 Open fold
<leader>2 Close fold
<leader>e4 Previous error
<leader>e5 Next error
<leader>e1 See error message
<leader>e3 See list of errors
<leader>e2 Show correction
<leader>e<Tab> Stop grammar LSP
<leader>f1 Telescope files
<leader>f2 Telescope grep
<leader>f3 Telescope buffers
<leader>f4 Telescope help
<leader>g1 Hover documentation
<leader>g2 Go to definition
<leader>g3 Go to declaration
<leader>g4 Go to implementation
<leader>g5 Show references
<leader><leader> Launch runner (terminal)
<leader>r1 Run fugit
t Count syllabes (french)

All moving macros with <Space>, g, and the recording with q are disabled.

Aliases

Alias Command
snrt git add -A && sudo nixos-rebuild test --flake ~/nixos/#laptop
snrs git add -A && sudo nixos-rebuild switch --flake ~/nixos/#laptop

Useful Information

  • If you have an error similar to Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: App info not found for 'org.quickshell'") see ./modules/other/desktopEntries.nix
  • ls is an alias for eza. If you want more info than the normal ls run eza, l, ll or la
  • qtbatticon is a custom battery icon tray, because cbatticon and batticonplus did not work. Click on it to get more info about the battery.
  • man and manix use fzf for fuzzy search of pages.
  • pkgs-unstable can be used for unstable nixpkgs packages.
  • Nix garbage collection runs weekly, deleting generations older than 7 days.
  • Non-free packages (e.g., Obsidian) are allowed.
  • neovim plugins configured in ./modules/home-manager/neovim.nix
  • oh-my-zsh plugins configured in ./modules/home-manager/oh-my-zsh.nix
  • ripgrep default flags: -S -. -p -n
  • Wallpapers change per workspace (5 paintings from Thomas Coles The Course of Empire).
  • LibreWolf search engines: @q (Quant), @hm (Home-manager), @np (nixpkgs), @nw (Nixwiki), @map (OpenStreetMap).
  • ccat colors cat output when not redirected; disables coloring if output is redirected (e.g., >>) to avoid breaking pipelines.
  • Anki addons: ./modules/nixos/anki.nix
  • TLP config: ./modules/nixos/battery.nix
  • Framework 16 RGB macropad layout: ./other/kblayouts/framework_laptop_16_rgb_macropad.layout.json

  1. You must change in Advanced settings Thunderbird command line to the result of where thunderbird. ↩︎

Languages
Nix 67.2%
QML 32.8%