-
Notifications
You must be signed in to change notification settings - Fork 0
/
wsl.sh
41 lines (32 loc) · 1.23 KB
/
wsl.sh
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
# shellcheck shell=bash
CDPATH='.:~:~/Projects:/mnt/c/Users/max/Projects:/mnt/s:/mnt/c/Users/max'
export BROWSER=~/.local/bin/open
e() {
open "${1:-.}"
}
alias ee='e; exit'
alias vs='open *.sln'
alias ffplay='&>/dev/null ffplay.exe -hide_banner -nodisp -autoexit'
hide() { n "$@" | x wslpath -w | x attrib.exe +h; }
unhide() { n "$@" | x wslpath -w | x attrib.exe -h; }
recycle() { n "$@" | x wslpath -w | x nircmdc.exe moverecyclebin; }
hxd() { (n "$@" | x wslpath -w | xx /mnt/c/Program\ Files/HxD/HxD.exe &); }
# Faster than doing it from Windows when there's a ton of little files
empty-sovngarde-recycle-bin() {
ssh sovngarde 'rm -rfv /mnt/user/*/\$RECYCLE.BIN/*'
}
# Alt+V pastes Windows paths as WSL paths
bind -x '"\ev": __paste_wslpath'
__paste_wslpath() {
local before="${READLINE_LINE:0:$READLINE_POINT}"
local after="${READLINE_LINE:$READLINE_POINT}"
local insert
insert=$(printf '%q' "$(wslpath "$(unclip | sed -E 's/^"|"$//g')")")
READLINE_LINE="${before}${insert}${after}"
((READLINE_POINT += ${#insert}))
}
# https://learn.microsoft.com/en-us/windows/terminal/tutorials/new-tab-same-directory
windows_terminal_precmd() {
printf "\e]9;9;%s\e\\" "$(wslpath -w "$PWD")"
}
precmd_functions+=(windows_terminal_precmd)