From f948b44f3163253aee6bb9cefc6ecf7b6d85f5aa Mon Sep 17 00:00:00 2001 From: q3aql Date: Sat, 30 Apr 2022 13:02:23 +0200 Subject: [PATCH] Dotfiles config update (2022-04-30) --- .config/qtile-wayland/settings/hooks.py | 84 +++++++++++++++++++++++ .config/qtile-wayland/settings/widgets.py | 2 - 2 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 .config/qtile-wayland/settings/hooks.py diff --git a/.config/qtile-wayland/settings/hooks.py b/.config/qtile-wayland/settings/hooks.py new file mode 100644 index 0000000..516e51d --- /dev/null +++ b/.config/qtile-wayland/settings/hooks.py @@ -0,0 +1,84 @@ +# Qtile Config File +# http://www.qtile.org/ + +# Justine Smithies +# Hooks configuration + +import os +import subprocess +import time +from libqtile import qtile +from libqtile import hook + +from groups import groups +from libqtile.log_utils import logger + + +@hook.subscribe.startup_once +def autostart(): + home = os.path.expanduser('~') + subprocess.Popen([home + '/.config/qtile/autostart.sh']) + +# Get the number of connected screens + +# @hook.subscribe.screens_reconfigured + + +def get_monitors(): + xr = qtile.screens + result = len(xr) - 1 if len(xr) > 2 else len(xr) + if result <= 0: + result = 1 + logger.warning(f"Number of monitors: {result}") + return result + + +# When application launched automatically focus it's group + +@hook.subscribe.client_new +def modify_window(client): + for group in groups: # follow on auto-move + match = next((m for m in group.matches if m.compare(client)), None) + if match: + targetgroup = client.qtile.groups_map[group.name] # there can be multiple instances of a group + targetgroup.cmd_toscreen(toggle=False) + break + +# Hook to fallback to the first group with windows when last window of group is killed + + +# @hook.subscribe.client_killed +# def fallback(window): + # if window.group.windows != [window]: +# if isinstance(window, base.Static) or window.group.windows != [window]: +# return +# idx = qtile.groups.index(window.group) +# for group in qtile.groups[idx - 1::-1]: +# if group.windows: +# qtile.current_screen.toggle_group(group) +# return +# qtile.current_screen.toggle_group(qtile.groups[0]) + +# Work around for matching Spotify + + +@hook.subscribe.client_new +def slight_delay(window): + time.sleep(0.04) + +# If Spotify opens move it to group 6 + + +@hook.subscribe.client_name_updated +def spotify(window): + if window.name == 'Spotify': + window.cmd_togroup(group_name='阮 ₆') + +# If mpv opens float it at pos x, y, w, h, borderwidth, border color + + +@hook.subscribe.client_managed +def repos(window): + if window.get_wm_class() and 'mpv' in window.get_wm_class(): + window.floating = True + window.place(1200, 650, 640, 360, 2, "#ffffff") diff --git a/.config/qtile-wayland/settings/widgets.py b/.config/qtile-wayland/settings/widgets.py index b3f992e..d422192 100644 --- a/.config/qtile-wayland/settings/widgets.py +++ b/.config/qtile-wayland/settings/widgets.py @@ -150,8 +150,6 @@ primary_widgets = [ widget.Clock(**base(bg='color1'), format='%d/%m/%Y %H:%M '), powerline('dark', 'color1'), - - widget.Systray(background=colors['dark'], padding=5), ] secondary_widgets = [