mirror of
https://github.com/vincentbernat/i3wm-configuration.git
synced 2025-06-24 18:58:33 +02:00
bindings: enhance the way the Pidgin conversation window is selected
There is now some cycle stuff. This is still not perfect since it will bring some random window. It would be better to be able to choose the appropriate one.
This commit is contained in:
parent
8bce8a5528
commit
b6f1ee8646
1 changed files with 42 additions and 29 deletions
|
@ -80,7 +80,9 @@ end
|
|||
|
||||
-- Toggle pidgin conversation window
|
||||
local toggle_pidgin = toggle_window(
|
||||
function ()
|
||||
(function ()
|
||||
local adding = true
|
||||
local choose = function()
|
||||
local cls = client.get()
|
||||
local focus = client.focus
|
||||
local rule = { class = "Pidgin",
|
||||
|
@ -99,8 +101,10 @@ local toggle_pidgin = toggle_window(
|
|||
local visible = cl:isvisible()
|
||||
if urgent and visible and not focused then return 100 end
|
||||
if urgent and not visible and not focused then return 90 end
|
||||
if not urgent and not visible then return 80 end
|
||||
if not adding and focused then return 80 end
|
||||
if adding and not urgent and not visible then return 70 end
|
||||
if focused then return 50 end
|
||||
if not urgent and not visible then return 40 end
|
||||
return 10
|
||||
end
|
||||
table.sort(cls, function(c1, c2)
|
||||
|
@ -108,8 +112,17 @@ local toggle_pidgin = toggle_window(
|
|||
local s2 = score(c2)
|
||||
return s1 > s2
|
||||
end)
|
||||
if awful.rules.match(cls[1], rule) then return cls[1] end
|
||||
end)
|
||||
local candidate = cls[1]
|
||||
if candidate == nil or not awful.rules.match(candidate, rule) then return nil end
|
||||
|
||||
-- Maybe we need to switch direction
|
||||
if candidate == focus and adding then adding = false
|
||||
elseif candidate ~= focus and not adding then adding = true end
|
||||
|
||||
return candidate
|
||||
end
|
||||
return choose
|
||||
end)())
|
||||
|
||||
-- Toggle urgent window
|
||||
local toggle_urgent = toggle_window(awful.client.urgent.get)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue