qtile: set rules for window swallow

This commit is contained in:
Guilherme Rugai Freire 2021-08-08 20:03:07 -03:00
parent 37e2957a7b
commit a5cf4c04eb
No known key found for this signature in database
GPG Key ID: 0F9FE41723A8A297

View File

@ -390,6 +390,15 @@ def autostart():
@hook.subscribe.client_new @hook.subscribe.client_new
def swallow(window): def swallow(window):
swallow_from=[
Match(wm_class="Alacritty"),
]
not_swallow=[]
if any(window.match(rule) for rule in not_swallow):
return
pid = window.window.get_net_wm_pid() # Window PID pid = window.window.get_net_wm_pid() # Window PID
ppid = psutil.Process(pid).ppid() # Parent Window PID ppid = psutil.Process(pid).ppid() # Parent Window PID
cpids = {c.window.get_net_wm_pid(): wid for wid, c in window.qtile.windows_map.items()} # All Windows PIDs cpids = {c.window.get_net_wm_pid(): wid for wid, c in window.qtile.windows_map.items()} # All Windows PIDs
@ -398,6 +407,8 @@ def swallow(window):
return return
if ppid in cpids: if ppid in cpids:
parent = window.qtile.windows_map.get(cpids[ppid]) parent = window.qtile.windows_map.get(cpids[ppid])
if not any(parent.match(rule) for rule in swallow_from):
return
parent.minimized = True parent.minimized = True
window.parent = parent window.parent = parent
return return