Skip to content

tomasriveral/nixos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

497 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚠️ 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 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.

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 Cole’s 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

Footnotes

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

About

My nixos configuration for both my laptop and desktop

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors