home manager
This commit is contained in:
+142
@@ -0,0 +1,142 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
bash-seafly-prompt = pkgs.fetchFromGitHub {
|
||||
owner = "bluz71";
|
||||
repo = "bash-seafly-prompt";
|
||||
rev = "4970ba54e5e9d932d94f5e6be32ecf277a68f596";
|
||||
hash = "sha256-3q0s1eg6iEdZ0GyQuYpzWIUqggcZ9Kr/UL9pHr+PqN8=";
|
||||
};
|
||||
in
|
||||
{
|
||||
home.packages = [ pkgs.blesh ];
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
|
||||
historySize = 999999;
|
||||
historyFileSize = 999962;
|
||||
historyControl = [ "ignoredups" "ignorespace" "erasedups" ];
|
||||
shellOptions = [
|
||||
"histappend"
|
||||
"checkwinsize"
|
||||
"extglob"
|
||||
"globstar"
|
||||
"checkjobs"
|
||||
"cdspell"
|
||||
];
|
||||
|
||||
shellAliases = {
|
||||
drag = "ripdrag";
|
||||
|
||||
#Adding output colors
|
||||
ls = "ls --color=always";
|
||||
grep = "grep --color=auto";
|
||||
less = "less -R";
|
||||
ping = "ping -O";
|
||||
|
||||
# fix typos
|
||||
ckear = "clear";
|
||||
sl = "ls";
|
||||
ks = "ls";
|
||||
dc = "cd";
|
||||
|
||||
sudo = "doas";
|
||||
|
||||
claude = "docker run --rm -it"
|
||||
+ " -v ${config.home.homeDirectory}/.claude:/root/.claude"
|
||||
+ " -v ${config.home.homeDirectory}/.claude.json:/root/.claude.json"
|
||||
+ " -v $PWD:$PWD -w $PWD git.shihaam.dev/dockerfiles/ccc";
|
||||
};
|
||||
|
||||
initExtra = ''
|
||||
# ---- ble.sh --------------------------------------------------------
|
||||
source "$(blesh-share)/ble.sh"
|
||||
# ---- prompt --------------------------------------------------------
|
||||
source ${bash-seafly-prompt}/command_prompt.bash
|
||||
# needed for gpg-sign
|
||||
export GPG_TTY=$(tty)
|
||||
|
||||
# ---- always reopen the last directory ------------------------------
|
||||
cd() { builtin cd "$@" && pwd > ~/.cache/whereami; }
|
||||
cdl() {
|
||||
local d
|
||||
d=$(cat ~/.cache/whereami 2>/dev/null)
|
||||
[ -d "$d" ] && cd "$d"
|
||||
}
|
||||
cdl
|
||||
|
||||
# ---- wrappers ------------------------------------------------------
|
||||
ip() {
|
||||
if [[ $1 == "info" ]]; then
|
||||
curl -s https://ipinfo.io/$2 | jq
|
||||
else
|
||||
command ip "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# ---- helpers -------------------------------------------------------
|
||||
math() { echo $1 | bc; }
|
||||
extract() {
|
||||
if [ -f "$1" ] ; then
|
||||
local folder_name=$(basename "$1" | sed -e 's/\..*$//')
|
||||
mkdir -p "$folder_name"
|
||||
case "$1" in
|
||||
*.tar.bz2) tar xvjf "$1" -C "$folder_name" ;;
|
||||
*.tar.gz) tar xvzf "$1" -C "$folder_name" ;;
|
||||
*.bz2) bunzip2 -k "$1" && mv "''${1%.*}" "$folder_name" ;;
|
||||
*.rar) unrar x "$1" "$folder_name" ;;
|
||||
*.gz) gunzip -k "$1" && mv "''${1%.*}" "$folder_name" ;;
|
||||
*.tar) tar xvf "$1" -C "$folder_name" ;;
|
||||
*.tbz2) tar xvjf "$1" -C "$folder_name" ;;
|
||||
*.tgz) tar xvzf "$1" -C "$folder_name" ;;
|
||||
*.zip) unzip "$1" -d "$folder_name" ;;
|
||||
*.Z) uncompress "$1" && mv "''${1%.*}" "$folder_name" ;;
|
||||
*.7z) 7z x "$1" -o"$folder_name" ;;
|
||||
*.xz) xz --decompress --keep "$1" && mv "''${1%.*}" "$folder_name" ;;
|
||||
*) echo "'$1' cannot be extracted via extract()" ;;
|
||||
esac
|
||||
else
|
||||
echo "'$1' is not a valid file"
|
||||
fi
|
||||
}
|
||||
|
||||
# ---- throwaway arch container --------------------------------------
|
||||
arch() {
|
||||
local user_flag=""
|
||||
if [[ "$1" == "root" ]]; then
|
||||
user_flag="-u root"
|
||||
shift
|
||||
fi
|
||||
|
||||
local cmd=("bash")
|
||||
[[ $# -gt 0 ]] && cmd=("$@")
|
||||
|
||||
podman run --rm -it \
|
||||
--name "archlinux-$$" \
|
||||
--network host \
|
||||
--workdir "$PWD" \
|
||||
$user_flag \
|
||||
-e USER="$USER" \
|
||||
-e HOME="$HOME" \
|
||||
-e TERM="''${TERM:-xterm-256color}" \
|
||||
-v "$HOME:$HOME" \
|
||||
-v "$PWD:$PWD" \
|
||||
-v /tmp:/tmp \
|
||||
-v arch-usr:/usr \
|
||||
-v arch-bin:/bin \
|
||||
-v arch-lib:/lib \
|
||||
-v arch-lib64:/lib64 \
|
||||
-v arch-etc:/etc \
|
||||
-v arch-var:/var \
|
||||
-v arch-opt:/opt \
|
||||
archlinux-local "''${cmd[@]}"
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user