first commit
This commit is contained in:
commit
0610f4aeab
130 changed files with 9897 additions and 0 deletions
47
fn/-z4h-enable-iterm2-integration
Normal file
47
fn/-z4h-enable-iterm2-integration
Normal file
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
function iterm2_set_user_var() {
|
||||
(( ${+commands[base64]} )) || return
|
||||
local x
|
||||
x="$(printf '%s' "$2" | command base64 2>/dev/null)" || return
|
||||
-z4h-tmux-bypass '\e]1337;SetUserVar=%s=%s\007' "$1" "${x//$'\n'}"
|
||||
}
|
||||
|
||||
if (( ! $+functions[iterm2_print_user_vars] )); then
|
||||
function iterm2_print_user_vars() { }
|
||||
fi
|
||||
|
||||
function -z4h-iterm2-dump() {
|
||||
-z4h-tmux-bypass '\e]1337;RemoteHost=%s@%s\a' "${(%):-%n}" "${iterm2_hostname:-${(%):-%m}}"
|
||||
# I don't know what iTerm2 wants to be escaped and how. The official shell
|
||||
# integration doesn't escape anything, which is clearly wrong because \a
|
||||
# obviously cannot be passed as is.
|
||||
if [[ $PWD == /* && $PWD -ef . ]]; then
|
||||
local cwd=$PWD
|
||||
else
|
||||
local cwd=${${:-.}:a}
|
||||
fi
|
||||
-z4h-tmux-bypass '\e]1337;CurrentDir=%s\a' "${${cwd//$'\a'/\\a}//$'\e'/\\e}"
|
||||
iterm2_print_user_vars
|
||||
}
|
||||
|
||||
function -z4h-iterm2-precmd() {
|
||||
zle && return
|
||||
if (( _z4h_iterm_cmd )); then
|
||||
(( _z4h_iterm_cmd == 1 )) && -z4h-tmux-bypass '\e]133;C;\a'
|
||||
-z4h-tmux-bypass '\e]133;D;%s\a' $1
|
||||
fi
|
||||
-z4h-iterm2-dump
|
||||
typeset -gi _z4h_iterm_cmd=1
|
||||
}
|
||||
|
||||
function -z4h-iterm2-preexec() {
|
||||
-z4h-tmux-bypass '\e]133;C;\a'
|
||||
typeset -gi _z4h_iterm_cmd=2
|
||||
}
|
||||
|
||||
typeset -g ITERM_SHELL_INTEGRATION_INSTALLED=Yes
|
||||
typeset -gi _z4h_iterm_cmd=0 # this parameter is read by p10k
|
||||
|
||||
unfunction -- -z4h-enable-iterm2-integration
|
||||
autoload -Uz -- -z4h-enable-iterm2-integration
|
Loading…
Add table
Add a link
Reference in a new issue