From d55248989fe4aa8b7c6f5d06ac8a89b66ba3aba8 Mon Sep 17 00:00:00 2001 From: kj-sh604 Date: Tue, 10 Jun 2025 13:32:36 -0400 Subject: refactor: multiple changes (see description) * add LICENSEs where necesary * remove *pkg scripts from repo see: https://github.com/kj-sh604/gitpkg * rename .local/src python directories * update .local/bin scripts in relation to above --- .local/src/python-playerctl_systray/Makefile | 4 - .../python-playerctl_systray/playerctl_systray.py | 123 --------------------- 2 files changed, 127 deletions(-) delete mode 100644 .local/src/python-playerctl_systray/Makefile delete mode 100644 .local/src/python-playerctl_systray/playerctl_systray.py (limited to '.local/src/python-playerctl_systray') diff --git a/.local/src/python-playerctl_systray/Makefile b/.local/src/python-playerctl_systray/Makefile deleted file mode 100644 index a0ab881..0000000 --- a/.local/src/python-playerctl_systray/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -compile: - cython3 --embed -o playerctl_systray.c -X language_level=3 playerctl_systray.py - PYTHON_VERSION=`ls --sort version /usr/include | grep -o 'python[3-9]\+\.[0-9]\+' | tail -1` ; \ - gcc -march=native -O2 -pipe -fno-plt -I /usr/include/$$PYTHON_VERSION -o playerctl_systray playerctl_systray.c -l$$PYTHON_VERSION -lpthread -lm -lutil -ldl `pkg-config --cflags --libs gtk+-3.0 appindicator3-0.1 dbus-1 dbus-glib-1` diff --git a/.local/src/python-playerctl_systray/playerctl_systray.py b/.local/src/python-playerctl_systray/playerctl_systray.py deleted file mode 100644 index 79a4c0c..0000000 --- a/.local/src/python-playerctl_systray/playerctl_systray.py +++ /dev/null @@ -1,123 +0,0 @@ -import gi -import subprocess - -gi.require_version('Gtk', '3.0') -gi.require_version('AppIndicator3', '0.1') -gi.require_version('GLib', '2.0') -from gi.repository import Gtk, AppIndicator3, GLib - -class playerctl_systray: - def __init__(self): - self.last_instances = self.get_player_instances() - self.indicator = AppIndicator3.Indicator.new( - "media-control-app", - "audio-x-generic", - AppIndicator3.IndicatorCategory.APPLICATION_STATUS - ) - self.indicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE) - self.indicator.set_menu(self.create_menu()) - - def create_menu(self): - menu = Gtk.Menu() - - instances = self.get_player_instances() - if instances: - for instance in instances: - instance_submenu = Gtk.Menu() - - play_item = Gtk.MenuItem(label="play-pause") - play_item.connect("activate", self.play_pause, instance) - instance_submenu.append(play_item) - - next_item = Gtk.MenuItem(label="next") - next_item.connect("activate", self.next_track, instance) - instance_submenu.append(next_item) - - prev_item = Gtk.MenuItem(label="previous") - prev_item.connect("activate", self.prev_track, instance) - instance_submenu.append(prev_item) - - instance_menu_item = Gtk.MenuItem(label=instance) - instance_menu_item.set_submenu(instance_submenu) - menu.append(instance_menu_item) - - a_submenu = Gtk.Menu() - - a_pause_item = Gtk.MenuItem(label="pause") - a_pause_item.connect("activate", self.a_pause) - a_submenu.append(a_pause_item) - - a_play_item = Gtk.MenuItem(label="play") - a_play_item.connect("activate", self.a_play) - a_submenu.append(a_play_item) - - a_next_item = Gtk.MenuItem(label="next") - a_next_item.connect("activate", self.a_next_track) - a_submenu.append(a_next_item) - - a_prev_item = Gtk.MenuItem(label="previous") - a_prev_item.connect("activate", self.a_prev_track) - a_submenu.append(a_prev_item) - - a_menu_item = Gtk.MenuItem(label="-a") - a_menu_item.set_submenu(a_submenu) - menu.append(a_menu_item) - else: - no_players_item = Gtk.MenuItem(label="no players found") - no_players_item.set_sensitive(False) # greyed out - menu.append(no_players_item) - - menu.append(Gtk.SeparatorMenuItem()) # separator - - quit_item = Gtk.MenuItem(label="quit") - quit_item.connect("activate", self.quit) - menu.append(quit_item) - - menu.show_all() - return menu - - def get_player_instances(self): - result = subprocess.run("playerctl -l", shell=True, capture_output=True, text=True) - return result.stdout.strip().split('\n') if result.stdout.strip() else [] - - def play_pause(self, _, instance): - self.run_command(f"playerctl -p {instance} play-pause") - - def next_track(self, _, instance): - self.run_command(f"playerctl -p {instance} next") - - def prev_track(self, _, instance): - self.run_command(f"playerctl -p {instance} previous") - - def a_play(self, _): - self.run_command("playerctl -a play") - - def a_pause(self, _): - self.run_command("playerctl -a pause") - - def a_next_track(self, _): - self.run_command("playerctl -a next") - - def a_prev_track(self, _): - self.run_command("playerctl -a previous") - - def run_command(self, command): - subprocess.run(command, shell=True) - - def quit(self, _): - Gtk.main_quit() - - def refresh_menu(self): - current_instances = self.get_player_instances() - if current_instances != self.last_instances: - self.indicator.set_menu(self.create_menu()) - self.last_instances = current_instances - return True # returns True so that timeout continues - -def main(): - app = playerctl_systray() - GLib.timeout_add(1024, app.refresh_menu) # probably should be event-based in the future - Gtk.main() - -if __name__ == "__main__": - main() -- cgit v1.2.3