shpool + kitty 疑难杂症
https://github.com/shell-pool/shpool/discussions?discussions_q=vscode
~/.zshrc 默认启动&进入shpool attach
why
最新版vscode会执行类似 /bin/zsh -ilc echo -n "_ENV_DELIMITER_"; command env; echo -n "_ENV_DELIMITER_"; exit 来获取环境变量,否则会报错:
无法解析 shell 环境: 来自生成的 shell 的意外退出代码(代码 1、信号 null)
解决方案: code.desktop 添加 TERM_PROGRAM=vscode
Exec=env TERM_PROGRAM=vscode /usr/share/code/code %F
# 读取自身启动时的argv
PROC_CMD=$(tr '\0' ' ' < /proc/$$/cmdline)
# 避免无限嵌套shpool,兼容vscode的环境嗅探
if [[ -z "$TERM_PROGRAM" && -z "$SHPOOL_SESSION_NAME" ]]; then
shpool=/home/n/.cargo/bin/shpool
PWD_3=$(echo $PWD | awk -F/ '{print $(NF-2)"/"$(NF-1)"/"$NF}')
[[ "$PWD_3" == "/home/n" ]] && PWD_3=""
name="$(date +%u%I%M%S)$PWD_3"
#name=shpool
#if $shpool list --json | jq -e ".sessions | any(.name == \"$name\" and .status == \"Attached\")" >/dev/null; then
# name="$(date +%M%S)"
#fi
exec $shpool attach --ttl 7d "$name"
fi
alias shpool-kill-all="shpool list | tail -n +2 | cut -f1 | xargs shpool kill"
alias shpool-kill-disconnected="shpool list | grep disconnected | awk '{print $1}' | xargs -r shpool kill"
thunar 在终端打开无效
exo-open --working-directory %f --launch TerminalEmulator
kitty --directory %f

浙公网安备 33010602011771号