Linux-Mint

有沒有辦法使用 bash 腳本中的新設置重新啟動 XFCE?

  • August 16, 2020

我的筆記型電腦執行的是 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 在進行更改後處理其鍵綁定設置,我還需要執行一些其他命令嗎?我不應該將鍵綁定設置為空字元串以禁用它們嗎?還是我在這裡缺少其他東西?

我希望/假設有一種方法可以做到這一點而不必註銷/重新登錄,因為這肯定比這裡的價值更麻煩。

提前感謝您提供的任何幫助!

如果未應用這些設置,則您的桌面已損壞。

xfsettingsd跑步和反應嗎?是xfwm4跑步和反應嗎?

加入IRC以獲得實時幫助

在嘗試將我的快捷方式/鍵映射從一個桌面複製到另一個桌面後,我找到了另一種解決方案:

  • killall xfconfd
  • 將您的 XFCE 配置文件複製到/home/$USER/.config/xfce4
  • 打開 Keyboard settings > Application Shortcuts ,確保新的快捷方式顯示在那裡,進行任何更改以強制 XFCE 重新載入設置文件,撤消更改(如果需要),那麼現在應該載入新設置。

引用自:https://unix.stackexchange.com/questions/211624