有没有办法使用 bash 脚本中的新设置重新启动 XFCE?

有没有办法使用 bash 脚本中的新设置重新启动 XFCE?

我的笔记本电脑运行的是 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

如果不应用这些设置,那么您的桌面就会损坏。

正在xfsettingsd运行并有反应吗?正在xfwm4运行并有反应吗?

加入我吧IRC寻求实时帮助

答案2

在尝试将快捷方式/键映射从一个桌面复制到另一个桌面后,我找到了另一种解决方案:

  • 跑步killall xfconfd
  • 将您的 XFCE 配置文件复制到/home/$USER/.config/xfce4
  • 打开 键盘设置 > 应用程序快捷键 ,确保其中显示新的快捷键,进行任何更改以强制 XFCE 重新加载设置文件,撤消更改(如果需要),然后现在应该加载新设置。

相关内容