questa è una semplice e banale guida su come poter interagire rapidamente con Amarok 2 via script e/o lanciatori (volendo anche da terminale perché no).
La necessità si potrebbe avere per motivi di programmazione, se si vuole creare uno script di gestione di amarok 2, o per motivi pratici, se si vuole creare una dock apposita per il player senza bisogno di scomodarsi ad aprire la finestra.
Ecco un esempio:

Il primo pulsante che si vede serve ad aprire / chiudere amarok, se chiuso / aperto.
E' uno script, che metterete dove più vi aggrada, supponiamo in /home/user/ e il nome dello script FILE.SH, per avviare lo script via lanciatore scegliamo come comando:
- Codice: Seleziona tutto
bash /home/user/FILE.SH
Il contenuto dello script è il seguente:
- Codice: Seleziona tutto
#!/bin/bash
if [ "$(ps axsf | grep "amarok" | grep -v "grep" | grep -v "$HOME")" ]; then # Amarok è in esecuzione
qdbus org.kde.amarok /amarok/MainWindow com.trolltech.Qt.QWidget.close # Segnale di chiusura
else # Amarok non è in esecuzione
amarok # Avvio
fi
Il primo comando elenca i processi attivi e cerca se è presente un processo di nome amarok ( gli ultimi due grep servono ad eliminare dall'elenco l'esecuzione del comando di ricerca stesso, che viene riconosciuto come processo di amarok, e l'eventuale gnome multimedia keys, anch'esso di intralcio)
Il segnale di chiusura utilizza una "funzione" di amarok, molto meglio che una chiusura selvaggia con "killall amarok".
Volendo è possibile modificare quello script perché mostri/nasconda amarok, con qualche accorgimento del tipo salvare lo stato corrente in un file temporaneo o simili.
I comandi per mostrare, nascondere l'interfaccia sono:
- Codice: Seleziona tutto
qdbus org.kde.amarok /amarok/MainWindow com.trolltech.Qt.QWidget.hide # Nascondi
qdbus org.kde.amarok /amarok/MainWindow com.trolltech.Qt.QWidget.show # Mostra
Volendo sono possibili altri controlli sulla finestra principale, basta scrivere su un terminale:
- Codice: Seleziona tutto
qdbus org.kde.amarok /amarok/MainWindow
Passiamo ora alla parte della riproduzione, che può interessare maggiormente chi volesse creare uno script o una dock:
Il codice da mettere prima di questi "spezzoni" è:
- Codice: Seleziona tutto
qdbus org.kde.amarok /Player
- Codice: Seleziona tutto
org.freedesktop.MediaPlayer.Backward N # Fa tornare indietro la canzone di N millisecondi (N = 1000 => 1 secondo)
org.freedesktop.MediaPlayer.Forward N # Fa andare avanti la canzone di N millisecondi
org.freedesktop.MediaPlayer.GetMetadata # Restituisce le informazioni sulla traccia in riproduzione
L'ultimo comando genera un output del genere:
- Codice: Seleziona tutto
album: Album
artist: Artista
arturl: Url dell'artista
audio-bitrate: Bitrate
audio-samplerate: Samplerate
comment: Commenti
genre: Genere
location: file:///percorso/Canzone.mp3
mtime: Durata in millisecondi
rating: Valutazione (un intero)
time: Durata in secondi
title: Titolo
tracknumber: Numero della traccia
year: 2001
Altri controlli:
- Codice: Seleziona tutto
org.freedesktop.MediaPlayer.Mute # Muto
org.freedesktop.MediaPlayer.Next # Traccia successiva
org.freedesktop.MediaPlayer.Pause # Pausa
org.freedesktop.MediaPlayer.Play # Riproduci
org.freedesktop.MediaPlayer.PlayPause # Riproduci se in pausa e pausa se in riproduzione
org.freedesktop.MediaPlayer.PositionGet # Tempo attuale in ascolto (in millisecondi)
org.freedesktop.MediaPlayer.PositionSet # Imposta il tempo a cui si vuole saltare (in millisecondi)
org.freedesktop.MediaPlayer.Prev # Traccia precedente
org.freedesktop.MediaPlayer.Repeat # Ripeti
org.freedesktop.MediaPlayer.ShowOSD # Mostra l'OSD con le informazioni sulla traccia corrente
org.freedesktop.MediaPlayer.Stop # Ferma la riproduzione
org.freedesktop.MediaPlayer.StopAfterCurrent # Ferma la riproduzione dopo la fine della traccia corrente
org.freedesktop.MediaPlayer.VolumeDown N # Abbassa il volume di N unità (accetta interi e il valore di N va da 0 a 100)
org.freedesktop.MediaPlayer.VolumeGet # Leggi il valore del volume attuale (0 - 100)
org.freedesktop.MediaPlayer.VolumeSet N # Imposta il valore del volume desiderato (N da 0 a 100)
org.freedesktop.MediaPlayer.VolumeUp N # Alza il volume di N unità
Enjoy

come deve essere strutturato lo script per avere tutte quelle funzioni dell'immagine che hai messo? ovvere come devo inserire tutti quei "codici"? scusami, sono proprio ignorante in materia!!
senza di te non ci sarei mai arrivato
ciao ciao
