2015-04-16 96 views
5

我正在運行一個腳本,它創建和關閉了幾個窗口,因此,我添加到我的rc.lua一種方式來保持我工作的窗口始終位於頂部:總是在頂部的窗口,並保持焦點,在AwesomeWM

awful.key({ modkey, "Control" }, "space", 
function(c) 
    awful.client.floating.toggle() 
    c.ontop = not c.ontop 
end), 

問題是:當新窗口創建時,我失去了焦點,它傳遞給新窗口。

有沒有辦法讓前面的切換不僅保持窗口在最前面,而且還有焦點,直到我再次切換它?

+0

以防萬一:我的解決方法是設置該程序在一個特定的標籤打開的規則...但我真的想切換到寄託在一切之上我的窗口,而不是失去焦點當出現其他窗口時。 –

+0

是否有任何新的窗口打開開關焦點或只是來自此應用程序/腳本的窗口? –

+0

任何窗口,但我不知道我有窗口彈出,只是用這個腳本。 –

回答

3

假設從線this awesomerc.lua file 357-375是在用戶的awesomerc.lua文件awful.rules.rules分配,在分配使用的awful.client.focus.filterthis file的一個,那麼你應該能夠做這樣的事。

在你的rc文件中的某處定義一個自定義焦點過濾器函數。

function custom_focus_filter(c) 
    if global_focus_disable then 
     return nil 
    end 
    return awful.client.focus.filter(c) 
end 

然後使用自定義過濾功能的規則分配代替原來的過濾器的功能。

awful.rules.rules = { 
    -- All clients will match this rule. 
    { rule = { }, 
     properties = { .... 
        focus = custom_focus_filter, 
        .... } }, 

然後您的切換功能只需要設置和取消設置適當的全局。

awful.key({ modkey, "Shift" }, "f", function() 
    global_focus_disable = not global_focus_disable 
end) 
+0

好極了!有效。謝謝! (是的,我完全錯過了你的觀點,對此感到抱歉) –