使用 Linux 自動化工具提高生產率
AutoKey 是一個開源的 Linux 桌面自動化工具,一旦它成為你工作流程的一部分,你就會想,如何沒有它,那該怎麼辦。它可以成為一種提高生產率的變革性工具,或者僅僅是減少與打字有關的身體壓力的一種方式。
本文將研究如何安裝和開始使用 AutoKey ,介紹一些可以立即在工作流程中使用的簡單方法,並探討 AutoKey 高級用戶可能會感興趣的一些高級功能。
安裝並設置 AutoKey
AutoKey 在許多 Linux 發行版中都是現成的軟體包。該項目的 安裝指南 包含許多平台的說明,也包括了從源代碼進行構建的指導。本文使用 Fedora 作為操作平台。
AutoKey 有兩個變體:為像 GNOME 等基於 GTK 環境而設計的 autokey-gtk 和基於 QT 的 autokey-qt。
你可以從命令行安裝任一變體:
sudo dnf install autokey-gtk
安裝完成後,使用 autokey-gtk
(或 autokey-qt
)運行它。
探究界面
在將 AutoKey 設置為在後台運行並自動執行操作之前,你首先需要對其進行配置。調出用戶界面(UI)配置:
autokey-gtk -c
AutoKey 提供了一些預設配置的示例。你可能希望在熟悉 UI 時將他們留作備用,但是可以根據需要刪除它們。
![AutoKey 用戶界面](/data/attachment/album/202104/30/111205r73r3nn3wxar33nx.png "AutoKey UI")
左側窗格包含一個文件夾式的短語和腳本的層次結構。「 短語 」 代表要讓 AutoKey 輸入的文本。「 腳本 」 是動態的、程序化的等效項,可以使用 Python 編寫,並且獲得與鍵盤擊鍵發送到活動窗口基本相同的結果。
右側窗格構建和配置短語和腳本。
對配置滿意後,你可能希望在登錄時自動運行 AutoKey,這樣就不必每次都啟動它。你可以通過在 「 首選項 」菜單(「 編輯 -> 首選項 」)中勾選 「 登錄時自動啟動 AutoKey 」進行配置。
![登錄時自動啟動 AutoKey](/data/attachment/album/202104/30/111205wpjo49ophu724tt2.png "Automatically start AutoKey at login")
使用 AutoKey 糾正常見的打字排版錯誤
修復常見的打字排版錯誤對於 AutoKey 來說是一個容易解決的問題。例如,我始終鍵入 「gerp」 來代替 「grep」。這裡是如何配置 AutoKey 為你解決這些類型問題。
創建一個新的子文件夾,可以在其中將所有「打字排版錯誤校正」配置分組。在左側窗格中選擇 「My Phrases」 ,然後選擇 「 文件 -> 新建 -> 子文件夾 」。將子文件夾命名為 「Typos」。
在 「 文件 -> 新建 -> 短語 」 中創建一個新短語。並將其稱為 「grep」。
通過高亮選擇短語 「grep」,然後在 輸入短語內容 部分(替換默認的 「Enter phrase contents」 文本)中輸入 「grep」 ,配置 AutoKey 插入正確的關鍵詞。
接下來,通過定義縮寫來設置 AutoKey 如何觸發此短語。點擊用戶界面底部緊鄰 「 縮寫 」 的 「 設置 」按鈕。
在彈出的對話框中,單擊 「 添加 」 按鈕,然後將 「gerp」 添加為新的縮寫。勾選 「 刪除鍵入的縮寫 」;此選項讓 AutoKey 將任何鍵入 「gerp」 一詞的替換為 「grep」。請不要勾選「 在鍵入單詞的一部分時觸發 」,這樣,如果你鍵入包含 「grep」的單詞(例如 「fingerprint」),就不會嘗試將其轉換為 「fingreprint」。僅當將 「grep」 作為獨立的單詞鍵入時,此功能才有效。
![在 AutoKey 中設置縮寫](/data/attachment/album/202104/30/111206en1zhspvlnbjghlh.png "Set abbreviation in AutoKey")
限制對特定應用程序的更正
你可能希望僅在某些應用程序(例如終端窗口)中打字排版錯誤時才應用校正。你可以通過設置 窗口過濾器 進行配置。單擊 「 設置 」 按鈕來定義。
設置 窗口過濾器 的最簡單方法是讓 AutoKey 為你檢測窗口類型:
- 啟動一個新的終端窗口。
- 返回 AutoKey,單擊 「 檢測窗口屬性 」按鈕。
- 單擊終端窗口。
這將自動填充窗口過濾器,可能的窗口類值為 gnome-terminal-server.Gnome-terminal
。這足夠了,因此單擊 「OK」。
![AutoKey 窗口過濾器](/data/attachment/album/202104/30/111206emyyozpeyy59coyc.png "AutoKey Window Filter")
保存並測試
對新配置滿意後,請確保將其保存。 單擊 「 文件 」 ,然後選擇 「 保存 」 以使更改生效。
現在進行重要的測試!在你的終端窗口中,鍵入 「gerp」 緊跟一個空格,它將自動更正為 「grep」。要驗證窗口過濾器是否正在運行,請嘗試在瀏覽器 URL 欄或其他應用程序中鍵入單詞 「gerp」。它並沒有變化。
你可能會認為,使用 shell 別名 可以輕鬆解決此問題,我完全贊成!與別名不同,只要是面向命令行,無論你使用什麼應用程序,AutoKey 都可以按規則糾正錯誤。
例如,我在瀏覽器,集成開發環境和終端中輸入的另一個常見打字錯誤 「openshfit」 替代為 「openshift」。別名不能完全解決此問題,而 AutoKey 可以在任何情況下糾正它。
鍵入常用短語
你可以通過許多其他方法來調用 AutoKey 的短語來幫助你。例如,作為從事 OpenShift 的站點可靠性工程師(SRE),我經常在命令行上輸入 Kubernetes 命名空間名稱:
oc get pods -n openshift-managed-upgrade-operator
這些名稱空間是靜態的,因此它們是鍵入特定命令時 AutoKey 可以為我插入的理想短語。
為此,我創建了一個名為 「Namespaces」 的短語子文件夾,並為我經常鍵入的每個命名空間添加了一個短語條目。
分配熱鍵
接下來,也是最關鍵的一點,我為子文件夾分配了一個 「 熱鍵 」。每當我按下該熱鍵時,它都會打開一個菜單,我可以在其中選擇(要麼使用 「方向鍵」+回車鍵要麼使用數字)要插入的短語。這減少了我僅需幾次擊鍵就可以輸入這些命令的擊鍵次數。
「My Phrases」 文件夾中 AutoKey 的預配置示例使用 Ctrl+F7
熱鍵進行配置。如果你將示例保留在 AutoKey 的默認配置中,請嘗試一下。你應該在此處看到所有可用短語的菜單。使用數字或箭頭鍵選擇所需的項目。
高級自動鍵入
AutoKey 的 腳本引擎 允許用戶運行可以通過相同的縮寫和熱鍵系統調用的 Python 腳本。這些腳本可以通過支持的 API 的函數來完成諸如切換窗口、發送按鍵或執行滑鼠單擊之類的操作。
AutoKey 用戶非常歡迎這項功能,發布了自定義腳本供其他用戶採用。例如,NumpadIME 腳本 將數字鍵盤轉換為舊的手機樣式的文本輸入方法,Emojis-AutoKey 可以通過將諸如: :smile:
之類的短語轉換為它們等價的表情符號來輕鬆插入。
這是我設置的一個小腳本,該腳本進入 Tmux 的複製模式,以將前一行中的第一個單詞複製到粘貼緩衝區中:
from time import sleep
# 發送 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
函數,是因為 Tmux 有時無法跟上 AutoKey 發送擊鍵的速度,並且它們對整體執行時間的影響可忽略不計。
使用 AutoKey 自動化
我希望你喜歡這篇使用 AutoKey 進行鍵盤自動化的探索,它為你提供了有關如何改善工作流程的一些好主意。如果你在使用 AutoKey 時有什麼有用的或新穎的方法,一定要在下面的評論中分享。
via: https://opensource.com/article/21/2/linux-autokey
作者:Matt Bargenquast 選題:lujun9972 譯者:stevenzdg988 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive