私のラップトップは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がキーバインディング設定を変更した後に処理できるようにするには、追加のコマンドを実行する必要がありますか?無効にするには、キーバインディングを空の文字列に設定しないでください。それともここで別のものを見逃していますか?
ログアウト/再ログインせずにこれを行う方法があると期待/仮定します。これは確かにここでやる価値があるよりも多くの問題になるからです。
あなたが提供できる助けに感謝します!