セッションを再開せずにショートカットレイアウトを変更できるように、XFCEで2つのショートカットプロファイルを切り替えるスクリプトを作成したいと思います。
私はショートカットが〜/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xmlにあることを知っていて、好きなショートカットレイアウトで2つのコピーを作成しました。
~/.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
し、2番目のコマンドはに切り替えます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