我想创建一个脚本来在 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
第一个命令设置ctrlaltx为mousepad
,第二个命令将其切换为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