feature(modules): split configuration into nix modules and home-manager modules #2

Merged
aaron merged 34 commits from feature/modularize into main 2025-12-30 17:51:30 +00:00
25 changed files with 463 additions and 352 deletions

View File

@@ -1,10 +1,10 @@
# 0x29a nixos config # 0x29a nixos config
My personal nixos configuration files. My personal nixos configuration files for different environments.
## basic system installation ## basic system installation
- The installations in this repository are always luks encrypted - The installations presented in this repository are always luks encrypted
- For simplicity I'm using device labels rather than uuids - For simplicity I'm using device labels rather than uuids
1. the partitioning layout should look somewhat like this after the installation 1. the partitioning layout should look somewhat like this after the installation
@@ -111,8 +111,24 @@ $ sudo nixos-rebuild --install-bootloader switch --flake .#host_name
$ cd /path/to/repo $ cd /path/to/repo
$ sudo nix flake update $ sudo nix flake update
$ sudo nixos-rebuild switch --flake .#host_name $ sudo nixos-rebuild switch --flake .#host_name
$ sudo nix-collect-garbage
``` ```
## how to use nix-helper
The tool nix-helper is installed by this configuration. It simplifies administrating nixos and adds more output to the rebuild command. It also features a diff after a successful build. The command uses the `NH_FLAKE` environment variable to be able to run from whatever directory.
Basic commands with a set `NH_FLAKE` variable are:
```bash
$ nh os switch
$ nh os build
$ nh os test
$ nh clean all --keep 5
```
There is also the option to interface with home-manager by using `nh home switch`but this isn't necessary since home-manager is imported as a module in this config.
## author ## author
aaron <aaron@0x29a.ch> aaron <aaron@0x29a.ch>

24
flake.lock generated
View File

@@ -28,11 +28,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1766282146, "lastModified": 1767048910,
"narHash": "sha256-0V/nKU93KdYGi+5LB/MVo355obBJw/2z9b2xS3bPJxY=", "narHash": "sha256-KLFTeA/xquN+F3XHLAXcserk0L0nijbhzuldxNDF1eE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "61fcc9de76b88e55578eb5d79fc80f2b236df707", "rev": "d99b4ca5debaa082c7d76015aa2b7f3fc7e8b5f7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -43,11 +43,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1766070988, "lastModified": 1766902085,
"narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=", "narHash": "sha256-coBu0ONtFzlwwVBzmjacUQwj3G+lybcZ1oeNSQkgC0M=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c6245e83d836d0433170a16eb185cefe0572f8b8", "rev": "c0b0e0fddf73fd517c3471e546c0df87a42d53f4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -66,11 +66,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1766273987, "lastModified": 1767002962,
"narHash": "sha256-Y8hL2zGyt7xn5J1V806GJ9tMEk6NgVlU7xe4dS4fThE=", "narHash": "sha256-HGFRwMRUwt56E+SiVX9YQOzpOwHy0/rtEqMoEbkF8Yg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "ff00fe1512dfcb31b01d770738de9299b434449b", "rev": "63c957603751f0a107c4d9c2cbaff1c8749fc9f1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -86,11 +86,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1766317205, "lastModified": 1767099893,
"narHash": "sha256-PYlMsenwZCG5TrxQSyTraPw8WQwk4FGnbyFdFMuAeYA=", "narHash": "sha256-Z39jG7z4XD+H2KPSgWR0rQS3di1mTblRI5kyqcL3g7w=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-shell", "repo": "noctalia-shell",
"rev": "51aa9fe16b0cc0dc4daa7c447843b36923434f2e", "rev": "015ff66fbd85abda4573d864466ecf9fc64f233b",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -1,74 +1,59 @@
{ {
description = "0x29a ecosystem NixOS flake"; description = "0x29a ecosystem NixOS flake";
inputs = { inputs = {
# the main nix package collection nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs = {
url = "github:nixos/nixpkgs/nixos-unstable";
};
# home manager for dotfiles
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# noctalia shell
noctalia = { noctalia = {
url = "github:noctalia-dev/noctalia-shell"; url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# nixvim
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = inputs@{self, nixpkgs, home-manager, nixvim, ... }: let outputs = { self, nixpkgs, home-manager, nixvim, ... }@inputs: {
lib = nixpkgs.lib;
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in {
nixosConfigurations = { nixosConfigurations = {
# default config
default = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
};
modules = [
# import host specific configs
./hosts/default/configuration.nix
# import host specific hardware configs
./hosts/default/hardware-configuration.nix
];
};
# laptop neon default = nixpkgs.lib.nixosSystem {
neon = nixpkgs.lib.nixosSystem { system = "x86_64-linux";
inherit system; specialArgs = { inherit inputs; };
specialArgs = {
inherit inputs;
};
modules = [ modules = [
# import host specific configs ./hosts/default/hardware-configuration.nix
./hosts/neon/configuration.nix ./hosts/default/configuration.nix
# import host specific hardware configs
./hosts/neon/hardware-configuration.nix
# import noctalia shell configs
./hosts/neon/noctalia.nix
# import home-manager as a module
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; }; home-manager.extraSpecialArgs = { inherit inputs; };
# User specific inputs home-manager.users.aaron.imports = [
home-manager.users.aaron = { nixvim.homeModules.nixvim
imports = [ ./users/aaron/home.nix
nixvim.homeModules.nixvim ];
./hosts/neon/home.nix }
]; ];
}; };
neon = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/neon/hardware-configuration.nix
./hosts/neon/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.aaron.imports = [
nixvim.homeModules.nixvim
./users/aaron/home.nix
];
} }
]; ];
}; };

