aboutsummaryrefslogtreecommitdiff
path: root/linux/qtile/config/group.m4.py
diff options
context:
space:
mode:
Diffstat (limited to 'linux/qtile/config/group.m4.py')
-rw-r--r--linux/qtile/config/group.m4.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/linux/qtile/config/group.m4.py b/linux/qtile/config/group.m4.py
new file mode 100644
index 0000000..abb64a6
--- /dev/null
+++ b/linux/qtile/config/group.m4.py
@@ -0,0 +1,67 @@
+groups = [
+ Group(name="1"),
+ Group(name="2"),
+ Group(name="3"),
+ Group(name="4"),
+ Group(name="5"),
+ Group(name="6"),
+ Group(name="7"),
+ Group(name="8"),
+ Group(name="9"),
+]
+
+group_screen_map = dict()
+
+def to_group(name: str):
+ def _inner(qtile):
+ g = qtile.groups_map[name]
+ if (sc := group_screen_map[name]) is not None:
+ if sc < num_monitors:
+ qtile.to_screen(sc)
+ g.toscreen()
+ return _inner
+
+
+for g in groups:
+ group_screen_map[g.name] = None
+ keys.extend(
+ [
+ Key(
+ [mod],
+ g.name,
+ lazy.function(to_group(g.name)),
+ desc="Switch to group {}".format(g.name),
+ ),
+ Key(
+ [mod, "shift"],
+ g.name,
+ lazy.window.togroup(g.name),
+ desc="move focused window to group {}".format(g.name)
+ ),
+ ]
+ )
+
+@hook.subscribe.group_window_add
+def group_window_add(group, window):
+ groups = qtile.get_groups()
+ global group_screen_map
+ group_screen_map[group.name] = groups[group.name]["screen"]
+ logger.warning(group_screen_map)
+
+
+@hook.subscribe.delgroup
+def group_deleted(group_name):
+ send_notification("qtile", f"Group deleted: {group_name}")
+
+@hook.subscribe.setgroup
+def setgroup():
+ send_notification("qtile", "Group set")
+
+
+@hook.subscribe.changegroup
+def change_group():
+ send_notification("qtile", "Change group event")
+
+@hook.subscribe.addgroup
+def group_added(group_name):
+ send_notification("qtile", f"New group added: {group_name}")