Dotfiles powered by Nix™, plus a package overlay and a library of utility functions.
- Display manager: tuigreet
- Window manager: niri
- Desktop shell: under construction
- Terminal: foot
- Shell: Nu
- Prompt: starship
- Color theme: catppuccin
- Using darkman to automatically switch theme based on home-manager configurations
- A module to control RGB on framework desktop
- Xray vless-tcp-xtls-reality tproxy configuration
- Using haumea:
- to generate lists and trees of modules for
homeandnixos - as a module system for
lib
- to generate lists and trees of modules for
- Using disko to declare partitions
base-plymouth-rings_2(unused): sets plymouth theme to rings 2catppuccin-catppuccincatppuccin-fonts: installs fonts for the catppuccin themecatppuccin-plymouthcatppuccin-sddm(unused)hardware-dell-inspiron-7405(deprecated)hardware-framework-12-13th-gen-intelhardware-framework-desktop-amd-ai-max-300-serieshardware-keyboard-halo65(deprecated)hardware-vultr-cc-intel-regular: configures hardware for vultr intel VPShardware-xiaomi-redmibook-16-pro-2024(deprecated)profiles-base: set essential options for all hostsprofiles-desktop: enables services for PCsprofiles-desktop-with-ai: enables services for AI-capable PCsprofiles-graphical: sets essential options for graphical hostsprofiles-graphical-fullsets full options for graphical hostsprofiles-laptop: enables services for laptopsprofiles-server: sets options for serversservices-framework_rgbafan: controls RGB on framework desktopservices-xray: configures xray
base-cursorsbase-fastfetch: themes fastfetchbase-footbase-ghostty(unused)base-hyprland-dynamic-cursors(unused): configures dynamic cursors plugin for hyprlandbase-nushellbase-starshipcatppuccin-catppuccin: declares options for the catppuccin themecatppuccin-cursorscatppuccin-discord(deprecated)catppuccin-fcitx5catppuccin-fonts: installs fonts for the catppuccin themecatppuccin-footcatppuccin-ghostty(unused)catppuccin-gtkcatppuccin-hyprland(unused)catppuccin-niricatppuccin-plasma6(unused)colloid-fcitx5(unused)colloid-firefox(unused)colloid-fonts(unused)colloid-gtk(unused)colloid-plasma6(unused)profiles-base: sets essential options for all hostsprofiles-build-config(deprecated): prevents installation of packages (only installs configs)profiles-full: sets full options for all hostsprofiles-hyprland(unused): enables services for hosts running hyprlandprofiles-niri: enables services for hosts running niri
I try to make the structure as close to that of nixpkgs as possible, differing from it only when it makes sense.
Tip
Each part of this repo (home, lib, nixos, pkgs) has a subflake that can
be used as flake input by specifying a directory like this:
github:Weathercold/nixfiles?dir=home
nixfiles/
├ home/ home manager config
│ ├ configurations/ home configurations
│ │ ├ weathercold/ personal configurations
│ │ │ └ nixos-fwlaptop.nix, ...
│ │ ├ custom.nix example configuration
│ │ └ _options.nix configuration abstraction
│ └ modules/ home modules
│ ├ profiles/ top-level home modules
│ └ services/, programs/, ...
├ nixos/ nixos config
│ ├ configurations/ nixos configurations
│ │ ├ nixos-fwlaptop.nix, ...
│ │ └ _options.nix configuration abstraction
│ └ modules/ nixos modules
│ ├ profiles/ top-level nixos modules
│ └ services/, programs/, ...
├ pkgs/ package repository (follows pkgs/by-name structure)
└ lib/ library of shared expressions
├ modules/ shared modules
└ src/ shared functions
nixfiles/flake.nix
├ home/flake-module.nix
│ ├ configurations/custom.nix, ...
│ ├ configurations/weathercold/nixos-fwlaptop.nix, ...
│ │ ├ _base.nix
│ │ └ ../_options.nix
│ │ └ ../modules/profiles/*, ../modules/services/*, ... all home modules
│ └ modules/profiles/*, modules/themes/*, ... public home modules
├ nixos/flake-module.nix
│ ├ configurations/nixos-fwlaptop.nix, ...
│ │ ├ inputs.nixos-hardware.nixosModules.framework-12-13th-gen-intel, ... 3rd party nixos modules
│ │ └ _options.nix
│ │ └ ../modules/profiles/*, ../modules/services/*, ... all nixos modules
│ └ modules/profiles/*, modules/themes/*, ... public nixos modules
├ pkgs/flake-module.nix
│ └ default.nix
│ └ aa/*, ab/*, ...
└ lib/default.nix
└ src/*