aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/aliases.sh37
-rw-r--r--shell/env.sh13
-rwxr-xr-xshell/gpg.sh61
-rw-r--r--shell/wsl.sh47
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