From 15634f51ff89c7102a66bf1c29de74d95145b410 Mon Sep 17 00:00:00 2001 From: cerberus Date: Sun, 17 Aug 2025 11:53:34 +0200 Subject: [PATCH] added group configuration --- qtile/modules/groups.py | 165 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) diff --git a/qtile/modules/groups.py b/qtile/modules/groups.py index e69de29..f4f6da2 100644 --- a/qtile/modules/groups.py +++ b/qtile/modules/groups.py @@ -0,0 +1,165 @@ +import re +from libqtile.lazy import lazy +from libqtile.config import Group, EzKey as Key, Match, DropDown, ScratchPad +from modules.keys import keys + +mod = "mod4" + +group_screen_map = { + "0": 1, + "1": 1, + "2": 1, + "3": 1, + "4": 0, + "5": 0, + "6": 0, + "7": 2, + "8": 2, + "9": 2, + "f1": 0, + "f2": 2, + "f3": 0, + "f4": 2, + "f5": 2, + "f6": 2, + "f7": 0, + "f8": 1, + "f9": 1, + "f10": 1, + "f11": 1, + "f12": 1, +} + +groups = [ + Group( + name="0", + label="󰓓", + matches=[ + Match(wm_class=re.compile(r"^(steam)")), + Match(wm_class=re.compile(r"^(Minecraft*)")), + ], + ), + Group(name="1", label="󰲡"), + Group(name="2", label="󰲣"), + Group(name="3", label="󰲥"), + Group(name="4", label="󰲧"), + Group(name="5", label="󰲩"), + Group(name="6", label="󰲫"), + Group(name="7", label="󰲭"), + Group(name="8", label="󰲯"), + Group(name="9", label="󰲱"), + # Groups on function-keys + Group( + name="f1", + label="", + matches=[ + Match(wm_class=re.compile(r"^(firefox)$")), + ], + ), + Group(name="f2", label="", matches=[Match(wm_class="discord")]), + Group( + name="f3", + label="", + matches=[Match(wm_class=re.compile(r"^(joplin)$"))], + ), + Group( + name="f4", + label=" ", + matches=[ + Match(wm_class=re.compile(r"^(com.github.th_ch.youtube_music)$")), + ], + ), + Group( + name="f5", + label="󱦹", + matches=[Match(wm_class="rnote")], + ), + Group( + name="f6", + label="󰟵", + matches=[Match(wm_class="bitwarden")], + ), + Group( + name="f7", + label=" 󰣀", + matches=[Match(wm_class=re.compile(r"^(XPipe)$"))], + ), + Group(name="f8", label="󱊲"), + Group(name="f9", label="󱊳"), + Group(name="f10", label="󱊴"), + Group(name="f11", label="󱊵"), + Group(name="f12", label="󱊶"), +] + + +def go_to_group(name: str): + def _inner(qtile): + screen = group_screen_map.get(name, 0) + if len(qtile.screens) <= 2: + qtile.groups_map[name].toscreen() + else: + qtile.focus_screen(screen) + qtile.groups_map[name].toscreen() + + return _inner + + +# for i in groups: +# keys.append(Key([mod], i.name, lazy.function(go_to_group(i.name)))) +for i in groups: + keys.append( + Key(f"M-{i.name}", lazy.function(go_to_group(i.name))), + ) + + +def go_to_group_and_move_window(name: str): + def _inner(qtile): + screen = group_screen_map.get(name, 0) + if len(qtile.screens) <= 2: + qtile.current_window.togroup(name, switch_group=False) + else: + qtile.current_window.togroup(name, switch_group=False) + qtile.focus_screen(screen) + qtile.groups_map[name].toscreen() + + return _inner + + +for i in groups: + keys.append( + Key(f"M-S-{i.name}", lazy.function(go_to_group_and_move_window(i.name))), + ) + +for i in range(1, 12): + group_name = f"f{i}" + key = f"F{i}" + keys.append + +groups.append( + ScratchPad( + "scratchpad", + [ + DropDown( + "term", + "kitty", + width=0.4, + height=0.5, + x=0.3, + y=0.25, + opacity=1, + on_focus_lost_hide=True, + ), + DropDown( + "calc", + "qalculate-gtk", + width=0.3, + height=0.6, + x=0.35, + y=0.2, + opacity=1, + on_focus_lost_hide=False, + ), + ], + ) +) +