From 53a676529927043e70b5b697e70d98c464e3f72b Mon Sep 17 00:00:00 2001 From: paix64 Date: Fri, 6 Jun 2025 01:20:38 +0300 Subject: [PATCH 1/3] Notch player overlay mode --- modules/player.py | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/modules/player.py b/modules/player.py index 995f4e47..f5ad7865 100644 --- a/modules/player.py +++ b/modules/player.py @@ -489,7 +489,7 @@ def __init__(self): self._show_artist = False self._display_options = ["cavalcade", "title", "artist"] self._display_index = 0 - self._current_display = "cavalcade" + self._current_display = "overlay" self.mpris_icon = Button( name="compact-mpris-icon", @@ -528,18 +528,29 @@ def __init__(self): self.cavalcade = SpectrumRender() self.cavalcade_box = self.cavalcade.get_spectrum_box() - self.center_stack = Stack( - name="compact-mpris", - transition_type="crossfade", - transition_duration=100, - v_align="center", - v_expand=False, - children=[ - self.cavalcade_box, - self.mpris_label, - ] - ) - self.center_stack.set_visible_child(self.cavalcade_box) + if self._current_display != "overlay": + self.center_stack = Stack( + name="compact-mpris", + transition_type="crossfade", + transition_duration=100, + v_align="center", + v_expand=False, + children=[ + self.cavalcade_box, + self.mpris_label, + ], + ) + self.center_stack.set_visible_child(self.cavalcade_box) + self.center = self.center_stack + else: + self.center_overlay = Gtk.Overlay() + self.center_overlay.set_halign(Gtk.Align.CENTER) + self.center_overlay.set_valign(Gtk.Align.CENTER) + + self.center_overlay.add(self.cavalcade_box) # background + self.center_overlay.add_overlay(self.mpris_label) # foreground + self.cavalcade_box.set_style("opacity: 0.6") # change opacity of the box + self.center = self.center_overlay self.mpris_small = CenterBox( name="compact-mpris", @@ -549,7 +560,7 @@ def __init__(self): v_align="center", v_expand=False, start_children=self.mpris_icon, - center_children=self.center_stack, + center_children=self.center, end_children=self.mpris_button, ) @@ -599,6 +610,9 @@ def _apply_mpris_properties(self): text = (mp.artist if mp.artist else "Nothing Playing") self.mpris_label.set_text(text) self.center_stack.set_visible_child(self.mpris_label) + elif self._current_display == "overlay": + text = (mp.title if mp.title and mp.title.strip() else "Nothing Playing") + self.mpris_label.set_text(text) else: self.center_stack.set_visible_child(self.cavalcade_box) From 076335e845f8ed732465fbf93f9f1ec30583821b Mon Sep 17 00:00:00 2001 From: paix64 Date: Fri, 6 Jun 2025 01:27:18 +0300 Subject: [PATCH 2/3] add overlay to display options --- modules/player.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/player.py b/modules/player.py index f5ad7865..b4df8747 100644 --- a/modules/player.py +++ b/modules/player.py @@ -487,7 +487,7 @@ class PlayerSmall(CenterBox): def __init__(self): super().__init__(name="player-small", orientation="h", h_align="fill", v_align="center") self._show_artist = False - self._display_options = ["cavalcade", "title", "artist"] + self._display_options = ["cavalcade", "title", "artist", "overlay"] self._display_index = 0 self._current_display = "overlay" From cb8d5a86d2777fc3ce3da3ec9f591960dc09692c Mon Sep 17 00:00:00 2001 From: paix64 Date: Fri, 6 Jun 2025 10:28:26 +0300 Subject: [PATCH 3/3] fix error when no mpris player --- modules/player.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/player.py b/modules/player.py index b4df8747..36272fb4 100644 --- a/modules/player.py +++ b/modules/player.py @@ -589,6 +589,8 @@ def _apply_mpris_properties(self): self.mpris_label.set_text("Nothing Playing") self.mpris_button.get_child().set_markup(icons.stop) self.mpris_icon.get_child().set_markup(icons.disc) + if self._current_display == "overlay": + return if self._current_display != "cavalcade": self.center_stack.set_visible_child(self.mpris_label) else: