Before applying this configuration on another system, make sure to:
- Update the
hostName(inconfiguration.nixandhome.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- Librewolf's extension settings
- Librewolf's bookmarks
- Thunderbird's email servers and settings and birdtray's settings1
- Inkscape's settings
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.
librewolfbrowser- Extensions: AdNauseam, Enhancer for YouTube, TrackMeNot, SponsorBlock
- Privacy options mostly enabled; some disabled to avoid conflicts with AdNauseam
thunderbirdemail clientobsidiannotes and knowledge managementlibreofficefull-featured office suite
cliphistclipboard managerzoxidefaster directory navigationfastfetchsystem infognome-calculatorgnome-charactersgnome-disk-utilitygnome-font-viewernautilusfile managerokulardocument & image viewervlcmedia playerkritaandinkscapefor image editing and drawingankiflashcards for learningtexliveLaTeX distributionbiberbibliography for LaTeXezareplacement forls
bottomsystem monitortomato-cPomodoro timerframework-tool-tuiFramework 16 laptop settings
Daemons: upower, pipewire, pulseaudio, brightnessctl, playerctl, blueman, udiskie, networkmanager-applet, swww wallpaper daemon
| 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 |
| 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 |
| Key | Action |
|---|---|
$mod + A |
Scroll layout column left |
$mod + D |
Scroll layout column right |
| 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 |
| 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 |
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 don’t 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.
| 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) |
| Alias | Command |
|---|---|
snrt |
git add -A && sudo nixos-rebuild test --flake ~/nixos/#laptop |
snrs |
git add -A && sudo nixos-rebuild switch --flake ~/nixos/#laptop |
- 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 lsis an alias foreza. If you want more info than the normallsruneza,l,llorlaqtbatticonis a custom battery icon tray, becausecbatticonandbatticonplusdid not work. Click on it to get more info about the battery.manandmanixusefzffor fuzzy search of pages.pkgs-unstablecan 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.
neovimplugins configured in./modules/home-manager/neovim.nixoh-my-zshplugins configured in./modules/home-manager/oh-my-zsh.nixripgrepdefault flags:-S -. -p -n- Wallpapers change per workspace (5 paintings from Thomas Cole’s The Course of Empire).
- LibreWolf search engines:
@q(Quant),@hm(Home-manager),@np(nixpkgs),@nw(Nixwiki),@map(OpenStreetMap). ccatcolorscatoutput 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
Footnotes
-
You must change in Advanced settings Thunderbird command line to the result of
where thunderbird. ↩
