2016-09-26 1 views
1

In ehrfürchtigen wm Ich benutze gmrun, eine kleine Anwendung Launcher.Awesome wm, halten Fokus Ausnahme für eine Anwendung

{ rule = { class = "Gmrun" }, 
    properties = { floating = true, ontop = true, focus = true }, callback = function(c) c:geometry({x=30, y=45}) end}, 

und dies ist meine Regeln für all Abschnitt Kunden

awful.rules.rules = { 
-- All clients will match this rule. 
{ rule = { }, 
    properties = { border_width = beautiful.border_width, 
       border_color = beautiful.border_normal, 
       focus = awful.client.focus.filter, 
       raise = true, 
       keys = clientkeys, 
       size_hints_honor = false, 
       buttons = clientbuttons }, callback = awful.client.setslave }, 

Ich mag würde gmrun immer halten Fokus (eine Ausnahme von der Regel, in der Regel der neu eröffnete Client bekommt den Fokus) I ' ve diese Seite lesen, aber die Lösung, Always-on-top window and keeping focus, on AwesomeWM Vielen Dank im Voraus

Antwort

1

benutzerdefinierte Fokusfilterfunktion erstellen

nicht finden 10
local free_focus = true 
local function custom_focus_filter(c) return free_focus and awful.client.focus.filter(c) end 

Bearbeiten Sie Ihre Hauptregel

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

und gmrun Regel

{ rule = { class = "Gmrun" }, 
    properties = { floating = true, ontop = true, focus = true }, 
    callback = function(c) 
     c:geometry({x=30, y=45}) 
     free_focus = false 
     c:connect_signal("unmanage", function() free_focus = true end) 
    end }, 

Additioally, müssen Sie jeden Ort in der Config bearbeiten, wo client.focus = (z.B. schlampiger Fokus, Kundenknöpfe). Zum Beispiel

clientbuttons = awful.util.table.join(
    awful.button({ }, 1, function (c) if custom_focus_filter(c) then client.focus = c; c:raise() end end), 
    .... 
+0

OK Das funktioniert gut – jods

Verwandte Themen