[英]Create keybinding to focus master client in awesome-wm
我想創建一個鍵綁定來將焦點切換到主客戶端。 Profjim在這個論壇帖子中注意到:
要獲取當前標記上的主客戶端:
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),
讓我們從語法錯誤開始; 從文檔中看來, awful.key
是一個表,而不是一個函數。 並且它可能包含key
s ...它們是哈希表,而不是序列。
最后你的表語法錯了; 字段可能在語法上不為空,它必須具有列出的值,即使該值為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) )
請記住,我無法測試上面的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.