讓Xdotool在Linux定居
對於Ubuntu,Debian或者Linux Mint,你能夠只做:
對於Fedora,請使用yum命令:
對於CentOS用戶,可以在EPEL repo中找到該包(http://www.linuxidc.com/Linux/2014-08/105996p2.htm)。在啟用EPEL倉庫後,只要使用上面的yum命令就可以達成你的願望。
對於Arch用戶,可在Community倉庫中找到該包:
如果你還是找不到你的發行版的對應xdotool,你可以從它的官方站點下載。
雖然xdotool是那樣的直觀,但它仍然是個腳本程序。因此,為了要正確地使用它,你還是得了解它的語法。不過敬請放心,相對於程序的功能而言,語法還是比較簡單易學的。
首先,模擬擊鍵是很容易的。你可以從終端敲入下面的命令:
如果你想要連接兩個鍵,可以在它們之間使用“+”操作符。它看起來像這樣:
這兩個組合鍵可以為你切換窗口。
要想讓xdotool幫你輸入,可以使用以下命令:
這些對於基本的擊鍵而言已經足夠了。但是,xdotool的眾多長處之一,就是它可以獲取特定窗口的焦點。它可以獲取右邊的窗口,然後在裡面輸入,所有你記錄下的按鍵都不會人間蒸發,而是老老實實的如你所願的出現在那裡。要獲得該功能,一個簡單的命令可以搞定:
該命令將在打開的窗口中搜索對應名稱的窗口,並聚焦於該窗口,然後模擬擊鍵。
來點更高級的,但很有用哦,xdotool可以模擬鼠標移動和點擊,看這命令:
你可以將光標定位到屏幕坐標(x,y)(像素)。你也可以使用“click”參數來組合:
這會讓鼠標移動到(x,y),然後點擊鼠標左鍵。“1”代表鼠標左鍵,“2”則是滾輪,“3”則是右鍵。
最後,一旦你這些命令根植於你腦海,你也許想要實際轉儲於文件來編輯並試著玩玩。鑒於此,就會有超過一個語句以上的內容了。你需要的就是寫一個bash腳本了:
或者你可以使用:
這裡你將命令寫入到一個獨立的文件中,然後通過將文件名作為xdotool命令的參數。
作為本文的一個意外收獲,這裡是xdotool的一個具體實例。你可能聽說過,也可能沒聽說過Bing —— 微軟的搜索引擎。在後面的實例中,你會看到你可能從沒聽過Bing獎勵:一個程序,可以讓你用Bing積分兌取亞馬遜的禮物卡和其它的一些禮物卡(LCTT 譯注:我是從來沒聽說過~)。要賺取這些積分,你可以每天在Bing上搜索累計達30次,每次搜索你都會獲得0.5個積分。換句話說,你必須把Bing設為默認搜索引擎,並每天使用它。
或者,你可以使用xdotool腳本,在這個腳本中,會自動聚焦到Firefox(你可以用你喜歡的浏覽器來取代它),並使用fortune命令生成一些隨機單詞來實施搜索。大約30秒之內,你的日常搜索任務就完成了。
下面來個小結吧:我真的很喜歡xdotool,即便它的完整功能超越了本文涵蓋的范圍。這對於腳本和任務自動化而言,確實是種平易的方式。負面的問題是,它可能不是最有效率的一個。但我要再說一遍,它忠於職守了,而且學習起來也不是那麼麻煩。
你對xdotool怎麼看呢?你是否更喜歡另外一個自動化工具,而不是它呢?為什麼呢?請在評論中告訴我們吧。