用於在 unity Switcher 中切換到特定視窗的自訂鍵盤快速鍵

用於在 unity Switcher 中切換到特定視窗的自訂鍵盤快速鍵

是否可以綁定自訂按鍵以切換到特定應用程式?

例如:
super+1 切換到 chrome 視窗(不是視窗清單中的第一個視窗)。
super+2 切換到 nautilus 窗口

或至少:
super+1 切換到第一個視窗
super+2 切換到第二個視窗

答案1

這需要一些工作,但您可以使用腳本和鍵綁定來完成此操作。

有一個工具叫xdo工具它可以讓你模擬鍵盤按下。您可以綁定鍵盤按鍵來執行利用此工具的腳本。

使用您喜歡的任何語言來傳輸終端命令,您可以使用以下命令找到特定的進程 ID: ps aux | grep "process here"

使用xdotool search --pid "process ID here"您將獲得單一應用程式的多個視窗 ID。我不知道如何對它們進行排序以找到正確的 ID,所以您可以做的就是讓您的腳本將找到的 ID 迭代到

xdotool windowactivate "window ID here"這將打開你的視窗。

例如,我的 1 鍵將被綁定來執行一個腳本,該腳本會尋找「filezilla」的進程 ID。然後它會用xdotool找到視窗ID,取得這些ID,然後將它們傳送給xdotool來拉出視窗。 2 鍵可能是“google-chrome”

答案2

我整理了李先生的建議並創建了這個腳本:

#!/bin/bash                                                                     

APP=$1                                                                          
if [ -z "$APP" ]; then                                                          
  echo Usage: $0 EXECUTABLE_NAME                                                
  exit 1                                                                        
fi                                                                              

PID=$(pgrep -f $APP | head -n 1)                                                
if [ -z "$PID" ]; then                                                          
  echo $APP executable not found                                                
  exit 2                                                                        
fi                                                                              

for WINDOW_ID in $(xdotool search --pid $PID); do                               
  xdotool windowactivate $WINDOW_ID                                             
done                                                                            

notify-send "Switched to $APP (PID=$PID)" 

它基本上忽略了任何錯誤的可能性,但對我有用。

相關內容