Keyboard-Shortcuts
用於最小化所有其他視窗的腳本/鍵盤快捷鍵
我想要一個全域鍵盤快捷鍵
super
+down
來最小化除活動視窗之外的所有視窗,這樣我就可以在後台看到只有桌面的視窗。一個不錯的附加功能是將視窗同時定位到螢幕的中心。我在 Kubuntu 19.10 和 Plasma 5.18.3 上。
我知道“Shake”KWin 腳本,但我想要一個鍵盤快捷鍵。
我的想法是編寫一個腳本來最小化所有視窗,然後通過按鍵將最後一個活動視窗重新聚焦並居中
xdotool
,然後配置自定義快捷方式來執行此腳本。我的腳本如下:
#!/bin/bash active=$(xdotool getactivewindow) # remember active window xdotool key super+shift+d # minimize all windows xdotool windowactivate $active # bring back last active window xdotool key super+c # center active window
super
+shift
+d
是我為我之前啟動的 KWin 腳本“最小化所有”配置的全域快捷方式,super
+c
為我安裝並啟動的“將視窗移動到中心”KWin 腳本配置的一個。單獨地,這些組合鍵在手動點擊它們和使用 xdotool 模擬它們時都有效。我的自定義快捷方式確實啟動了腳本;但是,它只會最小化視窗,不會使最後一個視窗重新聚焦。
從終端執行腳本並在行
echo
之間插入語句表明腳本一直執行到最後,只是最後兩行似乎沒有任何效果,但沒有給出任何錯誤消息。執行命令echo $(xdotool getactivewindow)
並xdotool windowactivate 150994951
單獨執行它們應該做的事情,所以我最好的猜測是我在將active
變數傳遞給windowactivate
命令時做錯了,但我不知道是什麼。我做錯了什麼?
有沒有更優雅的方法來為上述過程定義自定義快捷方式?
我不確定為什麼您的腳本不起作用,可能
windowactivate
是在上一個命令設法最小化所有視窗之前執行?這是一個可能適合您的 bash 腳本:
#!/bin/bash active_window_id=$(xdotool getactivewindow) for window_id in $(xdotool search --onlyvisible ".*") do if [ $window_id != $active_window_id ] then xdotool windowminimize $window_id fi done
它也可能看起來更好,因為它不會快速最小化和最大化您的活動視窗。
**編輯:**我錯過了居中部分,但這應該不是問題。