View File

@@ -1,200 +1,23 @@
{ pkgs, lib, inputs, ... }: { config, pkgs, inputs, ... }:
{ {
imports = imports = [
[ ../../modules/nixos/audio.nix
./hardware-configuration.nix ../../modules/nixos/bootloader.nix
]; ../../modules/nixos/compositor.nix
../../modules/nixos/gnupg.nix
# use flakes ../../modules/nixos/locales.nix
nix.settings.experimental-features = [ "nix-command" "flakes" ]; ../../modules/nixos/networking.nix
../../modules/nixos/noctalia.nix
# configure bootloader ../../modules/nixos/openssh.nix
boot.loader.systemd-boot.enable = true; ../../modules/nixos/packages.nix
boot.loader.efi.canTouchEfiVariables = true; ../../modules/nixos/sddm.nix
../../modules/nixos/services.nix
# plymouth boot eye candy ../../modules/nixos/settings.nix
boot.initrd.systemd.enable = true; ../../modules/nixos/steam.nix
boot.kernelParams = [ "quiet" "loglevel=2" ]; ../../modules/nixos/users.nix
boot.plymouth.enable = true;
boot.plymouth.theme = "spinner";
# use latest kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
# networking
networking.hostName = "neon";
networking.networkmanager.enable = true;
# bluetooth
hardware.bluetooth.enable = true;
# time zone.
time.timeZone = "Europe/Amsterdam";
# select internationalisation properties
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
console = {
font = "Lat2-Terminus16";
keyMap = "de_CH-latin1";
};
# set up niri as window manager
programs.niri.enable = true;
# set up sddm ad display manager
services.displayManager.sddm = {
enable = true;
wayland = {
enable = true;
};
autoNumlock = true;
enableHidpi = true;
theme = "sddm-astronaut-theme";
settings = {
Theme = {
Current = "sddm-astronaut-theme";
};
};
extraPackages = with pkgs; [
sddm-astronaut
];
};
services.tuned.enable = true;
services.upower.enable = true;
environment.pathsToLink = [ "/libexec" ];
environment.variables.EDITOR = "vim";
# enable sound
services.pipewire = {
enable = true;
pulse.enable = true;
};
# define a user account
users.users.aaron = {
isNormalUser = true;
group = "users";
extraGroups = [ "wheel" ];
shell = pkgs.zsh;
};
# browser
programs.firefox.enable = true;
# zsh config
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestions.enable = true;
ohMyZsh = {
enable = true;
plugins = [ "git" "sudo" ];
theme = "gentoo";
};
};
# system packages
environment.systemPackages = with pkgs; [
alacritty
btop
cowsay
dnsutils
efibootmgr
ethtool
file
ghostty
git
gnupg
iftop
imagemagick
imv
iotop
iperf3
jq
kdePackages.qtmultimedia
kitty
ldns
lm_sensors
lsof
ltrace
mtr
neovim
nh
nix-output-monitor
nmap
nvd
p7zip
pciutils
sddm-astronaut
socat
strace
sysstat
tree
unzip
usbutils
vim
wget
which
xwayland-satellite
xz
zip
zstd
]; ];
# Some programs need SUID wrappers
programs.mtr.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# enable steam on this machine
nixpkgs.config.allowUnfree = true;
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
};
# fix black screen in steam on xwayland-satellite
programs.steam.package = pkgs.steam.override {
extraArgs = "-system-composer";
};
# enable the OpenSSH daemon
services.openssh = {
enable = true;
openFirewall = true;
};
# firewall configs
networking.firewall.allowedTCPPorts = [ ];
networking.firewall.allowedUDPPorts = [ ];
# enable home-manager globally
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
# add flake env variable for nh
environment.sessionVariables = {
NH_FLAKE = "/home/aaron/git/nixconfig";
};
# install state version # install state version
system.stateVersion = "25.11"; # Don't change system.stateVersion = "25.11"; # Don't change
} }

