我想在打开终端(例如 Yakuake、Konsole)时将 tmux 设置为默认值,但在 Dolphin 文件管理器中排除该终端。
我将以下代码片段放入~/.zshrc
if [[ -x "$(command -v tmux)" ]] && [[ -n "${DISPLAY}" ]] && [[ -z "${TMUX}" ]]; then
windowname=$(xdotool getactivewindow getwindowname)
if [[ ${windowname} =~ ".*Yakuake$" ]] || [[ "${windowname}" =~ ".*Konsole$" ]]; then
exec tmux
fi
fi
但该命令xdotool getactivewindow
似乎总是得到错误的活动窗口。所以我写了这个片段来~/.zshrc
进行测试。
xdotool getactivewindow && xdotool getactivewindow getwindowname
sleep 3
xdotool getactivewindow && xdotool getactivewindow getwindowname
但是当通过快捷键ctrl++打开Yakuake时,我得到如下结果。似乎获得了错误的活动窗口名称,即最后一个激活的窗口(在示例中是),它应该是 Yakuake。altYxdotool
sublimetext
94371843
~/.zshrc - Sublime Text
65011722
~ : sleep — Yakuake
当通过KDE等离子或命令行激活Yakuake或Konsole时也有同样的现象。
当终端打开时,如何将 tmux 作为默认启动排除 Dolphin 中的终端?
更新:感谢卡米尔·马乔罗夫斯基的回答,在我的~/.zshrc
.
if [[ -x "$(command -v tmux)" ]] && [[ -n "${DISPLAY}" ]] && [[ -z "${TMUX}" ]]; then
if [[ ! "$(readlink -f /proc/${PPID}/exe)" =~ "dolphin" ]]; then
exec tmux
fi
fi