歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

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

來自: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