View File

@@ -0,0 +1,18 @@
{ config, pkgs, inputs, ... }:
{
programs.git = {
enable = true;
settings = {
push = { autoSetupRemote = true; };
user = {
name = "aaron";
email = "aaron@0x29a.ch";
};
};
signing = {
key = "7A830180A05DAC59CDE43B0677D2F5DB48184456";
signByDefault = true;
};
};
}

View File

@@ -0,0 +1,26 @@
{ config, pkgs, inputs, ... }:
{
programs.nixvim = {
globals.mapleader = " ";
enable = true;
viAlias = false;
vimAlias = true;
opts = {
number = true;
relativenumber = true;
shiftwidth = 2;
tabstop = 2;
expandtab = true;
incsearch = true;
};
colorschemes.nord.enable = true;
plugins.lualine.enable = true;
plugins.nix.enable = true;
plugins.nvim-tree.enable = true;
plugins.treesitter.enable = true;
plugins.telescope.enable = true;
plugins.web-devicons.enable = true;
plugins.indent-blankline.enable = true;
};
}

View File

@@ -0,0 +1,18 @@
{ config, pkgs, inputs, ... }:
{
# user packages
home.packages = with pkgs; [
discord
fastfetch
keepassxc
nerd-fonts.sauce-code-pro
powerline-fonts
powerline-symbols
screenfetch
];
# services and other software
services.syncthing.enable = true;
programs.home-manager.enable = true;
}

View File

@@ -0,0 +1,20 @@
{ config, pkgs, inputs, ... }:
{
programs.zsh = {
enable = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
oh-my-zsh = {
enable = true;
theme = "agnoster";
#plugins = [ "git" "ssh-agent" ];
};
};
# set important env vars
home.sessionVariables = {
EDITOR = "vim";
NH_FLAKE = "/home/aaron/git/nixconfig";
};
}

View File

@@ -0,0 +1,30 @@
{ config, pkgs, inputs, ... }:
{
# set gtk theme
gtk = {
enable = true;
theme = {
name = "Adwaita-dark";
package = pkgs.gnome-themes-extra;
};
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
};
# set qt theme
qt = {
enable = true;
platformTheme.name = "qt6";
style = {
name = "adwaita-dark";
package = pkgs.adwaita-qt;
};
};
# ensure packages are installed
home.packages = with pkgs; [
gnome-themes-extra
adwaita-qt
];
}

View File

