Θέλω να μοιραστώ μαζί σας μια μικρή εφαρμογή που έφτιαξα για να λύσω ένα δικό μου καθημερινό θέμα: ήθελα έναν απλό, ελαφρύ ραδιοφωνικό player που να ζει διακριτικά στο system tray, χωρίς περιττά παράθυρα και βαριά interfaces.
Στην ουσία είναι ένας minimal, GTK3 ραδιοφωνικός player γεννημένος από ανάγκη (και λίγο refactoring).

Η ιστορία πίσω από το project
Η όλη φάση ξεκίνησε ξεθάβοντας τον ξεχασμένο κώδικα μιας παλιάς εφαρμογής που κυκλοφορούσε κάποτε για Ubuntu, παράλληλα με το script του Sheldio από όπου τσίμπησα και την αρχική λίστα των σταθμών. Έχοντας κάποιες βασικές γνώσεις Python, αποφάσισα να τα μπλέξω όλα μαζί. Η πρώτη απόπειρα ήταν τόσο πρόχειρη και κακογραμμένη, που αν την έβλεπε, ο Guido van Rossum (ο πατέρας της Python) θα μου αφαιρούσε διασταυρωμένα το δικαίωμα να αγγίζω πληκτρολόγιο.
Μετά από αρκετές ώρες refactoring, συμμάζεμα και διορθώσεις, το πράγμα έστρωσε και μετατράπηκε στο εργαλείο που χρησιμοποιώ πλέον καθημερινά: το Tray-FM.
Τι είναι;
Πρόκειται για ένα Python script χτισμένο με GTK3, AyatanaAppIndicator3 και mpv. Ολόκληρος ο χειρισμός των σταθμών, της έντασης και των ρυθμίσεων γίνεται απευθείας από το μενού στο tray.
Βασικά Χαρακτηριστικά:
🎵 Οργάνωση σε Κατηγορίες: Οι σταθμοί οργανώνονται σε Music, News και Sports submenus (κάτω από ένα ενιαίο "📻 Σταθμοί"), με δυνατότητα προσθήκης δικών σου custom κατηγοριών.
⭐ Αγαπημένα: Γρήγορη πρόσβαση στους σταθμούς που χρησιμοποιείς περισσότερο.
🔍 Live Αναζήτηση: Βρίσκεις αμέσως τον σταθμό που ψάχνεις με φιλτράρισμα την ώρα που πληκτρολογείς.
🔊 Έλεγχος Έντασης & Mute: Διαχείριση μέσω mpv IPC socket, ώστε η αυξομείωση ή η σίγαση να γίνονται ακαριαία χωρίς να διακόπτεται το stream.
➕✏️🗑️ Διαχείριση Σταθμών: Προσθήκη, επεξεργασία ή διαγραφή σταθμών απευθείας από το ίδιο το μενού.
📥 Εισαγωγή & Sync: Υποστήριξη εισαγωγής playlists μορφής M3U/M3U8, καθώς και ενημέρωση της λίστας σταθμών απευθείας από το repository.
⏰ Sleep Timer & Ειδοποιήσεις: Χρονοδιακόπτης (15/30/45/60/90 λεπτά) και ειδοποιήσεις συστήματος (notify-send) για την αναπαραγωγή, τα σφάλματα stream ή τον χρονοδιακόπτη.
⚡ Δυναμικό Μενού: Καμία ανάγκη για restart της εφαρμογής μετά από οποιαδήποτε αλλαγή στους σταθμούς.
Δοκιμασμένο σε Cinnamon, Mate, KDE, XFCE όπου δουλεύει άψογα.
Την παρούσα στιγμή διαθέσιμη είναι η έκδοση 2.3.0 και σύντομα επίκειται νέα αναβαθμισμένη έκδοση.
Στα to-do είναι η μετάβαση σε Gstreamer αντί του mpv και μια έκδοση για Windows (μου την ζήτησε το κορίτσι που την θέλει για τον υπολογιστή της δουλειάς της και χατήρι δεν της χαλάω).
Το κατεβάζετε από το Github, αποσυμπιέζετε, κάνετε εκτελέσιμο το .py αρχείο, το μετακινείτε όπου θέλετε και το τρέχετε.
Αν θέλετε, στα γρήγορα, να το κατεβάσετε και να τρέξετε μέσω bash:
- Κατεβάζετε το repository:
git clone https://github.com/Constantinos/Tray-FM.git
cd Tray-FM
- Δίνετε δικαιώματα εκτέλεσης και το τρέχετε:
chmod +x trayfm.py
./trayfm.py
Διαθέσιμη και έκδοση AppImage επίσης που έχει τα πάντα μέσα. Το κατεβαζετε, το κάνετε επίσης εκτελέσιμο και το τρέχετε.
GitHub Repository: https://github.com/Constantinos/Tray-FM
To ΑpImage: https://github.com/Constantinos/Tray-FM/releases#release-v2.3.0
Το project είναι open-source, η άδεια χρήσης είναι «πάρτε το και κάντε το ό,τι θέλετε» και οποιαδήποτε ιδέα, δοκιμή σε διαφορετικά desktop environments ή feedback είναι παραπάνω από ευπρόσδεκτα!
Πείτε μου γνώμες αν το δοκιμάσετε.