From 964f6f05e72e13441f66a46ddb04121045a379dc Mon Sep 17 00:00:00 2001 From: cerberus Date: Tue, 24 Feb 2026 15:27:11 +0100 Subject: [PATCH] fiddle around with rules and new bar layout --- modules/screens.py | 206 +++++++++++++++++++++++++++------------------ 1 file changed, 123 insertions(+), 83 deletions(-) diff --git a/modules/screens.py b/modules/screens.py index 4fccfe3..a8d8fee 100644 --- a/modules/screens.py +++ b/modules/screens.py @@ -25,85 +25,68 @@ from popups.brightness_notification import BRIGHTNESS_NOTIFICATION from res.themes.colors import gruvbox_dark + # -------------------------------------------------------- # GroupBox2 rules # -------------------------------------------------------- -# def set_app_group_color(rule, box): -# if box.has.win.name("Jellyfin Media Player"): -# rule.foreground = gruvbox_dark -# # elif box.occupied: -# # rule.text = "◎" -# # else: -# # rule.text = "○" - -# return True +def colorize_group_lables(rule, box): + for win in box.group.windows: + if "kitty" in win.name: + return True + return False -def get_groupbox_rules(monitor_specific=True): +def get_groupbox_rules(): # Base rules applied to all GroupBoxes rules = [ GroupBoxRule(text_colour=gruvbox_dark["bg3"]).when( focused=False, occupied=True ), - # GroupBoxRule(text_colour=gruvbox_dark["aqua"]).when(focused=False, occupied=False), GroupBoxRule(text_colour=gruvbox_dark["fg3"]).when(focused=True), GroupBoxRule(text_colour=gruvbox_dark["red"]).when( focused=False, occupied=True, urgent=True ), GroupBoxRule(visible=False).when(focused=False, occupied=False), - # GroupBoxRule().when(func=set_app_group_color) + GroupBoxRule(text_colour=gruvbox_dark["orange"]).when( + func=colorize_group_lables, + ), ] + return rules # Add extra rule for a specific monitor (e.g., show "X" as label) - if monitor_specific: - rules.append(GroupBoxRule(text="")) - return rules + # if monitor_specific: + # rules.append(GroupBoxRule(text="")) + # return rules # -------------------------------------------------------- # Widget Defaults # -------------------------------------------------------- -widget_defaults = dict(font="Open Sans", fontsize=18, foreground=gruvbox_dark["fg1"]) +widget_defaults = dict(font="Open Sans", fontsize=20, foreground=gruvbox_dark["fg1"]) extension_defaults = widget_defaults.copy() # -------------------------------------------------------- # Screens # -------------------------------------------------------- -bar.Bar screens = [ Screen( top=bar.Bar( [ - widget.TextBox( - text="", - fontsize=24, # PopUp-Toolkit? - foreground=gruvbox_dark["blue"], - mouse_callbacks={"Button1": lazy.function(start_menu)}, - ), + # widget.TextBox( + # text="", + # ), widget.GroupBox2( - padding=5, - fontsize=22, - font="Open Sans", - center_aligned=True, - visible_groups=["1", "2", "3", "4", "5", "6", "7"], # , '8', '9' hide_unused=True, - rules=get_groupbox_rules(monitor_specific=False), - ), - widget.Spacer(length=20), - widget.Mpris2( - name="mpris2", - width=350, - scroll=True, - scroll_clear=True, - foreground=gruvbox_dark["fg1"], - format="{xesam:title} - {xesam:artist}", - paused_text="{track} ", - popup_layout=MPRIS2_LAYOUT, - poll_interval=15, - popup_show_args={"relative_to": 2, "relative_to_bar": True, "y": 3}, - mouse_callbacks={"Button1": lazy.widget["mpris2"].toggle_player()}, + center_aligned=True, + rules=get_groupbox_rules(), + padding=6, + margin=4, + fontsize=22, + visible_groups=["1", "2", "3", "4", "5", "6", "7"], # , '8', '9' ), widget.Spacer(), + widget.Clock(), + widget.Spacer(), widget.Battery( format="{char}  {percent:2.0%}", low_percentage=0.25, @@ -117,51 +100,109 @@ screens = [ unknown_char="?", update_interval=1, ), - widget.WidgetBox( - fontsize=22, - text_closed="󱤟", - text_open="󱤠 ", - widgets=[ - widget.Memory(format=" {MemPercent}%"), - widget.CPU(format=" {load_percent}%"), - ], - ), - widget.Spacer(length=2), - widget.Systray( - icon_size=21, - ), - widget.Spacer(length=6), - widget.Clock(mouse_callbacks={"Button1": lazy.function(calendar)}), - widget.Spacer(length=2), - widget.TextBox( - fontsize=20, - text=" ", - mouse_callbacks={"Button1": lazy.function(power_menu)}, - ), - # Invisible widgets for popup notifications at value change - widget.BrightnessControl( - mode="popup", - popup_layout=BRIGHTNESS_NOTIFICATION, - device="/sys/class/backlight/intel_backlight", - brightness_path="brightness", - max_brightness_path="max_brightness", - popup_show_args={"relative_to": 8, "y": -70}, - ), - widget.PulseVolumeExtra( - mode="popup", - fmt="", - popup_layout=VOL_POPUP, - popup_hide_timeout=3, - popup_show_args={"relative_to": 8, "y": -70}, - ), + widget.Systray(), ], + size=34, + opacity=1, background=gruvbox_dark["bg0_hard"], - opacity=0.75, - size=32, margin=[3, 3, 0, 3], ), ), ] +bar.Bar +# screens = [ +# Screen( +# top=bar.Bar( +# [ +# widget.TextBox( +# text="", +# fontsize=24, # PopUp-Toolkit? +# foreground=gruvbox_dark["blue"], +# mouse_callbacks={"Button1": lazy.function(start_menu)}, +# ), +# widget.GroupBox2( +# padding=5, +# fontsize=22, +# font="Open Sans", +# center_aligned=True, +# visible_groups=["1", "2", "3", "4", "5", "6", "7"], # , '8', '9' +# hide_unused=True, +# rules=get_groupbox_rules(monitor_specific=False), +# ), +# widget.Spacer(length=20), +# widget.Mpris2( +# name="mpris2", +# width=350, +# scroll=True, +# scroll_clear=True, +# foreground=gruvbox_dark["fg1"], +# format="{xesam:title} - {xesam:artist}", +# paused_text="{track} ", +# popup_layout=MPRIS2_LAYOUT, +# poll_interval=15, +# popup_show_args={"relative_to": 2, "relative_to_bar": True, "y": 3}, +# mouse_callbacks={"Button1": lazy.widget["mpris2"].toggle_player()}, +# ), +# widget.Spacer(), +# widget.Battery( +# format="{char}  {percent:2.0%}", +# low_percentage=0.25, +# low_foreground=gruvbox_dark["red"], +# charging_foreground=gruvbox_dark["green"], +# charge_char="", +# discharge_char="", +# empty_char="!", +# full_char="", +# not_charging_char="", +# unknown_char="?", +# update_interval=1, +# ), +# widget.WidgetBox( +# fontsize=22, +# text_closed="󱤟", +# text_open="󱤠 ", +# widgets=[ +# widget.Memory(format=" {MemPercent}%"), +# widget.CPU(format=" {load_percent}%"), +# ], +# ), +# widget.Spacer(length=2), +# widget.Systray( +# icon_size=21, +# ), +# widget.Spacer(length=6), +# widget.Clock(mouse_callbacks={"Button1": lazy.function(calendar)}), +# widget.Spacer(length=2), +# widget.TextBox( +# fontsize=20, +# text=" ", +# mouse_callbacks={"Button1": lazy.function(power_menu)}, +# ), +# # Invisible widgets for popup notifications at value change +# widget.BrightnessControl( +# mode="popup", +# popup_layout=BRIGHTNESS_NOTIFICATION, +# device="/sys/class/backlight/intel_backlight", +# brightness_path="brightness", +# max_brightness_path="max_brightness", +# popup_show_args={"relative_to": 8, "y": -70}, +# ), +# widget.PulseVolumeExtra( +# mode="popup", +# fmt="", +# popup_layout=VOL_POPUP, +# popup_hide_timeout=3, +# popup_show_args={"relative_to": 8, "y": -70}, +# ), +# ], +# background=gruvbox_dark["bg0_hard"], +# opacity=0.75, +# size=32, +# margin=[3, 3, 0, 3], +# ), +# ), +# ] + notifier = Notifier( x=835, @@ -188,4 +229,3 @@ notifier = Notifier( actions=True, # wrap=True ) -