@@ -1,44 +1,12 @@
{ config, pkgs, inputs, ... }: { config, pkgs, inputs, ... }:
{ {
# user config
home.username = "aaron";
home.homeDirectory = "/home/aaron";
# nixvim config
programs.nixvim = {
globals.mapleader = " ";
enable = true;
viAlias = false;
vimAlias = true;
opts = {
number = true;
relativenumber = true;
shiftwidth = 2;
tabstop = 2;
expandtab = true;
incsearch = true;
};
colorschemes.nord.enable = true;
plugins.lualine.enable = true;
plugins.nix.enable = true;
plugins.nvim-tree.enable = true;
plugins.treesitter.enable = true;
plugins.telescope.enable = true;
plugins.web-devicons.enable = true;
plugins.indent-blankline.enable = true;
};
# tmux config
programs.tmux = { programs.tmux = {
enable = true; enable = true;
# Basic options
prefix = "C-a"; prefix = "C-a";
keyMode = "vi"; keyMode = "vi";
mouse = true; mouse = true;
# Terminal settings
terminal = "screen-256color"; terminal = "screen-256color";
# Extra configuration
extraConfig = '' extraConfig = ''
# Status keys # Status keys
set -g status-keys vi set -g status-keys vi
@@ -85,67 +53,4 @@
set -g window-status-separator "" set -g window-status-separator ""
''; '';
}; };
# user packages
home.packages = with pkgs; [
discord
fastfetch
keepassxc
nerd-fonts.sauce-code-pro
powerline-fonts
powerline-symbols
screenfetch
];
# configure git
programs.git.settings = {
enable = true;
userName = "aaron";
userEmail = "aaron@0x29a.ch";
};
# configure zsh theme
programs.zsh = {
enable = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
oh-my-zsh = {
enable = true;
theme = "agnoster";
#plugins = [ "git" "ssh-agent" ];
};
};
# set gtk theme
gtk = {
enable = true;
theme = {
name = "Adwaita-dark";
package = pkgs.gnome-themes-extra;
};
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
};
# set qt theme
qt = {
enable = true;
platformTheme.name = "qt6";
style = {
name = "adwaita-dark";
package = pkgs.adwaita-qt;
};
};
# set env vars
home.sessionVariables = {
EDITOR = "vim";
};
# enable syncthing for user
services.syncthing.enable = true;
# enable home manager
programs.home-manager.enable = true;
# don't change
home.stateVersion = "25.11";
} }

9
modules/nixos/audio.nix Normal file
View File

@@ -0,0 +1,9 @@
{ config, lib, pkgs, ... }:
{
# enable sound through pipewire
services.pipewire = {
enable = true;
pulse.enable = true;
};
}

View File

@@ -0,0 +1,27 @@
{ config, lib, pkgs, ... }:
{
# set bootloader to systemd
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
# enable systemd initrd
boot.initrd.systemd.enable = true;
# plymouth
boot.plymouth = {
enable = true;
theme = "spinner";
};
# kernel options
boot.kernelParams = [ "quiet" "loglevel=2" ];
boot.kernelPackages = pkgs.linuxPackages_latest;
# Add boot-related packages
environment.systemPackages = with pkgs; [
efibootmgr
];
}

View File

@@ -0,0 +1,11 @@
{ config, lib, pkgs, ... }:
{
# just enable and install niri
programs.niri.enable = true;
# Add compositor-related packages
environment.systemPackages = with pkgs; [
xwayland-satellite
];
}

15
modules/nixos/gnupg.nix Normal file
View File

@@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
{
# enable gnupg agent
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-curses;
};
environment.systemPackages = with pkgs; [
gnupg
pinentry-curses
];
}

26
modules/nixos/locales.nix Normal file
View File

@@ -0,0 +1,26 @@
{ config, lib, pkgs, ... }:
{
# set the time zone
time.timeZone = "Europe/Zurich";
# set internationalisation properties
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# set console font and keymap
console = {
font = "Lat2-Terminus16";
keyMap = "de_CH-latin1";
};
}

View File

