我的笔记本电脑运行的是 Linux Mint 17 XFCE 版本,我正在尝试对其进行设置,以便我可以通过常用的键绑定来使用 Emacs。其中包括涉及 Alt-Tab 的某些自动完成/填充命令,目前操作系统的 Alt-Tab 和 Shift-Alt-Tab 应用程序切换器会拦截我尝试使用的任何命令,包括这些键。
我希望能够运行某种监视脚本来检测 Emacs 何时运行(或聚焦),禁用 Alt-Tab 和 Shift-Alt-Tab 快捷键,然后在 emacs 不再运行时重置它们。
我尝试的解决方案:基于我在 AskUbuntu 收到的一个精彩答案相关问题使用 gsettings,我想我会尝试以下操作:
#!/bin/bash
disabled="0" # Track whether or not <Alt>Tab and <Alt><Shift>Tab are currently disabled
while true; do
isActive=$(wmctrl -lx | awk -v search=$(printf 0x0%x $(xdotool getactivewindow)) -v wm_class="$wm_class" '{ if($1 ~ search && $3 ~ /emacs/) print $3 }')
if [[ "$isActive" != "" ]]; then
# echo "active"
if [[ "$disabled" == "0" ]]; then
# echo "disable shortcuts"
xfconf-query -c xfce4-keyboard-shortcuts -p "/xfwm4/custom/<Alt>Tab" -s ""
xfconf-query -c xfce4-keyboard-shortcuts -p "/xfwm4/custom/<Alt><Shift>Tab" -s ""
disabled="1"
fi
else
# echo "not active"
if [[ "$disabled" == "1" ]]; then
# echo "enable shortcuts"
xfconf-query -c xfce4-keyboard-shortcuts -p "/xfwm4/custom/<Alt>Tab" -r
xfconf-query -c xfce4-keyboard-shortcuts -p "/xfwm4/custom/<Alt><Shift>Tab" -r
disabled="0"
fi
fi
sleep 1
done
虽然这似乎确实设置/重置了相关的键绑定设置,但这些设置只有在我注销并重新登录后才会生效,这违背了该脚本的目的。我是否需要运行其他命令才能让 XFCE 在更改后处理其键绑定设置?我不应该将键绑定设置为空字符串来禁用它们吗?还是我在这里还缺少其他东西?
我希望/假设有一种方法可以做到这一点,而无需注销/重新登录,因为这肯定会比在这里值得的麻烦更多。
预先感谢您提供的任何帮助!
答案1
答案2
在尝试将快捷方式/键映射从一个桌面复制到另一个桌面后,我找到了另一种解决方案:
- 跑步
killall xfconfd
- 将您的 XFCE 配置文件复制到
/home/$USER/.config/xfce4
- 打开 键盘设置 > 应用程序快捷键 ,确保其中显示新的快捷键,进行任何更改以强制 XFCE 重新加载设置文件,撤消更改(如果需要),然后现在应该加载新设置。