Forked from iynaix/dotfiles.
This config is intended to be used with NixOS. There is experimental support for running the dotfiles on legacy operating systems.
- Multiple NixOS configurations, including desktop, laptops and VM
- Persistence via impermanence (both
/
and/home
) - Automatic ZFS snapshots with rotation
- Flexible NixOS / Home Manager config via feature flags
- sops-nix for managing secrets [WIP]
- Hyprland with waybar setup, with screen capture
- Dynamic colorschemes using wallust (pywal, but maintained)
Run the following commands from a terminal on a NixOS live iso or from a tty on the minimal iso.
The following install script partitions the disk, sets up the necessary datasets and installs NixOS.
sh <(curl -L https://raw.githubusercontent.com/rotteegher/rotfiles/master/install.sh)
Reboot your system.
sudo zfs snapshot zroot/persist@persist-snapshot
sudo zfs send zroot/persist@persist-snapshot > SNAPSHOT_FILE_PATH
Use recover.sh
script or...
Recover from file snapshot manually:
# the rename is needed for encrypted datasets, as -F doesn't work
sudo zfs receive -o mountpoint=legacy zroot/persist-new < SNAPSHOT_FILE_PATH
sudo zfs rename zroot/persist zroot/persist-old
sudo zfs rename zroot/persist-new zroot/persist
Recover from filesystem snapshot manually:
sudo zfs rename zroot/persist zroot/persist-old
sudo zfs rename zroot/existing_filesystem_snapshotname zroot/persist
This is not needed if restoring from persist snapshot.
mkdir -p /persist/etc/shadow
mkpasswd -m sha-512 'USER_PASSWORD' | sudo tee -a /persist/etc/shadow/root
mkpasswd -m sha-512 'USER_PASSWORD' | sudo tee -a /persist/etc/shadow/iynaix
mkpasswd -m sha-512 'USER_PASSWORD' | sudo tee -a /persist/etc/shadow/rot
mkpasswd -m sha-512 'USER_PASSWORD' | sudo tee -a /persist/etc/shadow/anyotheruser
Run the following commands from a terminal on a NixOS live iso / from a tty on the minimal iso.
The following script optionally reformats the boot partition and / or /nix dataset, then reinstalls NixOS.
sh <(curl -L https://raw.githubusercontent.com/rotteegher/rotfiles/master/recover.sh)
This repo was forked from my friend Iynaix's config