noted
tech
disclaimer
- this is not a nixos tutorial.
- in this set-up, I rewrite one dotfiles directory per machine. I didn’t nixified all .config or modularized my .dotfiles yet.
- this set up still required a few manual works and won’t work out-of-the-box.
main system
- backup, install NixOs via bootable USB.
- (cursed and dumb) go to firefox, login to the github account, download dotfiles from the previous machine, extract that .zip
- prep for .dotfiles (enable flake)
- go to /etc/nixos
- edit configuration.nix: add this
nix.settings.experimental-features = ["nix-command" "flakes"];
- sudo nixos-rebuild switch
- make .dotfiles
- at /home/username,
mkdir .dotfiles
- open the old dotfiles directory that I downloaded side-by-side
- copy
flake.nix, home-manager, nixCats-nvim, nixCats-nvim-example, readme.md (exclude /nixos) to new dotfile dir
- copy /etc/nixos to new dotfile dir
- open vi ~/.dotfiles/nixos/configuration.nix and olddotfiles/nixos/configuration.nix side-by-side, rewrite what seems make sense for you
- now you can rebuild everything via flake
- build everything
- go to ~/.dotfiles
sudo nix flake update
sudo nixos-rebuild switch --upgrade --flake .
home-manager switch --flake .
- now you already 80% done
! you need to get your latest nixCats config separately
window manager
(in a perfect world, I would nixified my window manager system in .dotfiles but I didn’t do that yet)
- go to /.config
- hypr sitting clone
- hyprland.conf (need to manually rebuild to prevent unwanted config/animation from previous machine)
- disable the warning message
- at terminal:
hyprctl monitors, looks for unwanted monitor (if you have one)
- disable unwanted monitor in .conf
monitor = eDP-1, disabled
- at $terminall set to
ghostty or your preferred terminal
- add key binds for quality of life
bind = $mainMod, F, fullscreen
bind = $mainMod, S, exec, rofi -show drun -show-icons
bind = $mainMod, 0, exec, grim -g "$(slurp)"
- comment out some conflicted key binds
- workspace 10
- movetoworkspace 10
- togglespecialworkspace
- add this the buttom:
exec-once=zsh ~/.config/hypr/start.sh
- clone your start.sh
- make ~/Pictures/Wallpapers/w1.png
git and keys
theming
- rofi
- clone config.rasi
- clone catppuccin-macchiato.rasi
- ghostty
- zsh
- open the terminal, custom it with p10k based on your preference for that machine
- rmpc
others
- login zen
- git clone your projects to ~/projects
- crucial: typix, your website
- after git clone your website, login obsidian
- rm 001_webPub
- go to your obsidian val
- ln -s ../../projects/web-erxelnut/src/content 001_webPub
- login steam
- login discord
- set up remote_ssh from mobile
What could be improved
- centralized .dotfiles for every machine
created on: Wed Nov 26 2025