caem
4b6c921768
The autocmds approach had the issue of overwriting the indentation globally for all files. So if you opened a .nix file and then wanted to edit a .c file, it would then still do 2 space indentation when it should be 4. The autocmds approach was redundant in the first place as the ftplugin directory already exists for this exact purpose and does it without the aformentioned issue. |
||
---|---|---|
assets | ||
machines/workstation | ||
packages | ||
users/hu | ||
.gitignore | ||
flake.lock | ||
flake.nix | ||
README.md |
nixos-system-config
My NixOS configuration.
About
This is the NixOS configuration that I daily drive on my system. Feel free to use, modify and share this configuration to your heart's content, no attribution required.
Screenshots
Wallpaper modified with gruvbox-factory.
Layout
├── assets ; Images used by the config and repo
│ └── wallpaper.png
├── flake.lock
├── flake.nix ; Entry point
├── machines ; Machine specific configuration
│ └── workstation
│ ├── configuration.nix
│ ├── hardware-configuration.nix ; Modified hardware configuration
│ └── persist.nix ; Impermanence configuration
├── packages ; Sets of packages to install and configure
│ ├── sets
│ │ ├── games.nix
│ │ └── ...
│ └── wm ; Package sets and basic config for WM and DE
│ ├── hyprland.nix
│ └── ...
├── README.md
├── secrets ; Git ignored folder to store confidentials
│ └── hu
│ └── pass ; Hashed password file for user
└── users
└── hu ; User specific configuration
├── packages ; Package configurations
│ ├── firefox.nix ; Configurations can be for NixOS or home-manager
│ ├── ...
│ └── zsh
│ ├── config ; Non-nix package config directory
│ │ └── conf.d
│ ├── zsh-home.nix ; For home-manager
│ └── zsh.nix ; For NixOS
├── persist.nix ; Impermanence configuration for the user
└── user.nix
Installing
This configuration uses impermanence with btrfs snapshots so you'll have to partition your system in a certain way.
First you'll need this partition layout, assuming you're installing on nvme0n1
.
DEVICE FILESYSTEM PURPOSE
/dev/nvme0n1
├─/dev/nvme0n1p1 vfat EFI partition
└─/dev/nvme0n1p2 btrfs Partition to house all the subvolumes
Inside of the btrfs root volume we're going to need 2 subvolumes.
SUBVOLUME MOUNT PURPOSE
root / Impermanent data
nix /nix Permanent data
You'll also need to create a read-only snapshot of the root
subvolume
and call it root-blank
.
After you've mounted all the subvolumes and EFI partition (/boot
) in /mnt
clone this repository in to /mnt/nix/config
. Adjust all the block ids of the partitions
in hardware-configuration.nix
and create a hashed password using mkpasswd
and store it
in the secrets/{user}
directory as pass
.
Finally, in the config directory run nixos-install --flake '.#'
, reboot and you're done.