From fbc2e0695a4f4245b668c8aec76401f6e735b5bc Mon Sep 17 00:00:00 2001 From: Alexander Hess Date: Mon, 3 Aug 2026 02:57:48 +0200 Subject: [PATCH] Add configuration for `bat` --- .config/bat/README.md | 5 +++++ .config/bat/config | 17 +++++++++++++++++ .config/shell/env | 12 ++++++++++++ .local/bin/dotfiles-install | 6 ++++++ 4 files changed, 40 insertions(+) create mode 100644 .config/bat/README.md create mode 100644 .config/bat/config diff --git a/.config/bat/README.md b/.config/bat/README.md new file mode 100644 index 0000000..d8b0424 --- /dev/null +++ b/.config/bat/README.md @@ -0,0 +1,5 @@ +# `bat`-related Configurations + +This folder contains + the [config](./config) for [`bat`](https://github.com/sharkdp/bat), + found via `$BAT_CONFIG_PATH` set in [`~/.config/shell/env`](../shell/env). diff --git a/.config/bat/config b/.config/bat/config new file mode 100644 index 0000000..e7f2b7e --- /dev/null +++ b/.config/bat/config @@ -0,0 +1,17 @@ +--theme="ansi" + +# See `$LESS` in ~/.config/shell/env +--pager="less --chop-long-lines --ignore-case --LONG-PROMPT --no-init --quit-if-one-screen --RAW-CONTROL-CHARS --status-column" + +--style="numbers,changes,header" + + +# Unrecognized mappings + +--map-syntax ".bash_history:Bourne Again Shell (bash)" +--map-syntax "**/bash/history:Bourne Again Shell (bash)" +--map-syntax "**/zsh/history:Bourne Again Shell (bash)" + +--map-syntax ".flake8:INI" + +--map-syntax "poetry.lock:TOML" diff --git a/.config/shell/env b/.config/shell/env index 2c2c699..87fae12 100644 --- a/.config/shell/env +++ b/.config/shell/env @@ -47,6 +47,18 @@ export LESS="--chop-long-lines --ignore-case --LONG-PROMPT --no-init --quit-if-o [ -f "$XDG_CONFIG_HOME/shell/locale" ] && . "$XDG_CONFIG_HOME/shell/locale" +# ~/.local/bin/dotfiles-install symlinks Debian's `batcat` to ~/.local/bin/bat +for _bat in batcat bat; do + if _command_exists "$_bat"; then + export MANPAGER="sh -c 'col -bx | $_bat --language man --plain'" + export MANROFFOPT="-c" + break + fi +done +unset _bat + + # Move common tools' config and cache files into XDG directories +export BAT_CONFIG_PATH="$XDG_CONFIG_HOME/bat/config" export LESSHISTFILE="$XDG_STATE_HOME/less/history" diff --git a/.local/bin/dotfiles-install b/.local/bin/dotfiles-install index c7d91f8..ff57d1c 100755 --- a/.local/bin/dotfiles-install +++ b/.local/bin/dotfiles-install @@ -10,6 +10,7 @@ set -eu +XDG_BIN_HOME="${XDG_BIN_HOME:-$HOME/.local/bin}" XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}" XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}" @@ -127,6 +128,11 @@ _git checkout --force "$DOTFILES_BRANCH" _git config --local status.showUntrackedFiles no +if command -v batcat >/dev/null 2>&1 && ! command -v bat >/dev/null 2>&1; then + ln -sf "$(command -v batcat)" "$XDG_BIN_HOME/bat" +fi + + # Keep only the most recent backups _keep=10 if [ -d "$BACKUPS_DIR" ]; then