Welcome to my Nix-based system configuration. This repository contains my personal setup for a modern Linux desktop environment built with NixOS.
This configuration includes a complete desktop environment centered around Wayland, with custom configurations for:
- Window manager: Niri (Wayland compositor)
- Shell: Fish
- Editor: Neovim
- Terminal: Foot
- Browser: Zen Browser
- Status bar: Waybar
- PDF reader: Zathura
- Media player: MPV
- Window Manager: Niri - A tiling Wayland compositor optimized for productivity
- Display Manager: Ly - Lightweight display manager
- Status Bar: Waybar - Highly customizable Wayland bar
- Notifications: Dunst - Customizable notification daemon
- Wallpaper: swww - Smooth wallpaper switcher for Wayland
- Shell: Fish with custom aliases, environment variables, and functions
- Prompt: any-nix-shell integration for improved Nix shell experience
- CLI Tools:
bat- Cat clone with syntax highlightingbroot- Tree explorer with commandsbtop- Resource monitorfzf- Fuzzy finderripgrep- Fast search toolfd- Friendly file finderjust- Command runner (like make but simpler)lsd- Modern ls commandjq- JSON processor
- Editor: Neovim with extensive plugin configuration
- Language Servers: Support for multiple languages via LSP
- Formatters: Alejandra, Stylua, Prettier, Shfmt for various file types
- Code Search: Ripgrep for fast text searching
- Browser: Zen Browser (Firefox-based with privacy enhancements)
- PDF Reader: Zathura - Minimalistic document viewer
- Media Player: MPV - Highly configurable media player
- Image Viewer: Vimiv - Vim-like image viewer
- Torrent Client: qBittorrent Enhanced
- Messaging: Telegram Desktop
- Font Family: Ubuntu (with Nerd Font patches)
- Font Rendering: Antialiasing disabled for crisp text
To install this configuration:
# Link the configuration files (using the provided just command)
just install_config
# Switch to the new system configuration
sudo nixos-rebuild switch --flake .Or use the provided just command:
just nrsThe configuration includes custom Just recipes for common tasks:
just nrs- Switch system configuration with notificationsjust ncg- Clean up Nix storejust install_config- Install dotfile symlinksjust fup- Format files and push updatesjust fmt- Format all files with appropriate tools
- Vim-like keybindings in Fish shell (vi mode)
- Custom wallpaper management with swww
- Clipboard history with cliphist
- Color temperature adjustment with gammastep
- XDG Portal support for sandboxed applications
- Nix direnv integration for automatic environment activation
configuration/- Main NixOS configuration filesdunst/- Notification daemon settingsfish/- Fish shell configurationfoot/- Terminal emulator settingsniri/- Window manager configurationnvim/- Neovim configurationwaybar/- Status bar configurationzathura/- PDF viewer settingsmpv/- Media player settingsvimiv/- Image viewer settings
Do you remember your promise?
