在 XFCE4 中创建快捷方式配置文件

在 XFCE4 中创建快捷方式配置文件

我想创建一个脚本来在 XFCE 中的两个快捷方式配置文件之间切换,这样我就可以在不重新启动会话的情况下更改快捷方式布局。

我知道快捷方式位于 ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml 中,并且我使用所需的快捷方式布局制作了两份副本。

交换 ~/.config/xfce4/xfconf/xfce-perchannel-xml 中的文件是不够的。

仅在完全重新启动后才更新快捷方式(注销并登录是不够的)。

是否有任何命令可以更新会话中的快捷方式(窗口管理器以某种方式在不重新启动会话的情况下执行此操作)?

答案1

您可以使用xfconf-query。例子:

xfconf-query -c xfce4-keyboard-shortcuts -p '/commands/custom/<Primary><Alt>x' -s mousepad

xfconf-query -c xfce4-keyboard-shortcuts -p '/commands/custom/<Primary><Alt>x' -s xfce4-terminal

第一个命令设置ctrlaltxmousepad,第二个命令将其切换为xfce4-terminal

您可以在 中找到这些命令的路径xfce4-settings-editor。左侧菜单是-c“频道”。然后您就拥有了属性-p,您可以通过单击通道下的项目并单击底部的“编辑”按钮来获取该属性。那么-s与 相同--set

对于您的脚本,您可以查询设置了哪个命令:

xfconf-query -c xfce4-keyboard-shortcuts -p '/commands/custom/<Primary><Alt>x'

例子:

~$ xfconf-query -c xfce4-keyboard-shortcuts -p '/commands/custom/<Primary><Alt>x'
xfce4-terminal

您的脚本可能看起来像这样,其中xfconf-query列出了每个键盘快捷键的命令。

#!/bin/bash

status=$(xfconf-query -c xfce4-keyboard-shortcuts -p '/commands/custom/<Primary><Alt>x')

if [ "$status" == "xfce4-terminal" ]; then
    # profile 1
    xfconf-query -c xfce4-keyboard-shortcuts -p '/commands/custom/<Primary><Alt>x' -s mousepad
    # etc
    # etc
else
    # profile 2
    xfconf-query -c xfce4-keyboard-shortcuts -p '/commands/custom/<Primary><Alt>x' -s xfce4-terminal
    # etc
    # etc
fi

相关内容