From 71216bedd9b3dd3b7c48289088f9819c2f5b5fef Mon Sep 17 00:00:00 2001 From: Celestia Ludenberg Date: Sat, 20 Jun 2026 20:47:58 +0200 Subject: [PATCH] feat: add mute button with sad dialog Mute button in headerbar kills mpv process and shows :( dialog. Button becomes disabled and shows muted speaker icon after use. --- src/antergos_welcome.py | 39 ++++++++++++++++++++++++++++++++++++--- ui/antergos-welcome.glade | 13 +++++++++++++ 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/antergos_welcome.py b/src/antergos_welcome.py index 7ec8136..e6b41e9 100755 --- a/src/antergos_welcome.py +++ b/src/antergos_welcome.py @@ -241,17 +241,50 @@ class Hello(Gtk.Window): self.window.show() self.play_welcome_song() + self.setup_mute_button() def play_welcome_song(self): song = "/usr/share/cnchi-memes/its-raining-tacos.opus" + self.mpv_process = None if os.path.isfile(song): try: - subprocess.Popen(["mpv", "--really-quiet", "--volume=55", song], - stdout=subprocess.DEVNULL, - stderr=subprocess.DEVNULL) + self.mpv_process = subprocess.Popen( + ["mpv", "--really-quiet", "--volume=55", song], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL) except FileNotFoundError: pass + def setup_mute_button(self): + mute_btn = self.builder.get_object("mute") + icon = Gtk.Image.new_from_icon_name("audio-volume-high", Gtk.IconSize.BUTTON) + mute_btn.set_image(icon) + + def on_mute_clicked(self, btn): + if self.mpv_process and self.mpv_process.poll() is None: + self.mpv_process.terminate() + try: + self.mpv_process.wait(timeout=3) + except subprocess.TimeoutExpired: + self.mpv_process.kill() + + btn.set_sensitive(False) + icon = Gtk.Image.new_from_icon_name("audio-volume-muted", Gtk.IconSize.BUTTON) + btn.set_image(icon) + + dialog = Gtk.MessageDialog( + transient_for=self.window, + flags=0, + message_type=Gtk.MessageType.INFO, + buttons=Gtk.ButtonsType.OK, + text=":(", + ) + dialog.format_secondary_text( + "You muted the welcome song...\n\nThe program is sad now." + ) + dialog.run() + dialog.destroy() + def get_best_locale(self): """Choose locale, based on user's preferences. :return: locale to use diff --git a/ui/antergos-welcome.glade b/ui/antergos-welcome.glade index 378db38..f295a0b 100644 --- a/ui/antergos-welcome.glade +++ b/ui/antergos-welcome.glade @@ -585,6 +585,19 @@ We, the Antergos NeXT Developers, hope that you will enjoy using Antergos NeXT a False Antergos NeXT Hello True + + + mute + True + False + True + Mute welcome song + + + + end + + about