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



















 
 
 




 
 
 
 