내 노트북은 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
답변2
한 데스크톱에서 다른 데스크톱으로 바로가기/키맵을 복사하려고 시도한 후 다른 해결책을 찾았습니다.
- 달리기
killall xfconfd
- XFCE 구성 파일을 다음 위치에 복사하세요.
/home/$USER/.config/xfce4
- 키보드 설정 > 응용 프로그램 단축키를 열고 새 단축키가 표시되는지 확인하고 XFCE가 설정 파일을 다시 로드하도록 변경한 다음 변경 사항을 실행 취소하고(필요한 경우) 이제 새 설정이 로드되어야 합니다.