@@ -0,0 +1,21 @@
{ config, lib, pkgs, ... }:
{
# set hostnname
networking.hostName = "neon";
# user networkmanager
networking.networkmanager.enable = true;
# firewall default configs
networking.firewall.allowedTCPPorts = [ ];
networking.firewall.allowedUDPPorts = [ ];
# enable bluetooth
hardware.bluetooth.enable = true;
# Add network-related packages
environment.systemPackages = with pkgs; [
wireguard-tools
];
}

View File

@@ -1,10 +1,8 @@
{ pkgs, inputs, ... }: { config, lib, pkgs, inputs, ... }:
{ {
# install noctalia and helper packages # install noctalia and helper packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default
#kdePackages.qt6ct
#nwg-look
adw-gtk3 adw-gtk3
adwaita-qt adwaita-qt
adwaita-qt6 adwaita-qt6

View File

@@ -0,0 +1,9 @@
{ config, lib, pkgs, ... }:
{
# enable the openssh daemon
services.openssh = {
enable = true;
openFirewall = true;
};
}

View File

@@ -0,0 +1,49 @@
{ config, lib, pkgs, ... }:
{
# system packges
environment.systemPackages = with pkgs; [
alacritty
btop
cowsay
dnsutils
ethtool
file
ghostty
git
imagemagick
imv
iperf3
jq
kdePackages.qtmultimedia
kitty
ldns
lm_sensors
lsof
ltrace
mtr
neovim
nh
nix-output-monitor
nmap
nvd
p7zip
pciutils
sddm-astronaut
socat
strace
sysstat
tree
unzip
usbutils
vim
wget
which
xz
zip
zstd
];
# browser
programs.firefox.enable = true;
}

20
modules/nixos/sddm.nix Normal file
View File

@@ -0,0 +1,20 @@
{ config, lib, pkgs, ... }:
{
# enable sddm and use astronaut theme
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
autoNumlock = true;
enableHidpi = true;
theme = "sddm-astronaut-theme";
settings = {
Theme = {
Current = "sddm-astronaut-theme";
};
};
extraPackages = with pkgs; [
sddm-astronaut
];
};
}

View File

@@ -0,0 +1,9 @@
{ config, lib, pkgs, ... }:
{
# list of enabled services on the system
services = {
tuned.enable = true;
upower.enable = true;
};
}

View File

@@ -0,0 +1,16 @@
{ config, lib, pkgs, ... }:
{
# use flakes and nix command
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# links /libexec from derivations to /run/current-system/sw
environment.pathsToLink = [ "/libexec" ];
# set the default editor to vim
environment.variables.EDITOR = "vim";
# enable home-manager globally
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
}

19
modules/nixos/steam.nix Normal file
View File

@@ -0,0 +1,19 @@
{ config, lib, pkgs, ... }:
{
# allow unfree to install steam
nixpkgs.config.allowUnfree = true;
# enable steam and open firewall
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
};
# fix black screen in steam when using xwayland-satellite
programs.steam.package = pkgs.steam.override {
extraArgs = "-system-composer";
};
}

23
modules/nixos/users.nix Normal file
View File

@@ -0,0 +1,23 @@
{ config, lib, pkgs, ... }:
{
# create users
users.users.aaron = {
isNormalUser = true;
group = "users";
extraGroups = [ "wheel" "networkmanager" ];
shell = pkgs.zsh;
};
# add default zsh config
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestions.enable = true;
ohMyZsh = {
enable = true;
plugins = [ "git" "sudo" ];
theme = "gentoo";
};
};
}

18
users/aaron/home.nix Normal file
View File

@@ -0,0 +1,18 @@
{ config, pkgs, ... }:
{
imports = [
../../modules/home-manager/git.nix
../../modules/home-manager/nixvim.nix
../../modules/home-manager/programs.nix
../../modules/home-manager/shell.nix
../../modules/home-manager/styling.nix
../../modules/home-manager/tmux.nix
];
home = {
username = "aaron";
homeDirectory = "/home/aaron";
stateVersion = "25.11";
};
}