세션을 다시 시작하지 않고도 바로 가기 레이아웃을 변경할 수 있도록 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