我在 archlinux 3.17.3-1 上使用 gnome-shell 3.14。我有一个键盘快捷键 (ctrl+alt+T) 来打开 xfce4 终端。
我的问题是,当我触发此快捷方式时,焦点不会设置在新打开的终端上。我尝试添加到我的.zshrc
[[ -n "$DISPLAY" ]] && wmctrl -i -a $(wmctrl -l | grep Terminal | tail -n 1 | cut -d ' ' -f1)
这种方法很管用……直到我尝试在终端中打开多个选项卡。打开新选项卡时,.zshrc
运行并将焦点移至最后一个终端,这可能不是我当前正在处理的终端。
因此,我从文件中删除了该命令.zshrc
,并尝试编辑使用快捷键盘执行的命令
xcfe4-terminal&
sleep 0.1
wmctrl -i -a $(wmctrl -l | grep Terminal | tail -n 1 | cut -d ' ' -f1)
我尝试增加睡眠时间,但仍然没有效果(焦点未设置)
因此我有两个问题:
是否有可能以某种方式让脚本获取运行该脚本的 xfce4 终端的窗口 id?
是否可以在打开 xfce4 终端时运行命令(例如,如果它在终端中,
.zshrc
即使它不在终端中)。我尝试了该--execute
选项,但它不符合我的需求,因为它只运行聚焦命令,并给我留下一个无用的窗口
答案1
我知道这个帖子已经有 3 年了,但最近我从 Plasma 转到 Cinnamon 时也遇到了同样的问题。这就是我想到的
将其添加到您的.zshrc
(或任何其他 shell 配置文件)
xdotool windowactivate $(xdotool search --onlyvisible --class 'xfce4-terminal' | tail -n1) &>/dev/null
答案2
我也遇到过这个问题。我已将键盘快捷键更改为,
xfce4-terminal --disable-server
现在终端似乎可以正确获得焦点。