From a6582de62610ad701bda36778d5a27fd395bd539 Mon Sep 17 00:00:00 2001 From: rain Date: Sun, 21 Jun 2026 21:36:00 -0400 Subject: [PATCH] Install bat via cargo on debian (skip apt's batcat rename) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Debian's 'bat' package is renamed 'batcat' to avoid clashing with an unrelated Debian package. The rename makes .zshrc's 'alias cat=bat' fail. Install upstream bat via cargo instead — gets the real binary at $HOME/.cargo/bin/bat, version-aligned with arch's pacman install. Drop 'bat' from the debian apt install list (no more batcat conflict to work around). --- run_once_20-install-user-packages.sh.tmpl | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/run_once_20-install-user-packages.sh.tmpl b/run_once_20-install-user-packages.sh.tmpl index 972e6d1..c220039 100755 --- a/run_once_20-install-user-packages.sh.tmpl +++ b/run_once_20-install-user-packages.sh.tmpl @@ -43,7 +43,7 @@ sudo apt-get upgrade -y APT_PKGS=( zsh tmux git build-essential - bat btop htop fastfetch + btop htop fastfetch eza fzf fd-find ripgrep zoxide starship lazygit yt-dlp jq unzip p7zip @@ -62,12 +62,13 @@ if command -v fdfind >/dev/null 2>&1 && ! command -v fd >/dev/null 2>&1; then ln -sf "$(command -v fdfind)" "$USER_HOME/.local/bin/fd" fi -# Same treatment for 'bat' (renamed to 'batcat' on Debian to avoid clashing -# with a different unrelated package). .zshrc aliases assume 'bat'. -if command -v batcat >/dev/null 2>&1 && ! command -v bat >/dev/null 2>&1; then - log "symlinking batcat -> bat in ~/.local/bin" - mkdir -p "$USER_HOME/.local/bin" - ln -sf "$(command -v batcat)" "$USER_HOME/.local/bin/bat" +# Debian ships 'bat' as 'batcat' due to a name clash with an unrelated +# package. Install upstream 'bat' via cargo so we get the real binary at +# $HOME/.cargo/bin/bat. Faster than apt's renamed package, version-aligned +# with arch's pacman install. +if command -v cargo >/dev/null 2>&1 && ! command -v bat >/dev/null 2>&1; then + log "installing bat via cargo (upstream, debian renames it to batcat)" + cargo install bat --locked 2>&1 | tail -5 fi # Neovim — install official binary tarball, pinned to a known-good version.