diff --git a/src/core/containers/sink_input_list.py b/src/core/containers/sink_input_list.py index 2f9b70b..46c5ee6 100644 --- a/src/core/containers/sink_input_list.py +++ b/src/core/containers/sink_input_list.py @@ -26,6 +26,9 @@ class SinkInputList(Gtk.ScrolledWindow): def _setup_styling(self): + ctx = self.get_style_context() + ctx.add_class("sink-list-container") + self.set_vexpand(True) self.set_overlay_scrolling(False) self.set_margin_top(20) @@ -40,8 +43,8 @@ class SinkInputList(Gtk.ScrolledWindow): event_system.subscribe("handle_cng_sync_input", self._handle_cng_sync_input) def _load_widgets(self): - viewport = Gtk.Viewport() - box = Gtk.Box() + viewport = Gtk.Viewport() + box = Gtk.Box() self._box = box self._vadjust = self.get_vadjustment() diff --git a/src/core/widgets/audio_sink.py b/src/core/widgets/audio_sink.py index c71440f..a0f944f 100644 --- a/src/core/widgets/audio_sink.py +++ b/src/core/widgets/audio_sink.py @@ -15,13 +15,13 @@ class AudioSink(Gtk.Box): def __init__(self, pulse, sink): super(AudioSink, self).__init__() - self._scale = None - self._mute_btn = None - self.pulse = pulse - self.sink = sink - self.min_range = 0 - self.max_range = 150 - self.muted = False + self._scale = None + self._mute_btn = None + self.pulse = pulse + self.sink = sink + self.min_range = 0 + self.max_range = 150 + self.muted = False self.block_update = False self._setup_styling() @@ -35,17 +35,19 @@ class AudioSink(Gtk.Box): self.set_orientation(Gtk.Orientation.VERTICAL) self.set_margin_top(10) self.set_margin_bottom(10) + self.set_margin_left(10) + self.set_margin_right(10) def _setup_signals(self): ... def _load_widgets(self): current_lvl = self.sink.volume.values[0] * 100 - box = Gtk.Box() - label = Gtk.Label() - scale = Gtk.Scale.new_with_range(Gtk.Orientation.HORIZONTAL, self.min_range, self.max_range, 1) - mute_btn = Gtk.Button() - self.muted = False if self.sink.mute == 0 else True + box = Gtk.Box() + label = Gtk.Label() + scale = Gtk.Scale.new_with_range(Gtk.Orientation.HORIZONTAL, self.min_range, self.max_range, 1) + mute_btn = Gtk.Button() + self.muted = False if self.sink.mute == 0 else True # logger.debug(f"{self.sink.proplist}") try: @@ -55,7 +57,7 @@ class AudioSink(Gtk.Box): label.set_text(name) label.set_xalign(0.0) - scale.add_mark(0.0, Gtk.PositionType.BOTTOM, "Silence") + scale.add_mark(0.0, Gtk.PositionType.BOTTOM, "Silence") scale.add_mark(50.0, Gtk.PositionType.BOTTOM, "50%") scale.add_mark(100.0, Gtk.PositionType.BOTTOM, "100%") scale.set_value(current_lvl) @@ -77,10 +79,8 @@ class AudioSink(Gtk.Box): box.add(mute_btn) self.add(box) - def set_volume(self, range): - if self.block_update: - return + if self.block_update: return value = range.get_value() / 100 sink_vol_info = self.sink.volume @@ -90,7 +90,10 @@ class AudioSink(Gtk.Box): new_level.append(value) sink_vol_info.values = new_level - self.pulse.sink_input_volume_set(self.sink.index, sink_vol_info) + try: + self.pulse.sink_input_volume_set(self.sink.index, sink_vol_info) + except Exception as e: + self.pulse.sink_volume_set(self.sink.index, sink_vol_info) def toggle_mute(self, widget = None, eve = None): self.muted = not self.muted @@ -98,10 +101,7 @@ class AudioSink(Gtk.Box): self.pulse.sink_input_mute(self.sink.index, mute=self.muted) def set_mute_image(self, mute_btn): - if self.muted: - mute_btn.set_image( Gtk.Image.new_from_icon_name("gtk-disconnect", 3) ) - else: - mute_btn.set_image( Gtk.Image.new_from_icon_name("gtk-connect", 3) ) + mute_btn.set_image( Gtk.Image.new_from_icon_name( "gtk-disconnect" if self.muted else "gtk-connect" , 3) ) def do_update(self): self.block_update = True diff --git a/user_config/usr/share/pulstar/stylesheet.css b/user_config/usr/share/pulstar/stylesheet.css index c0383f6..a9e501f 100644 --- a/user_config/usr/share/pulstar/stylesheet.css +++ b/user_config/usr/share/pulstar/stylesheet.css @@ -1,86 +1,13 @@ -/* Set fm to have transparent window */ -box, -iconview, -notebook, -paned, -stack, -scrolledwindow, -treeview.view, -.content-view, -.view { - background: rgba(19, 21, 25, 0.14); - color: rgba(255, 255, 255, 1); -} - -notebook > header > tabs > tab:checked { - /* Neon Blue 00e8ff */ - background-color: rgba(0, 232, 255, 0.2); - /* Dark Bergundy */ - /* background-color: rgba(116, 0, 0, 0.25); */ - - color: rgba(255, 255, 255, 0.8); -} - -#message_view { - font: 16px "Monospace"; -} - -.view:selected, -.view:selected:hover { - box-shadow: inset 0 0 0 9999px rgba(21, 158, 167, 0.34); - color: rgba(255, 255, 255, 0.5); -} - -.alert-border { - border: 2px solid rgba(116, 0, 0, 0.64); -} - -.search-border { - border: 2px solid rgba(136, 204, 39, 1); -} - -.notebook-selected-focus { - /* Neon Blue 00e8ff border */ - border: 2px solid rgba(0, 232, 255, 0.34); - /* Dark Bergundy */ - /* border: 2px solid rgba(116, 0, 0, 0.64); */ -} - -.notebook-unselected-focus { - /* Neon Blue 00e8ff border */ - /* border: 2px solid rgba(0, 232, 255, 0.25); */ - /* Dark Bergundy */ - /* border: 2px solid rgba(116, 0, 0, 0.64); */ - /* Snow White */ - border: 2px solid rgba(255, 255, 255, 0.24); -} - - - - - /* * { background: rgba(0, 0, 0, 0.14); color: rgba(255, 255, 255, 1); } */ -/* * selection { - background-color: rgba(116, 0, 0, 0.65); - color: rgba(255, 255, 255, 0.5); -} */ - -/* Rubberband coloring */ -/* .rubberband, -rubberband, -flowbox rubberband, -treeview.view rubberband, -.content-view rubberband, -.content-view .rubberband, -XfdesktopIconView.view .rubberband { - border: 1px solid #6c6c6c; - background-color: rgba(21, 158, 167, 0.57); +.sink-list-container { + /* Neon Blue 00e8ff border */ + /* border: 2px solid rgba(0, 232, 255, 0.25); */ + /* Dark Bergundy */ + /* border: 2px solid rgba(116, 0, 0, 0.64); */ + /* Snow White */ + border: 2px solid rgba(255, 255, 255, 0.34); } - -XfdesktopIconView.view:active { - background-color: rgba(172, 102, 21, 1); -} */