Skip to content

Troubleshooting

Search this page for the exact message you see (Ctrl+F), or use the site search.

The installer stops at the first unexpected error. Most steps catch their own problems and just warn, but a few don’t yet — a network failure while installing starship or cloning the tmux plugins stops everything after it (known issue). Fix the network problem and run it again; it skips whatever is already done.

It only asks when there’s a keyboard to answer with. With -y, in Docker builds, CI, or when input is redirected, it uses the defaults (zsh, en_US.UTF-8) and prints the plan without asking. Run it directly in a terminal to get the questions.

error: --shell must be zsh, bash or keep / error: --locale must look like…

Section titled “error: --shell must be zsh, bash or keep / error: --locale must look like…”

A flag value wasn’t recognised. Nothing was changed. Locales look like fi_FI or fi_FI.UTF-8; shells are zsh, bash or keep.

warning: cannot install … — not root and sudo not found

Section titled “warning: cannot install … — not root and sudo not found”

Installing packages needs root. Run as root, or install sudo and add yourself to the sudo (Debian/Ubuntu) or wheel (Fedora/Arch) group. Config files are installed either way.

warning: chsh failed / note: no terminal to ask for your password

Section titled “warning: chsh failed / note: no terminal to ask for your password”

Changing the login shell asks for your password. Without a terminal (e.g. -y from a script) it can’t ask. Run it yourself:

Terminal window
chsh -s "$(command -v zsh)"

The package database wasn’t synced. The installer does this automatically on fresh systems; on an existing system, update first: sudo pacman -Syu.

Each run backs up every file it replaces, with a new timestamp. Once you’re happy:

Terminal window
ls ~/.*.bak.* ~/.config/*/*.bak.* # check first
rm ~/.*.bak.* # then remove

My aliases don’t work in a new terminal tab (bash)

Section titled “My aliases don’t work in a new terminal tab (bash)”

New tabs on Linux are non-login shells and read ~/.bashrc. Check it exists and loads ~/.bash_profile: cat ~/.bashrc. See bash.

setlocale: cannot change locale / perl: warning: Setting locale failed

Section titled “setlocale: cannot change locale / perl: warning: Setting locale failed”

The locale isn’t installed. The configs normally fall back to C.UTF-8 automatically — if you still see this, something else (an /etc file, an SSH client sending LC_*) sets it. See Locale.

SSH from my Mac sets a strange locale on the server

Section titled “SSH from my Mac sets a strange locale on the server”

macOS’s SSH client sends your local LANG/LC_* to the server (SendEnv LANG LC_*). If the server lacks that locale, you get warnings. The dotfiles override it on login; to stop sending it, remove SendEnv from /etc/ssh/ssh_config on the Mac.

scp or rsync fails with “protocol error” or strange output

Section titled “scp or rsync fails with “protocol error” or strange output”

Something prints text in a non-interactive shell. This repo’s .bashrc stops early for non-interactive shells; check your ~/.aliases.local, ~/.functions.local and ~/.zshenv.local for echo lines.

Older versions had a cc alias (Claude Code) and an ip alias (public IP), which hid the C compiler and Linux’s ip command, plus a localip alias. They’re now c and myip. If an old shell still has them, open a new terminal or run unalias cc ip localip.

.zshenv puts nvm’s default Node version on PATH. If nvm has no default, there’s nothing to add:

Terminal window
nvm alias default 22 # or whichever version you use

Open a new terminal, or reload in place with reload. A new login shell (after chsh) needs a log out and back in.

Rebuild the completion cache: rm ~/.zcompdump && exec zsh.

The cached brew shellenv output may be stale: rm ~/.cache/brew_shellenv, then open a new shell.

The server doesn’t know kitty. Run the installer there (it adds kitty-terminfo), connect with kitten ssh, or use TERM=xterm-256color ssh …. See kitty.

The theme file is missing from ~/.config/kitty/themes/. Installs before October 2026 didn’t copy it — run the installer again, or copy it by hand:

Terminal window
mkdir -p ~/.config/kitty/themes && cp .config/kitty/themes/* ~/.config/kitty/themes/

See kitty.

The terminal font has no Nerd Font icons. Run the installer on that machine (it asks for a Nerd Font, Hasklug by default), or install one from nerdfonts.com and select it in your terminal. Over SSH, the font that matters is the one on your own computer, not the server.

tmux: error about catppuccin.tmux on start

Section titled “tmux: error about catppuccin.tmux on start”

The Catppuccin plugin wasn’t cloned (no git during install):

Terminal window
git clone -b v2.3.0 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux

Plugins aren’t downloaded yet. In tmux press Prefix I (Ctrl+B, then capital I).

A session for this folder already exists: tmux attach -t <folder-name>.

nano: Unknown flag or unknown colour errors

Section titled “nano: Unknown flag or unknown colour errors”

Your nano is too old — macOS ships 2.0.6. brew install nano. See nano.

Vim uses a plain colour scheme instead of Monokai

Section titled “Vim uses a plain colour scheme instead of Monokai”

~/.vim/colors/sublimemonokai.vim is missing (for example, only .vimrc was copied), so Vim falls back to a built-in scheme. Re-run the installer, or copy the file from the repo: mkdir -p ~/.vim/colors && cp .vim/colors/sublimemonokai.vim ~/.vim/colors/. See Vim.

Neovim doesn’t copy to the system clipboard

Section titled “Neovim doesn’t copy to the system clipboard”

Install a clipboard helper: sudo apt install wl-clipboard (Wayland) or xclip (X11). Check with :checkhealth provider.