From 8b891bbf8d0c95ef0228b9543e663b11317cb853 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Thu, 14 Jul 2022 11:02:52 +0200 Subject: [PATCH] i3: try to make it work with Zoom Zoom is trying very hard to break all existing X11 conventions. Let's try to make it work anyway. --- bin/i3-companion | 8 +++++++- config | 14 ++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/bin/i3-companion b/bin/i3-companion index 6f54249..75c6714 100755 --- a/bin/i3-companion +++ b/bin/i3-companion @@ -84,7 +84,7 @@ application_icons = { "wireshark": icon(2, ""), "zathura": icon(2, ""), "zoom": icon(2, ""), - "zoom.real ": icon(2, ""), + "zoom.real": icon(2, ""), } icons = { "access-point": icon(2, ""), @@ -354,6 +354,12 @@ async def workspace_rename(i3, event): if cls in application_icons_ignore: continue icon = application_icons.get(cls, application_icons.get(cls.split("-")[0])) + if icon is None: + # Zoom (😱) + if (window.window_title or "").startswith("Zoom") or ( + window.window_instance or "" + ).startswith(("start?action=start", "join?action=join")): + icon = application_icons["zoom"] icons.add(icon or application_icons_nomatch) if any([i not in application_icons_alone for i in icons]): icons -= application_icons_alone diff --git a/config b/config index 176e6e5..7f62170 100644 --- a/config +++ b/config @@ -159,10 +159,16 @@ no_focus [floating_from="auto" title=" is sharing your screen.$"] # Jitsi sharing indicator for_window [floating_from="auto" title="Screen Sharing Tracker" instance="jitsi meet"] border none, sticky enable, move position 10 ppt -5 px no_focus [floating_from="auto" title="Screen Sharing Tracker" instance="jitsi meet"] -# Zoom -for_window [class="^zoom(\.|$)" instance="zoom(\.|$)" title="^Zoom"] floating disable, border pixel $borderpx -for_window [class="^zoom(\.|$)" instance="zoom(\.|$)" title="^zoom$"] floating enable, border none -no_focus [class="^zoom(\.|$)" instance="zoom(\.|$)" title="^zoom$"] +# Zoom (😱) +for_window [instance="^zoom(\.|$)" title="^Zoom($|\s)"] floating disable, border pixel $borderpx +for_window [instance="^zoom(\.|$)" title="^zoom"] floating enable, border none +no_focus [instance="^zoom(\.|$)" title="^zoom"] +for_window [instance="^join\?action=join" title="^Zoom($|\s)"] floating disable, border pixel $borderpx +for_window [instance="^join\?action=join" title="^join\?action=join"] floating enable, border none +no_focus [instance="^join\?action=join" title="^join\?action=join"] +for_window [instance="^start\?action=start" title="^Zoom($|\s)"] floating disable, border pixel $borderpx +for_window [instance="^start\?action=start" title="^start\?action=start"] floating enable, border none +no_focus [instance="^start\?action=start" title="^start\?action=start"] # start stuff exec_always --no-startup-id exec systemctl --user start --no-block i3-session.target