A flake-based NixOS / Home Manager configuration for the user andrec on the host seadragon. This repository wires several community flakes (stylix, vicinae, plasma-manager, niri, nixvim, Da...).
View the full tree on GitHub for additional files and context: https://github.com/AndreBClark/nixconfig/tree/main
Important note: this repository does not use nixpkgs overlays for custom packages. Any local package expressions under pkgs/ are simple package expressions (not applied to nixpkgs via overlays).
- Flake: top-level
flake.nix(pins inputs inflake.lock). - System host:
hosts/seadragon— system config, hardware, and host home glue. - User / home-manager:
home/seadragon.nixand thehome/tree (theme, programs, terminal, cli, workspace). - Neovim is configured via nixvim under
home/cli/nvim. - Window / desktop setups:
- KDE / Plasma: files under
home/workspace/kde/. - Niri / Wayland integration:
display/niri.nix(with home-level niri integrations).
- KDE / Plasma: files under
- Theme & styling:
home/theme/stylixandhome/theme/fonts.nix(wallpaper:fallingfrontier.jpg). - Note: rofi and dunst fragments exist but may not be used; they can be removed if you want a cleaner tree.
- flake.nix — inputs/outputs and
nixosConfigurations.seadragon. - hosts/seadragon/
- configuration.nix — imports
nixos/plus display modules (display/dms.nix,display/niri.nix,display/plasma.nix). - hardware.nix, hardware-configuration.nix — hardware options for the host.
- home.nix — wires home-manager and stylix for the host.
- configuration.nix — imports
- home/
- seadragon.nix — user's home-manager entry; imports:
home/default.nix,home/theme,home/programs,home/terminal,home/workspace,home/cli,home/services.
- theme/ — stylix theme, fonts, and theme targets.
- cli/nvim/ — nixvim configuration (options, keymaps, lsp, plugins).
- terminal/ — alacritty, kitty, fish, starship fragments.
- workspace/kde/ — Plasma settings and panels.
- seadragon.nix — user's home-manager entry; imports:
- display/ — display greeter / compositor integration (dms, niri, plasma).
- pkgs/ — local package expressions (not overlays).
- Clone:
- git clone https://github.com/AndreBClark/nixconfig.git
- cd nixconfig
- Optional but convenient:
- export NH_FLAKE="$(pwd)"
- Install/run nh:
- nix shell nixpkgs#nh
- or: nix shell github:nix-community/nh
- System (run on target machine or via SSH):
- nh os switch . -H seadragon
- with NH_FLAKE set: nh os switch -H seadragon
- Home manager (user
andrec):- nh home switch . -c andrec
- with NH_HOME_FLAKE / NH_FLAKE: nh home switch -c andrec
Location: home/cli/nvim/
- default.nix — imports nixvim module and local fragments.
- options.nix — editor options (numbers, tab/shiftwidth, termguicolors, clipboard, folds, sessionoptions, etc.).
- keymaps.nix — leader key mappings, buffer/window mappings, Telescope/LSP bindings, ToggleTerm integration, Ufo folds, etc.
- lsp.nix — language server settings and LSP-related configuration.
- plugins/ — place for plugin overrides or additions.
- nixvim is enabled via
programs.nixvim.enable = trueindefault.nix. - To change editor options: edit
home/cli/nvim/options.nix. - To change keybindings: edit
home/cli/nvim/keymaps.nix. - To add or customize plugins: place overrides or additional plugin expressions in
home/cli/nvim/plugins/. - LSP servers and per-language overrides live in
home/cli/nvim/lsp.nix.
Multiple desktop paths are available; enable the appropriate modules to pick which to activate.
Files: home/workspace/kde/ (default.nix, workspace.nix, panels.nix).
programs.plasma.enable = trueand a set of Plasma customizations (theme, icon theme, cursor, kwin rules).- Bottom panel configured in
panels.nixwith quicklaunch, pager, task manager, system tray, and clock. - Packages for Plasma (kwin, kwayland, plasma-wayland-protocols, plasma-browser-integration, styles, cursors) are included in the home-level package list in
home/workspace/kde/default.nix.
- Panels & widgets: edit
home/workspace/kde/panels.nix. - Global plasma settings: edit
home/workspace/kde/workspace.nix.
- File:
display/niri.nix(imported by host configuration).
- Imports
inputs.niri.nixosModules.niriand enablesprograms.niri(packagepkgs.niri-unstable). - Adds Wayland-related packages to
environment.systemPackages(wl-clipboard, wayland-utils, cage, gamescope, xdg-desktop-portal-gnome, etc). - Sets
environment.variables.NIXOS_OZONE_WL = "1".
- Edit
display/niri.nixto change package choices or environment variables. - See any home-level integrations (e.g.,
home/workspace/niri) or modules referencingdms.niriorvicinaefor greeter/compositor integration.
- Stylix is used via
home/theme/stylix/:- Colorscheme: tokyo-night (variant: storm).
- Wallpaper:
fallingfrontier.jpg(referenced intheme.nix). - Fonts in
home/theme/fonts.nix: JetBrainsMono Nerd Font, Fira Code Nerd Font, Noto Color Emoji.
- If you change the wallpaper file, update the SHA in
home/theme/stylix/theme.nixor use a local path instead of fetchurl.
- Local package expressions in
pkgs/exist (for example, a rofi-launchers expression), but this repository does not use overlays to inject packages into nixpkgs. - To add system packages: edit the appropriate
nixos/module orhosts/seadragon/*(add toenvironment.systemPackages). - To add user packages: add to
home.packagesinhome/seadragon.nixor the module that makes sense (e.g.,home/programs,home/cli,home/terminal).
- nix shell nixpkgs#nh
- export NH_FLAKE="$(pwd)" (optional)
- nh os build . -H seadragon
- nh os switch . -H seadragon
- NH_SHOW_ACTIVATION_LOGS=1 nh os switch . -H seadragon
- nh home build . -c andrec
- nh home switch . -c andrec
- nh clean --keep 3 --keep-since 7d
- nix flake update
- Activation issues: use
NH_SHOW_ACTIVATION_LOGS=1to view activation logs. - Neovim issues: rebuild home or inspect plugin logs;
nh home buildhelps to validate derivations. - If you remove unused fragments (rofi, dunst), make sure nothing imports them.
- If you make changes to files referenced elsewhere (for example, wallpapers or package expressions), update any dependent SHAs or references.
- Prefer adding local package expressions to
pkgs/and referencing them explicitly rather than using overlays.