This commit is contained in:
2026-02-15 22:26:47 +00:00
commit 7be0309d27
19 changed files with 860 additions and 0 deletions

72
hm_programs/bash.nix Normal file
View File

@@ -0,0 +1,72 @@
{ config, hostCfg, ... }:
let
gitPrompt = builtins.fetchurl {
url =
"https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh";
sha256 = "7ff718f4a06fd0a0be7edfef926abb41b1353c48c1515ad312d226965b74943a";
};
PROJECT_ROOT = ./.;
in {
programs = {
bash = {
enable = true;
profileExtra = ''
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
'';
initExtra = ''
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias sudonix='sudo env PATH=$PATH'
alias k='kubectl'
alias rm="trash-put"
# export BASH_COMPLETION_USER_DIR=$HOME/.nix-profile/share/bash-completion.d/
# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# http://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
# export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
PROMPT_COMMAND="history -a '$HISTFILE'; $PROMPT_COMMAND"
# Source custom configuration
if [ -f "$HOME/.bashrc.zs00lt" ]; then
. "${PROJECT_ROOT}/config-files/bashrc.zs00lt"
fi
# source <(kubectl completion bash)
# source <(helm completion bash)
# source <(rclone completion bash)
source ${gitPrompt}
eval "$(starship init bash)"
'';
};
};
}