網路上是有不少的 clipboard manager 但是我覺得為了這個不太常用但是需要的時候才打開又太遲的功能應該是要整合到 wm 裡,所以我就寫了一個簡單的 clipboard manager,其實沒什麼 manager 的功能,只是提供三個功能:把現在的 primary buffer 存到檔案裡,選擇之前存起來的內容貼回 primary buffer 裡,跟清除暫存起來的 buffer。
code 在 github 可以下載,用法大致如下:
把 clipboard.lua 放置在 rc.lua 同個目錄,然後在 rc.lua 的開頭引入
require("clipboard")然後在全域快捷鍵設定的地方加入下面的 code
-- clipboard -- {{{ awful.key({ modkey }, "c", copy_to_clipboard), awful.key({ modkey, "Shift" }, "c", clear_clipboard), awful.key({ modkey }, "v", clipboard_menu), -- }}}
我是設定 modkey(win) + c, 把 primary buffer(選取的文字)寫入 ~/.sel
modkey + shift + c 把 ~/.sel 清空
modkey + v 則會跳出一個選單把暫存的 buffer 都列出來,選擇以後就會覆蓋掉目前的 primary buffer,再按 shift + ins 即可貼上。
目前的作法蠻陽春的,換行的部份我用 #NL 取代掉才寫入,可想而知早晚會出事(?!),而且面對不是文字的 buffer 也還有待測試,不過對我來說算是夠用了啦,我會複製的東西也就是純文字的 code 而已 XDD,當然如果有意願想要改進它,也歡迎送 pull request 過來。