2013-09-23 39 views
3

我想創建一個鍵綁定來將焦點切換到主客戶端。在this forum thread筆記Profjim:創建鍵綁定以將主客戶端集中到awesome-wm中

要獲得主客戶端上的當前標籤:

c = awful.client.getmaster() 

我曾嘗試以下,但它會導致我的〜/的.config/rc.lua文件被忽略,這是文件中出現錯誤時的行爲。有誰知道正確的語法?

awful.key({ modkey,   , "e", awful.client.getMaster()), 

注意:如果您有默認的鍵綁定,「e」不應該引起任何衝突。

編輯:於/r/awesomewm有人知道語法來解決我的問題:

awful.key({ modkey,   }, "e", function() client.focus = awful.client.getmaster(); client.focus:raise() end), 
+0

哇,文檔很巧妙......(你很困惑,但我不怪你) – Textmode

回答

2

讓與語法錯誤啓動; from the documentation看起來awful.key是一張表,而不是一個函數。它可能會包含keys ...這是散列表,而不是序列。

最後你的表語法是錯誤的;字段可能不是句法上的爲空,它必須具有列出的值,即使該值爲nil

所以,基本上你試圖把錯誤的價值傳遞給一些無法調用的東西。


至於如何正確地做到這一點...文檔是混亂的,顯然我不是這樣認爲的唯一一個。

* 深呼吸 *

沒關係,awful.new(...)創建關鍵粘合劑(?),和awful.key包含鍵綁定,所以我們顯然必須把第一的成績進入第二。
鏈接上的代碼不過是一個指針,只包含了對焦窗口,而不是創建鍵綁定。

似乎像你想是這樣的:

function do_focus() 
    current = client.focus 
    master = awful.client.getmaster() 
    if current then 
     client.focus = master 
     master:raise() 
    end 
end 

table.insert(awful.key, awful.new (modkey, 'e', nil, do_focus)) 

裸記住,我沒有測試上面的代碼的方式。

+0

沒有。我們只需要[modal keybindings](http://awesome.naquadah.org/wiki/Modal_Keybindings) – hjpotter92