使用 Linux 自動化工具提高生產(chǎn)率
用 AutoKey 配置你的鍵盤,糾正常見的錯別字,輸入常用的短語等等。
AutoKey 是一個開源的 Linux 桌面自動化工具,一旦它成為你工作流程的一部分,你就會想,如何沒有它,那該怎么辦。它可以成為一種提高生產(chǎn)率的變革性工具,或者僅僅是減少與打字有關(guān)的身體壓力的一種方式。
本文將研究如何安裝和開始使用 AutoKey ,介紹一些可以立即在工作流程中使用的簡單方法,并探討 AutoKey 高級用戶可能會感興趣的一些高級功能。
安裝并設(shè)置 AutoKey
AutoKey 在許多 Linux 發(fā)行版中都是現(xiàn)成的軟件包。該項(xiàng)目的 安裝指南 包含許多平臺的說明,也包括了從源代碼進(jìn)行構(gòu)建的指導(dǎo)。本文使用 Fedora 作為操作平臺。
AutoKey 有兩個變體:為像 GNOME 等基于 GTK 環(huán)境而設(shè)計(jì)的 autokey-gtk 和基于 QT 的 autokey-qt。
你可以從命令行安裝任一變體:
sudo dnf install autokey-gtk
安裝完成后,使用 autokey-gtk
(或 autokey-qt
)運(yùn)行它。
探究界面
在將 AutoKey 設(shè)置為在后臺運(yùn)行并自動執(zhí)行操作之前,你首先需要對其進(jìn)行配置。調(diào)出用戶界面(UI)配置:
autokey-gtk -c
AutoKey 提供了一些預(yù)設(shè)配置的示例。你可能希望在熟悉 UI 時將他們留作備用,但是可以根據(jù)需要刪除它們。
AutoKey 用戶界面
左側(cè)窗格包含一個文件夾式的短語和腳本的層次結(jié)構(gòu)。“短語” 代表要讓 AutoKey 輸入的文本。“腳本” 是動態(tài)的、程序化的等效項(xiàng),可以使用 Python 編寫,并且獲得與鍵盤擊鍵發(fā)送到活動窗口基本相同的結(jié)果。
右側(cè)窗格構(gòu)建和配置短語和腳本。
對配置滿意后,你可能希望在登錄時自動運(yùn)行 AutoKey,這樣就不必每次都啟動它。你可以通過在 “首選項(xiàng)”菜單(“編輯 -> 首選項(xiàng)”)中勾選 “登錄時自動啟動 AutoKey”進(jìn)行配置。
登錄時自動啟動 AutoKey
使用 AutoKey 糾正常見的打字排版錯誤
修復(fù)常見的打字排版錯誤對于 AutoKey 來說是一個容易解決的問題。例如,我始終鍵入 “gerp” 來代替 “grep”。這里是如何配置 AutoKey 為你解決這些類型問題。
創(chuàng)建一個新的子文件夾,可以在其中將所有“打字排版錯誤校正”配置分組。在左側(cè)窗格中選擇 “My Phrases” ,然后選擇 “文件 -> 新建 -> 子文件夾”。將子文件夾命名為 “Typos”。
在 “文件 -> 新建 -> 短語” 中創(chuàng)建一個新短語。并將其稱為 “grep”。
通過高亮選擇短語 “grep”,然后在 輸入短語內(nèi)容部分(替換默認(rèn)的 “Enter phrase contents” 文本)中輸入 “grep” ,配置 AutoKey 插入正確的關(guān)鍵詞。
接下來,通過定義縮寫來設(shè)置 AutoKey 如何觸發(fā)此短語。點(diǎn)擊用戶界面底部緊鄰 “縮寫” 的 “設(shè)置”按鈕。
在彈出的對話框中,單擊 “添加” 按鈕,然后將 “gerp” 添加為新的縮寫。勾選 “刪除鍵入的縮寫”;此選項(xiàng)讓 AutoKey 將任何鍵入 “gerp” 一詞的替換為 “grep”。請不要勾選“在鍵入單詞的一部分時觸發(fā)”,這樣,如果你鍵入包含 “grep”的單詞(例如 “fingerprint”),就不會嘗試將其轉(zhuǎn)換為 “fingreprint”。僅當(dāng)將 “grep” 作為獨(dú)立的單詞鍵入時,此功能才有效。
在 AutoKey 中設(shè)置縮寫
限制對特定應(yīng)用程序的更正
你可能希望僅在某些應(yīng)用程序(例如終端窗口)中打字排版錯誤時才應(yīng)用校正。你可以通過設(shè)置 窗口過濾器進(jìn)行配置。單擊 “設(shè)置” 按鈕來定義。
設(shè)置窗口過濾器的最簡單方法是讓 AutoKey 為你檢測窗口類型:
- 啟動一個新的終端窗口。
- 返回 AutoKey,單擊 “檢測窗口屬性”按鈕。
- 單擊終端窗口。
這將自動填充窗口過濾器,可能的窗口類值為 gnome-terminal-server.Gnome-terminal
。這足夠了,因此單擊 “OK”。
AutoKey 窗口過濾器
保存并測試
對新配置滿意后,請確保將其保存。 單擊 “文件” ,然后選擇 “保存” 以使更改生效。
現(xiàn)在進(jìn)行重要的測試!在你的終端窗口中,鍵入 “gerp” 緊跟一個空格,它將自動更正為 “grep”。要驗(yàn)證窗口過濾器是否正在運(yùn)行,請嘗試在瀏覽器 URL 欄或其他應(yīng)用程序中鍵入單詞 “gerp”。它并沒有變化。
你可能會認(rèn)為,使用 shell 別名 可以輕松解決此問題,我完全贊成!與別名不同,只要是面向命令行,無論你使用什么應(yīng)用程序,AutoKey 都可以按規(guī)則糾正錯誤。
例如,我在瀏覽器,集成開發(fā)環(huán)境和終端中輸入的另一個常見打字錯誤 “openshfit” 替代為 “openshift”。別名不能完全解決此問題,而 AutoKey 可以在任何情況下糾正它。
鍵入常用短語
你可以通過許多其他方法來調(diào)用 AutoKey 的短語來幫助你。例如,作為從事 OpenShift 的站點(diǎn)可靠性工程師(SRE),我經(jīng)常在命令行上輸入 Kubernetes 命名空間名稱:
oc get pods -n openshift-managed-upgrade-operator
這些名稱空間是靜態(tài)的,因此它們是鍵入特定命令時 AutoKey 可以為我插入的理想短語。
為此,我創(chuàng)建了一個名為 “Namespaces” 的短語子文件夾,并為我經(jīng)常鍵入的每個命名空間添加了一個短語條目。
分配熱鍵
接下來,也是最關(guān)鍵的一點(diǎn),我為子文件夾分配了一個 “熱鍵”。每當(dāng)我按下該熱鍵時,它都會打開一個菜單,我可以在其中選擇(要么使用 “方向鍵”+回車鍵要么使用數(shù)字)要插入的短語。這減少了我僅需幾次擊鍵就可以輸入這些命令的擊鍵次數(shù)。
“My Phrases” 文件夾中 AutoKey 的預(yù)配置示例使用 Ctrl+F7
熱鍵進(jìn)行配置。如果你將示例保留在 AutoKey 的默認(rèn)配置中,請嘗試一下。你應(yīng)該在此處看到所有可用短語的菜單。使用數(shù)字或箭頭鍵選擇所需的項(xiàng)目。
高級自動鍵入
AutoKey 的 腳本引擎 允許用戶運(yùn)行可以通過相同的縮寫和熱鍵系統(tǒng)調(diào)用的 Python 腳本。這些腳本可以通過支持的 API 的函數(shù)來完成諸如切換窗口、發(fā)送按鍵或執(zhí)行鼠標(biāo)單擊之類的操作。
AutoKey 用戶非常歡迎這項(xiàng)功能,發(fā)布了自定義腳本供其他用戶采用。例如,NumpadIME 腳本 將數(shù)字鍵盤轉(zhuǎn)換為舊的手機(jī)樣式的文本輸入方法,Emojis-AutoKey 可以通過將諸如: :smile:
之類的短語轉(zhuǎn)換為它們等價的表情符號來輕松插入。
這是我設(shè)置的一個小腳本,該腳本進(jìn)入 Tmux 的復(fù)制模式,以將前一行中的第一個單詞復(fù)制到粘貼緩沖區(qū)中:
from time import sleep
# 發(fā)送 Tmux 命令前綴(b 更改為 s)
keyboard.send_keys("<ctr>+s")
# Enter copy mode
keyboard.send_key("[")
sleep(0.01)
# Move cursor up one line
keyboard.send_keys("k")
sleep(0.01)
# Move cursor to start of line
keyboard.send_keys("0")
sleep(0.01)
# Start mark
keyboard.send_keys(" ")
sleep(0.01)
# Move cursor to end of word
keyboard.send_keys("e")
sleep(0.01)
# Add to copy buffer
keyboard.send_keys("<ctrl>+m")
之所以有 sleep
函數(shù),是因?yàn)?Tmux 有時無法跟上 AutoKey 發(fā)送擊鍵的速度,并且它們對整體執(zhí)行時間的影響可忽略不計(jì)。
使用 AutoKey 自動化
我希望你喜歡這篇使用 AutoKey 進(jìn)行鍵盤自動化的探索,它為你提供了有關(guān)如何改善工作流程的一些好主意。如果你在使用 AutoKey 時有什么有用的或新穎的方法,一定要在下面的評論中分享。