diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/aliases.sh | 37 | ||||
-rw-r--r-- | shell/env.sh | 13 | ||||
-rwxr-xr-x | shell/gpg.sh | 61 | ||||
-rw-r--r-- | shell/wsl.sh | 47 |
4 files changed, 158 insertions, 0 deletions
diff --git a/shell/aliases.sh b/shell/aliases.sh new file mode 100644 index 0000000..77cb68f --- /dev/null +++ b/shell/aliases.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +alias dfi="$DOTFILES/install" +alias dfu="$DOTFILES/update" +alias ls='ls --color=tty' +alias l='ls -lah' +alias la='ls -lAh' +alias ll='ls -lh' +alias lla='ls -lA' +alias lsa='ls -lah' +alias grep='grep --color' +alias cat=bat +alias ipa="ip -s -c -h a" +alias untar="tar -zxvf " +alias update="sudo apt update && apt list --upgradable" +alias upgrade="sudo apt upgrade -y" +alias cht="cht.sh" +# docker +alias dexec="docker exec -it" +alias dps="docker ps" +# docker compose +alias dc="docker-compose" +docker compose >&/dev/null && alias dc="docker compose" +alias dce="dc exec" +alias dcps="dc ps" +alias dcls="dc ls" +alias dcdn="dc down" +alias dcup="dc up" +alias dcupd="dc up -d" +alias dcl="dc logs" +alias dclf="dc logs -f" +# docker machine +alias dm="docker-machine" +alias dma="docker-machine active" +alias dmi="docker-machine inspect" +alias dmu="docker-machine-using" +docker-machine-using() { eval $(docker-machine env ${1:=-u}); } diff --git a/shell/env.sh b/shell/env.sh new file mode 100644 index 0000000..f802638 --- /dev/null +++ b/shell/env.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +# https://github.com/junegunn/fzf#respecting-gitignore +export FZF_BASE="${DOTFILES}/fzf" +export FZF_PREVIEW_COMMAND="bat --style=numbers,changes --wrap never --color always {} || cat {} || tree -C {}" +export FZF_CTRL_T_OPTS="--min-height 30 --preview-window down:60% --preview-window noborder --preview '($FZF_PREVIEW_COMMAND) 2> /dev/null'" + +export BAT_CONFIG_PATH="${DOTFILES}/bat.conf" +export MANPAGER="sh -c 'col -bx | bat -l man -p'" +export GPG_TTY=$(tty) + +# Path +PATH=$PATH:$HOME/.local/bin:$HOME/.dotnet/tools:$HOME/.cargo/bin:$DOTFILES/scripts diff --git a/shell/gpg.sh b/shell/gpg.sh new file mode 100755 index 0000000..5fa3ec2 --- /dev/null +++ b/shell/gpg.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +# https://github.com/benpye/wsl-ssh-pageant +# https://github.com/drduh/YubiKey-Guide#remote-host-configuration +# https://dev.to/dzerycz/series/11353 + +# GPG & SSH Socket +# Removing Linux Agent sockets and replace it with wsl2-ssh-pageant socket + +export SSH_AUTH_SOCK="$HOME/.ssh/agent.sock" +export GPG_AGENT_SOCK="$HOME/.gnupg/S.gpg-agent" + +function gpg-init() ( + if ! ss -a | grep -q "$SSH_AUTH_SOCK"; then + rm -f "$SSH_AUTH_SOCK" + wsl2_ssh_pageant_bin="$HOME/.ssh/wsl2-ssh-pageant.exe" + if test -x "$wsl2_ssh_pageant_bin"; then + (setsid nohup socat UNIX-LISTEN:"$SSH_AUTH_SOCK,fork" EXEC:"$wsl2_ssh_pageant_bin" >/dev/null 2>&1 &) + else + echo >&2 "WARNING: $wsl2_ssh_pageant_bin is not executable." + fi + unset wsl2_ssh_pageant_bin + fi + + if ! ss -a | grep -q "$GPG_AGENT_SOCK"; then + rm -rf "$GPG_AGENT_SOCK" + wsl2_ssh_pageant_bin="$HOME/.ssh/wsl2-ssh-pageant.exe" + if test -x "$wsl2_ssh_pageant_bin"; then + (setsid nohup socat UNIX-LISTEN:"$GPG_AGENT_SOCK,fork" EXEC:"$wsl2_ssh_pageant_bin --gpg S.gpg-agent" >/dev/null 2>&1 &) + else + echo >&2 "WARNING: $wsl2_ssh_pageant_bin is not executable." + fi + unset wsl2_ssh_pageant_bin + fi + + if ! ss -a | grep -q "${GPG_AGENT_SOCK}.extra"; then + rm -rf "${GPG_AGENT_SOCK}.extra" + wsl2_ssh_pageant_bin="$HOME/.ssh/wsl2-ssh-pageant.exe" + if test -x "$wsl2_ssh_pageant_bin"; then + (setsid nohup socat UNIX-LISTEN:"${GPG_AGENT_SOCK}.extra,fork" EXEC:"$wsl2_ssh_pageant_bin --gpg S.gpg-agent.extra" >/dev/null 2>&1 &) + else + echo >&2 "WARNING: $wsl2_ssh_pageant_bin is not executable." + fi + unset wsl2_ssh_pageant_bin + fi +) + +# Reload +function gpg-reset() { + gpg-connect-agent.exe KILLAGENT /bye &>/dev/null + pkill -f 'socat.*wsl2-ssh-pageant.exe' + gpg-connect-agent.exe /bye &>/dev/null + gpg-init +} + +# Relearn card serial number +function gpg-learn { + gpg-connect-agent.exe "scd serialno" "learn --force" /bye +} + +gpg-init diff --git a/shell/wsl.sh b/shell/wsl.sh new file mode 100644 index 0000000..5c7b983 --- /dev/null +++ b/shell/wsl.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +WINHOME="$(wslpath "$(powershell.exe -NoProfile -c \$HOME)")" + +# XDG Specs +export XDG_DESKTOP_DIR="$WINHOME/Desktop" +export XDG_DOCUMENTS_DIR="$WINHOME/Documents" +export XDG_DOWNLOAD_DIR="$WINHOME/Downloads" +export XDG_MUSIC_DIR="$WINHOME/Music" +export XDG_PICTURES_DIR="$WINHOME/Pictures" +export XDG_TEMPLATES_DIR="$WINHOME/Templates" +export XDG_VIDEOS_DIR="$WINHOME/Videos" + +export EDITOR="code --wait" + +alias cb=clip.exe +alias wsl=wsl.exe +alias ykman='/mnt/c/Program\ Files/Yubico/YubiKey\ Manager/ykman.exe' + +function wt() { + powershell.exe -NoProfile -c "wt $@" +} + +function winget() { + cmd="winget.exe $1" + shift # past cmd + + while [[ $# -gt 0 ]]; do + key="$1" + case $key in + -*) # key value pair + cmd+=" $key '$2'" + shift # past argument + shift # past value + ;; + *) # positional argument + cmd+=" '$1'" # add it to the list + shift # past argument + ;; + esac + done + + powershell.exe -NoProfile -c "$cmd" +} + +# https://github.com/validatedev/drop-cache-if-idle +[ -z "$(ps -ef | grep cron | grep -v grep)" ] && sudo /etc/init.d/cron start &> /dev/null
\ No newline at end of file |