Tak jedna miniaplikace pro MX LINUX (nebo i jiné linuxy a vůbec)

Píšu to, než to celé zapomenu a začnu odzadu.

Vytvoření a spuštění skriptu, který spouští vlastní program - něco jako zástupce na ploše ve voknech (to je to poslední co se udělá)

  • Vytvoření souboru - třeba na ploše s názvem script.sh v programu KATE (sh je něco jako exe pro linux)
  • Na první řádek toho souborunapsání příkazu 
  • #!/bin/python3 /home/pavel/programy/radio/main.py
  • s cestou, kde se ten program v krajtě nachází
  • spuštění pod Plasmou - to je desktop systém v MX, jeden z mnoha

Tak a teď vlastní skript v Pythonu (primitivní bez nějakých kudrlinek), napsáno v Kate (nebo Thonny nebo Visual Studio,...)

#!/usr/bin/env/ python3
import tkinter as tk
from tkinter import ttk
import vlc

stanice = ["Country", "Sever", "Blaník","Oldies","Hity70"]
staniceurl=['http://icecast2.play.cz:8000/country128aac',
            "https://rozhlas.stream/sever_mp3_128.mp3",
            "https://playerservices.streamtheworld.com/api/livestream-redirect/RADIO_BLANIK_128.mp3",
            "http://ice.abradio.cz/oldiesradio128.mp3",
            "https://playerservices.streamtheworld.com/api/livestream-redirect/HITRADIO_CITY_PRAHA_128.mp3"
            ]
url = staniceurl[0]

#define VLC instance
instance = vlc.Instance()
#Define VLC player
player=instance.media_player_new()
#Define VLC media
media=instance.media_new(url)
#Set player media
player.set_media(media)
# setting volume
player.audio_set_volume(90)

root = tk.Tk()
root.title('PYTHON RADIO')

window_width = 300
window_height = 300

# get the screen dimension
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()

# find the center point
center_x = int(screen_width/2 - window_width / 2)
center_y = int(screen_height/2 - window_height / 2)

# set the position of the window to the center of the screen
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')
root.resizable(False, False)

# grid 5x2
root.rowconfigure(0, weight=1)
root.rowconfigure(1, weight=1)
root.rowconfigure(2, weight=1)
root.rowconfigure(3, weight=1)
root.rowconfigure(4, weight=1)
root.rowconfigure(5, weight=1)
root.columnconfigure(0, weight= 3)
root.columnconfigure(1, weight=1)

   
def nahr(s):
    url = staniceurl[s]    
    #Define VLC media
    media=instance.media_new(url)
    #Set player media
    player.set_media(media)    
    #Play the media
    player.play()
    #showinfo(title='Information',message=url)
    label.config(text=stanice[s])
    
    
def myfunc1():
    nahr(0)
def myfunc2():
    nahr(1)
def myfunc3():
    nahr(2)
def myfunc4():
    nahr(3)
def myfunc5():
    nahr(4)

def zobraz_hodnotu(val):   
    labelp.configure(text=val)
    player.audio_set_volume(int(val))
    
# Vytvoření posuvníku (Scale)
posuvnik = tk.Scale(
    root, 
    from_=100,  # Minimální hodnota
    to=0,   # Maximální hodnota
    orient="vertical",  # Orientace posuvníku
    resolution=1,
    command=zobraz_hodnotu  # Funkce volaná při změně hodnoty
)

posuvnik.grid(column=1, row=1, rowspan=5, sticky=tk.EW, padx=1, pady=1)
labelp = ttk.Label(root, text="90", font=("Arial", 8))
labelp.grid(column=1, row=0, sticky=tk.EW, padx=1, pady=1)
#label

label = ttk.Label(root, text="VLC Player", font=("Arial", 12))
label.grid(column=0, row=0, sticky=tk.EW, padx=5, pady=1)
# button
prvni_button = ttk.Button(root,text=stanice[0],command=myfunc1)
prvni_button.grid(column=0, row=1, sticky=tk.EW, padx=5, pady=0)

druhy_button = ttk.Button(root,text=stanice[1],command=myfunc2)
druhy_button.grid(column=0, row=2, sticky=tk.EW, padx=5, pady=1)

treti_button = ttk.Button(root,text=stanice[2],command=myfunc3)
treti_button.grid(column=0, row=3, sticky=tk.EW, padx=5, pady=1)

ctvrty_button = ttk.Button(root,text=stanice[3],command=myfunc4)
ctvrty_button.grid(column=0, row=4, sticky=tk.EW, padx=5, pady=1)

paty_button = ttk.Button(root,text=stanice[4],command=myfunc5)
paty_button.grid(column=0, row=5, sticky=tk.EW, padx=5, pady=1)

root.mainloop()
player.stop()

Soubor musíme označit jako spustitelný - Vlastnosti spouboru, záložka Oprávnění , zaškrtnout Je spustitelný

 

a tady máme výsledek