快速隱藏和呼出終端
下拉式終端(drop-down terminal emulator)有好幾個,常見的有 Yakuake、Guake、Tilda 等,有一個很明顯的好處,在用時可以熱鍵(多數默認是按 F12)呼出窗口,不需要時可將窗口隱藏。
如果是初次接觸,估計內心還會有點震驚,彷彿終端界的一股清流。其實這裏的核心就是招之能來,來之能戰,戰完歸營,我黨就是這麼指揮軍隊的,平時喝酒划水喫飯問題不大,大場面來的時候,要光速鐵錘出擊。
查找網上的資料,這種快速呼出界面的靈感來自 QUAKE 遊戲,打遊戲時按熱鍵彈出配置界面,所以很多時候又名爲 quake-style、quake-mode、quake-like,quake 沒玩過,cs 等遊戲應該玩過,我想差不多就是那個意思。
題外話說了很多,如今使用 alacrity 終端,想要在 labwc 窗口環境下,或者說在 Wayland 合成器(compositor),該如何實現類似功能呢?
下面就是我的折騰之路:
1. 快捷隱藏
大部門窗口管理器都是可以隱藏/最小化窗口的,比如 Gnome 的 Super+H
,因爲以前使用 Gnome 環境偏多,我在 labwc 窗口管理器下也是同樣的設置(按鍵盤上面的 Win 鍵 + h
)。
1<keybind key="W-h">
2 <action name="Iconify" />
3</keybind>
labwc -r
重新讀取配置後,便可以隨時隱藏活動窗口,自然終端軟件也不例外。
2. 快速呼出
快速呼出,功效上相當於下拉出來,反正就是彈出界面給人用。可能下拉的方式更加亮眼,逼格略高一丟丟。作爲一個實用主義者,並不是很在乎。
快速呼出對窗口管理器來說,就是重新前臺聚焦。在 wayland 環境下,找到了一個命令行工具 wlrctl,它實現了 wlr-foreign-toplevel-management 協議,還挺有意思是的。
- 能調用軟鍵盤打字
1➜ ~ wlrctl keyboard type 'Hello, world!'
2➜ ~ Hello, world!
- 控制光標移動
例如連續控制光標向右 50、向上 70 像素移動
1➜ ~ wlrctl pointer move 50 -70
2➜ ~ wlrctl pointer move 50 -70
3➜ ~ wlrctl pointer move 50 -70
4➜ ~
- 聚焦軟件
這個纔是我們本次重點關心的,且看 labwc 配置:
1<keybind key="W-Return">
2<action>
3 <name>Execute</name>
4 <command>sh -c 'wlrctl window focus Alacritty || alacritty'</command>
5</action>
6</keybind>
關鍵點是這個 wlrctl window focus Alacritty || alacritty
,意思是 Alcaritty 在運行的話,直接 focus 切換到前臺(聚焦),如果沒有在運行,直接啓動。
這樣不論 Alacritty 是否在運行,都可以通過 Win + Return
快捷鍵呼出終端。
有讀者可能會有疑問,爲什麼 Alacritty 一會首字母是大寫,一會又是小寫。
這個要看 wlrctl 的 manual:
focus [matches...]
Instruct the compositor to focus matching windows.
A match is a colon separated attribute/value pair. e.g. To match a firefox window, a suitable match value is app_id:firefox. You may give any number of match specifiers, and a window must match all of them to be considered. If the app_id or title keys are specified more than once, a window may match any of the given values. Otherwise later key value pairs override previous ones. A match without a key is assumed to be an app_id, so just firefox works in the example above.
Currently supported attributes are: app_id, title, and state.
因爲終端在運行的時候 app_id 被識別爲 Alacritty
:
1➜ ~ ps -ef |grep -i alacritty
2mephisto 35359 1 0 11:32 ? 00:00:00 sh -c wlrctl window focus Alacritty || alacritty
3mephisto 35361 35359 0 11:32 ? 00:00:50 alacritty
4mephisto 58501 23717 0 15:20 pts/7 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox -i alacritty
5➜ ~ wlrctl window focus Alacritty
6➜ ~ echo $?
70
8➜ ~ wlrctl window focus alacritty
9➜ ~ echo $?
101
11➜ ~
首字母大寫的時候才能匹配到,返回 0,如果真實終端程序未運行,||
前面返回假,直接運行 alacritty
啓動終端。
這樣一番操作後,即可以快速隱藏/呼出終端(分別對應win + h
/win + return
),如下面動圖所示:
錄屏製作 gif 的工具不給力,圖片有點模糊,原諒下,但能看清在不斷切換。
可能有讀者習慣於用一個按鍵 F12
來隱藏/呼出,那得自己想辦法用一箇中間變量把狀態保存起來,每次按鍵觸發一次反轉,布爾值切換。
個人認爲沒必要,win + h
可隱藏任意窗口,約定俗成,差不多肌肉記憶了。
win + return
呼出是窗口管理器 labwc 的默認行爲。
要用時呼出,不用時隱藏,收縮到狀態欄,更改下匹配軟件,理論上可以自由切換任意軟件,終端屬於高頻軟件,這樣配置我很滿意 😄。
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。
相關文章:
- greetd和regreet使用教程
- Wayland環境自動切換壁紙
- Wayland 環境下gif錄屏
- 應用啓動器yofi使用配置
- Ubuntu設置alacritty爲默認終端
- alacritty無法輸入中文以及標題欄問題
- alacritty 終端使用
- 網站添加回到頂部功能
- Hysteria科學上網簡要
- 我的工具箱