Skip to content

MaxWolf-01/dotfiles

Repository files navigation

Dotfiles

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

Setup (Ubuntu)

sudo apt-get update && sudo apt-get install -y git
git clone https://github.com/MaxWolf-01/dotfiles.git ~/.dotfiles
cd ~/.dotfiles && ./setup minimal

Restart shell, then set host and run Home Manager:

./setup host zephyrus
nix run home-manager/master -- switch --flake ~/.dotfiles#$NIX_HOST
gh auth login -w

After 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_claude

All ./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_shell

Setup (NixOS)

git clone https://github.com/MaxWolf-01/dotfiles.git ~/.dotfiles
cd ~/.dotfiles && ./setup minimal
./setup host pc
nswitch

Place age key at ~/.local/secrets/age-key.txt, then: ./setup secrets

Setup (Server/Container)

apt-get update && apt-get install -y git
git clone --depth 1 https://github.com/MaxWolf-01/dotfiles.git ~/.dotfiles
cd ~/.dotfiles && ./setup minimal

Restart shell, then:

./setup host minimal    # or minimal-root if running as root
nix run home-manager/master -- switch --flake ~/.dotfiles#$NIX_HOST

Setup (Android / Termux)

Install 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-sshd

After SSH is working, the rest can be done from the laptop over SSH.

Credits

Eye Candy

Image