Dotfiles for Ubuntu desktop (GNOME), NixOS, servers/containers, and Android (Termux).
Managed via Nix Home Manager — standalone on Ubuntu, as a NixOS module on NixOS.
Setup: Ubuntu | NixOS | Server/Container | Android/Termux
./setup host to list available host configs.
dotfiles
├── backup # restic/rsync backup scripts (ntfy notifications)
├── bin # custom scripts
├── desktop # desktop shortcuts, icons, discord theme
├── nix
│ ├── home
│ │ ├── common.nix # CLI tools, git, zsh plugins (all hosts)
│ │ ├── desktop.nix # GUI apps (workstations)
│ │ ├── gnome.nix # GNOME extensions, dconf
│ │ ├── tmux.nix # tmux config + resurrect
│ │ ├── timers.nix # systemd timers (zephyrus)
│ │ ├── pc-timers.nix # backup/sync timers (pc)
│ │ ├── x11.nix / wayland.nix
│ │ └── hosts/ # per-machine: imports + stateVersion
│ └── nixos/ # NixOS system configs
├── nvim # neovim config (lazy.nvim)
├── zsh
│ ├── aliases # shell aliases
│ ├── exports # env vars, PATH
│ ├── functions # shell functions
│ ├── plugins # extra zsh plugins
│ └── zshrc # main config (baked by HM, sources the above)
├── flake.nix # nix flake (NixOS + HM hosts)
├── secrets/ # private repo (SSH, API keys, backup configs)
└── setup # bootstrap script
sudo apt-get update && sudo apt-get install -y git
git clone https://github.com/MaxWolf-01/dotfiles.git ~/.dotfiles
cd ~/.dotfiles && ./setup minimalRestart shell, then set host and run Home Manager:
./setup host zephyrus
nix run home-manager/master -- switch --flake ~/.dotfiles#$NIX_HOST
gh auth login -wAfter first run, use hmswitch to apply changes.
Place your age key at ~/.local/secrets/age-key.txt (copy from another machine or backup), then:
./setup secrets
./setup ubuntu
./setup get_claudeAll ./setup functions are idempotent — safe to re-run.
Other common setup functions for the daily driver
./setup docker
./setup nvidia_container_toolkit
./setup get_vibetyper
./setup tiling_shellgit clone https://github.com/MaxWolf-01/dotfiles.git ~/.dotfiles
cd ~/.dotfiles && ./setup minimal
./setup host pc
nswitchPlace age key at ~/.local/secrets/age-key.txt, then: ./setup secrets
apt-get update && apt-get install -y git
git clone --depth 1 https://github.com/MaxWolf-01/dotfiles.git ~/.dotfiles
cd ~/.dotfiles && ./setup minimalRestart shell, then:
./setup host minimal # or minimal-root if running as root
nix run home-manager/master -- switch --flake ~/.dotfiles#$NIX_HOSTInstall Termux and Termux:Boot from F-Droid.
In Termux, grant storage access and set up SSH:
termux-setup-storage # grants access to /sdcard
pkg update && pkg upgrade && pkg install openssh
mkdir -p ~/.ssh && curl -sL https://github.com/MaxWolf-01.keys >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
sshd~/storage/shared is symlinked to /storage/emulated/0 (where Downloads, DCIM, etc. live on Android).
From your laptop (assuming Tailscale): ssh <phone-tailscale-ip> -p 8022
Auto-start sshd on boot (requires Termux:Boot + battery optimization exemption for both Termux and Termux:Boot):
mkdir -p ~/.termux/boot
cat > ~/.termux/boot/start-sshd << 'SCRIPT'
#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
sshd
SCRIPT
chmod +x ~/.termux/boot/start-sshdAfter SSH is working, the rest can be done from the laptop over SSH.
- rime + claude for making nix easy
- Jovial Theme
- Nix/Home Manager
- Various functions and scripts from other dotfiles repos (see top of functions)
- dotfiles.github.io