歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Awesome 窗口管理器——換種方式使用星際譯王

Awesome 窗口管理器——換種方式使用星際譯王

日期:2017/2/28 16:41:44   编辑:Linux教程

來自:linuxtoy.org

星際譯王被廣泛使用的兩個功能應該是劃詞翻譯和手動輸入翻譯。由於星際譯王缺少劃詞功能的開關快捷鍵,導致每次劃詞功能使用結束後,必須手動關閉此功能。

否則在 vim 視圖模式下選擇文本的時候會彈出不需要的翻譯窗口,這有點讓人苦惱。雖然它提供了‘在修飾鍵按下時才取詞’的功能,但是如果你真的使用過你就知道,它需要你一直按住修飾鍵不松,否則翻譯窗口立即被隱藏。另一種情況是,你不必始終按住修飾鍵,但是當你想隱藏翻譯窗口時,你必須動動你的鼠標。簡單來說,你有兩個選擇,要麼按住修飾鍵5秒、10秒、甚至20秒,要麼每次查詢結束你的手就得離開鍵盤動動鼠標。

對於手動輸入翻譯這個功能來說,sdcv 是個很好的想法,但它需要你始終保持一個虛擬終端以備你隨時的查詢,而且這將破壞你目前的狀態,因為你必須切換終端,甚至切換到另一個虛擬桌面。

Awesome 能幫我較好的解決這些苦惱,我甚至不用打開星際譯王的程序,就可以使用‘在修飾鍵按下時才取詞’的劃詞翻譯功能,和更方便的手動輸入翻譯功能。只需兩個額外的軟件包 sdcv 和 xsel 就能換來更好的使用體驗。

無論是用鼠標在 Firefox 裡,還是用鍵盤在 Vim 裡,當你選中一個單詞,按 Meta-d 就會在右上方彈出翻譯結果。當你要手動輸入某個單詞的時候,按 Meta-Shift-d 就會在任務欄那裡彈出一個 Dict: 輸入欄,輸入後回車即可看到翻譯結果。可設置超時自動關閉翻譯結果,也可以再按 Meta-d 立即關閉翻譯結果。當然你願意的話,用鼠標點一下翻譯結果也可以關閉它。

配置如下:

3.3 || 3.4

...
globalkeys = awful.util.table.join (
...
-- {{{ sdcv/stardict
awful.key({ modkey }, "d", function ()
local f = io.popen("xsel -o")
local newword = f:read("*a")
f:close()
if frame ~= nil then
naughty.destroy(frame)
frame = nil
if oldword == newword then
return
end
end
oldword = newword
local fc = ""
local f = io.popen("sdcv -n --utf8-output -u '牛津英漢雙解美化版' "..newword)
for line in f:lines() do
fc = fc .. line .. '\n'
end
f:close()
frame = naughty.notify({ text = fc, timeout = 10, width = 320 })
end),
awful.key({ modkey, "Shift" }, "d", function ()
awful.prompt.run({prompt = "Dict: "}, mypromptbox[mouse.screen].widget, function(cinword)
naughty.destroy(frame)
if cinword == "" then
return
end
local fc = ""
local f = io.popen("sdcv -n --utf8-output -u '牛津英漢雙解美化版' "..cin_word)
for line in f:lines() do
fc = fc .. line .. '\n'
end
f:close()
frame = naughty.notify({ text = fc, timeout = 10, width = 320 })
end, nil, awful.util.getdir("cache").."/dict")
end),
-- }}}
...
) -- globalkeys
簡單說明一下,sdcv -u 參數後面跟的是字典名稱,用 sdcv -l 可以查詢現有的字典。推薦兩本字典 xdict (簡要), 牛津英漢雙解美化版 (豐富)

Copyright © Linux教程網 All Rights Reserved