❄️ My personal NixOS configuration. It uses Flakes under the hood.
This configuration includes:
- Window Manager: mangowm (Wayland) with Waybar, Swaylock, and Tokyo Night theme
- Terminal: Kitty with Zsh, Starship prompt
- Editor: Helix with comprehensive language server support
- Development: Go, Python, Rust, Node.js, OpenTofu, Kubectl, and more
- Tools: Claude Code, GitUI, Yazi file manager, Taskwarrior, Bottom monitor
- Security: Secure boot (Lanzaboote), full disk encryption (LUKS)
- Containers: Podman with Compose support
See the terminal commands section below for quick access to key tools.
- Git installed
- NixOS installed (only for the system level part)
This configuration is tailored for a TUXEDO InfinityBook Pro 14 Gen 7 using nixos-hardware.
If you're using different hardware, update the nixos-hardware module in flake.nix.
flake.nix- Flake configuration with system inputs and outputsflake.lock- Locked dependency versionssystem/- System-level NixOS configurationhome/- Home Manager configuration (user-level)home/theme.nix- Tokyo Night color scheme definitionsMakefile- Convenience commands for common operations
- Clone this repo
- (Fresh install only) Partition and format the disk with
nix run github:nix-community/disko -- --mode disko ./system/disks.nix - Install the system level components with
sudo nixos-rebuild switch --flake .#nixos(this also installsnh) - Install the user level components with
nix run github:nix-community/home-manager -- switch --flake .#lena
- Run
make updateto update the Flake lockfile - Run
make systemto update the system level components - Run
make hometo update the user level components
- Run
make cleanto remove old system generations and user profiles (keeps last 5 and all from last 14 days)
The whole setup follows the Tokyo Night color scheme as defined in home/theme.nix.
| Purpose | Color |
|---|---|
| Foreground | |
| Background | |
| Primary | |
| Success | |
| Warning | |
| Danger |
| Function | Keys |
|---|---|
| Open App Launcher | Super + Space |
| Open Terminal | Super + Enter |
| Open Web Browser | Super + W |
| Open Clipboard History | Super + C |
| Open Emoji Picker | Super + E |
| Lock Screen | Super + Ctrl + Q |
| Focus Previous Window | Super + Tab |
| Toggle Window Overview | Super + A or Three-Finger Swipe Up/Down |
| Kill Active Window | Super + Q |
| Toggle Fullscreen Window | Super + F |
| Toggle Floating Window | Super + V |
| Pin Window to All Tags | Super + Y |
| Switch to Window | Super + [hjkl] or Move Mouse |
| Move Window | Super + Shift + [hjkl] or Super + Left Mouse Button |
| Resize Window | Super + Right Mouse Button |
| Switch to Tag | Super + [1-9] |
| Move Window to Empty Tag | Super + Shift + N |
| Move Window to Tag | Super + Shift + [1-9] |
| Open Empty Tag | Super + N |
| Switch to Next Tag | Super + Scroll Up or Three-Finger Swipe Left |
| Switch to Previous Tag | Super + Scroll Down or Three-Finger Swipe Right |
| Switch to Scratchpad | Super + S |
| Move Window to Scratchpad | Super + Shift + S |
| Focus Previous Monitor | Super + [ |
| Focus Next Monitor | Super + ] |
| Move Window to Previous Monitor | Super + Shift + [ |
| Move Window to Next Monitor | Super + Shift + ] |
| Mirror Built-in Display | Super + M |
| Take Screenshot | Print |
| Take and Annotate Screenshot | Shift + Print |
| Function | Command |
|---|---|
| Open Agentic Coding Tool | a |
| Open Text Editor | e |
| Open File Manager | f |
| Open Git Browser | g |
| List Directory Contents | l |
| Open System Monitor | m |
| Open File | o |
| Open Task Manager | t |
| Enable Do-Not-Disturb Mode | do-not-disturb |
| Disable Do-Not-Disturb Mode | do-disturb |
| Update Project Dependencies | depu |
| Switch Git Branch (Fuzzy) | fco |
| Create and Enter Directory | mkcd |
| Update System and Firmware | pacu |