summaryrefslogtreecommitdiffstatshomepage
path: root/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh
blob: 4c654ab795b35dc7a52762457288ec19d5d5fcdd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/bin/sh
# shellcheck disable=2155

# [ -n "${WSL_DISTRO_NAME+1}" ] || return 0

WINHOME="/mnt/c/Users/$USER"
# shellcheck disable=2164
[ "$PWD" = "$WINHOME" ] && cd

mkdir -p /tmp/xdg

export DISPLAY="$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}')":0
export BROWSER=wslview
export XDG_RUNTIME_DIR=/tmp/xdg
export GPG_TTY="$(tty)"
export SHELDON_PROFILE="wsl"

alias wsl="/mnt/c/Windows/system32/wsl.exe"
alias powershell="/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe"
alias pwsh="/mnt/c/Program Files/PowerShell/7/pwsh.exe"
alias ykman='/mnt/c/Program\ Files/Yubico/YubiKey\ Manager/ykman.exe'

alias pip2="DISPLAY= pip2"
alias pip3="DISPLAY= pip3"
alias pip3.7="DISPLAY= pip3.7"
alias pip3.10="DISPLAY= pip3.10"
alias pip="DISPLAY= pip3"

wsl_path() {
    win_path="$(powershell.exe "(get-command $1 -ErrorAction SilentlyContinue).Source")"
    if [ ! -z "$win_path" ]; then
        echo "$(wslpath "$win_path" | sed 's/\s/\\\ /g' | sed 's/\\\s*$//')"
    fi
}

alias alacritty="$(wsl_path "alacritty")"
alias pwsh="$(wsl_path "pwsh")"
alias ykhold='sudo systemctl stop usbip@wsl.service && echo "Press any key..." && read && sudo systemctl start usbip@wsl.service'

wsl_cmd_proxy() {
	exe="$1"
	shift # past exe

	cmd=" ${1}"
	shift # past cmd

	args=""
	while [ $# -gt 0 ]; do
		case "$1" in
		-*)
			args="$args${1} '${2}' "
			shift
			shift
			;;
		*)
			args="$args'${1}'"
			shift
			;;
		esac
		args="$args "
	done

	# shellcheck disable=2016
	powershell.exe -NoProfile -c 'cd $HOME;' "$exe" "$cmd" "$args"
}

winget() { wsl_cmd_proxy "winget.exe" "$@"; }
scoop() { wsl_cmd_proxy "scoop" "$@"; }

zvm_vi_yank () {
	zvm_yank
	printf %s "${CUTBUFFER}" | win32yank.exe -i
	zvm_exit_visual_mode
}

zvm_vi_put_after () {
	local head= foot=
  local content=$(win32yank.exe -o)
	local offset=1
	if [[ ${content: -1} == $'\n' ]]
	then
		local pos=${CURSOR}
		for ((; $pos<$#BUFFER; pos++)) do
			if [[ ${BUFFER:$pos:1} == $'\n' ]]
			then
				pos=$pos+1
				break
			fi
		done
		if zvm_is_empty_line
		then
			head=${BUFFER:0:$pos}
			foot=${BUFFER:$pos}
		else
			head=${BUFFER:0:$pos}
			foot=${BUFFER:$pos}
			if [[ $pos == $#BUFFER ]]
			then
				content=$'\n'${content:0:-1}
				pos=$pos+1
			fi
		fi
		offset=0
		BUFFER="${head}${content}${foot}"
		CURSOR=$pos
	else
		if zvm_is_empty_line
		then
			head="${BUFFER:0:$((CURSOR-1))}"
			foot="${BUFFER:$CURSOR}"
		else
			head="${BUFFER:0:$CURSOR}"
			foot="${BUFFER:$((CURSOR+1))}"
		fi
		BUFFER="${head}${BUFFER:$CURSOR:1}${content}${foot}"
		CURSOR=$CURSOR+$#content
	fi
	zvm_highlight clear
	zvm_highlight custom $(($#head+$offset)) $(($#head+$#content+$offset))
}