Der YAD-Praxis-Thread

German Forum

Moderator: karlchen

Post Reply
User avatar
secureIT
Level 3
Level 3
Posts: 177
Joined: Wed Dec 05, 2018 1:26 pm

Der YAD-Praxis-Thread

Post by secureIT » Sat Jun 22, 2019 3:55 pm

Um was es geht :

Quelle: https://wiki.ubuntuusers.de/yad/
Zitat:
(Yet Another Dialog) ermöglicht das Erzeugen grafischer Dialoge aus Shell-Skripten oder auf der Kommandozeile. Es handelt sich um eine Abspaltung (Fork) von Zenity, die einige Verbesserungen enthält. So kennt YAD nicht nur mehr, sondern auch komplexere Dialoge. Die Syntax von YAD ähnelt der von Zenity sehr.
Zitat-Ende

In diesem Thread geht es darum, an praktischen Beispielen aufzuzeigen, wie vielfältig YAD anwendbar ist.
Zunächst für den geneigten Leser die Infos :
Es gibt verschiedene Quellen, die sich mit der grundsätzlichen Dingen befassen und auch Beispiele erläutern.
Zunächst erst mal das Manual :
https://www.systutorials.com/docs/linux/man/1-yad/

Dann Beispiele:
https://sourceforge.net/p/yad-dialog/wiki/Examples/
https://www.thelinuxrain.com/articles/t ... ons-of-yad
https://www.thelinuxrain.com/articles/m ... y-with-yad

und Foren :
http://murga-linux.com/puppy/viewtopic.php?t=97458
https://forums.bunsenlabs.org/viewtopic.php?id=1978

In diesem Thread möchte ich weitere (auch eigene) Anwendungsbeispiele vorstellen – und ich würde mich freuen, wenn auch andere User aus dem LM-Umfeld ihre eigenen Anwendungsbeispiele zur Verfügung stellen würden – oder auch Links zu nützlichen YAD-Dialogen, die sie im Web gefunden haben. (Ausgenommen natürlich die bekannten Beispiele aus den o.a. Quellen)

Der Thread richtet sich an diejenigen unter Euch, die zumindest die Installation eines Scriptes unter /home/bin/ beherrschen.
Falls nicht : schaut mal in diesen Thread, da habe ich es in den Grundzügen beschrieben:

viewtopic.php?f=64&t=287009
Und los geht’s mit dem eigenen Beispiel Nr.1 im nächsten Post.

In XFCE ausprobiert :
horizontale Yad-Leisten mit wechselnden Anwendungsstartern an beliebigen Bildschirmpositionen

Mittels des nachfolgenden Scriptes ist es möglich an bestimmten Postionen selbst erschaffene Leisten mit Anwendungsstartern ein/auszublenden oder auch verschiedene Leisten, die dann wiederum mit anderen Startern „bestückt“ sind an der gleichen Bildschirmposition zu nutzen
Installieren müsst ihr : yad und wmctrl.

Code: Select all

apt install yad wmctrl
Das Script :

Code: Select all

#!/bin/bash
# zu installieren : yad wmctrl
# Name : fenstermitte01.sh
# Befehl für Starter : bash -c fenstermitte01.sh
        GTK_THEME=Custom-10-Dark yad --form --undecorated --no-buttons --title "fenstermitte01" --geometry=77x26+2472+525 \
       --columns="3" \
       --field="!$HOME/bin/icons-fenstermitte01/fernsehen-3.png! VLC :fbtn" /usr/bin/vlc \
       --field="!$HOME/bin/icons-fenstermitte01/mediathekview.png! Mediathekview :fbtn" ~/MediathekView-13.2.1/MediathekView.sh \
       --field="!$HOME/bin/icons-fenstermitte01/window-close-3.png! exit :fbtn" 'wmctrl -c "fenstermitte01"' \
Das GTK-Theme (GTK_THEME=Custom-10-Dark) müsst Ihr auf Eure vorliegenden Themes umstellen. (Yad benutzt dann zur Darstellung Euer gewähltes Theme.)

In dem Beispielscript sind 2 Starter horizontal angeordnet.
Die eigenen Icons, die ich im Beispiel benutzt habe liegen in /home/bin/icons-fenstermitte01/
… und haben die Dimesion: 24x24 Pixel
Das Beispiel ist ausgelegt auf 2 Starter und ein Icon zum schliessen – also 3 „Kolumnen“
Erweiteren auf die gewünschte Anzahl von Startern durch erhöhen in: --colums=3 auf z.B. --colums =6 um z.B. auch 5 Starter in der Yad-Leiste zu haben.
Die Position auf dem Screen ist bei mir aauf dem zweiten Monitor …. kann man verändern in den „x“ bei --geometry=77x26+xxxx+xxx
Das Script hat bei mir den Namen fenstermitte01.sh
Es wird eingeblendet mit einem externen Starter…..
Kommando :

Code: Select all

bash -c fenstermitte01.sh
geschlossen wird es mittels Klick auf das „x“- Symbol in der Yad-Leiste.

Eine tolle Möglichkeit der Individualisierung von Leisten an gleicher Position -aber mit wechselnden Startern, wenn Ihr mehrere Scripts für die gleiche Position erstellt und diese mit verschiedenen Anwendungen „bestückt“.

Scrot :
Image

und wie das eingebunden bei mir aussieht hier :

viewtopic.php?f=214&t=285572&sid=1cb276 ... 6#p1595678

Vorteil zu den „normalen Panels ist z.B. : kein „Stören“ , wenn sich andere Programmfenster darüber befinden.

Wer dies dann erfolgreich ausprobiert hat, kann auch komplexere Dinge versuchen, die ich als Beispiel dann in einem weiteren Post zur Verfügung stellen werde……..
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

User avatar
secureIT
Level 3
Level 3
Posts: 177
Joined: Wed Dec 05, 2018 1:26 pm

Re: Der YAD-Praxis-Thread

Post by secureIT » Sat Jun 22, 2019 4:43 pm

Hier Beispiel 2 :

XFCE Steuer-Panel für Radiotray-NG auf dem Zusatzmonitor.

Ich betreibe meistens ein Notebook mit Zusatzmonitor und höre bei der Arbeit im Hintergrund Musik via Web-Radio.
Da ich überwiegend auf dem externen Monitor arbeite, wollte ich die Senderauswahl nicht über den Tray auf dem NB (manchmal ist es auch zugeklappt) durchführen, sondern einen direkten Zugriff auf meine Lieblingssender via Panel auf dem Zusatzmonitor einrichten.
Das ist auch mit einer Leiste möglich, die man entsprechend konfiguriert, allerdings war der Wunschort auf dem Screen auch mit anderen Features belegt, so dass eine Lösung her musste, bei der das Panel auf Klick via Starter auf einer bestimmten Bildschirm-Position eingeblendet werden kann.
Dieses Vorhaben wurde dann mit YAD und einem Script umgesetzt.
Es hat folgende Funktionen:
Radiotray-NG starten,beenden,pausieren,Titelanzeige des abgespielten Songs : Anzeige wiederholen, direkte Senderauswahl von 14 Sendern … oder Aufruf eines weiteren YAD-Scriptes zur horizontalen,vergrösserten Auswahl-Anzeige der Sender im oberen Bildschirmbereich und natürlich : beenden des Panels.
Wer Radiotray-NG nutzt, kennt den Radiotray-NG Bookmark-Editor.
Mit diesem kann man seine Lieblingssender verwalten und mit Icons für die Senderauswahl konfigurieren.
Die Sendericons werden aber nicht aus dem Web geladen, sondern aus einem lokalen Ordner auf der Festplatte.
Die Icons habe ich also von den Webseiten der Webradios runtergeladen und mit gimp entsprechend in den Dimensionen angepasst.
Wählt man dann einen Sender aus der Tray-Auswahl , dann wird das Sendericon, der Sendername und der Interpret/Titel via Notification eingeblendet.
Das sollte nun alles auf dem Zusatzmonitor stattfinden.
Radiotray-NG ist mittels dbus-Kommandos steuerbar….. und YAD ist eine prima Anwendung um eigene Anwendungsfenster zu kreieren.

zu installieren :

Code: Select all

apt install yad jq qtchooser
Das kam dabei heraus :

PanelScript

radiotray-ng01.sh

Code: Select all

#!/bin/bash 
# script für ein Steuer-Panel von radiotray-ng mit 14 Sendern und Zoom-Auswahl
# Name: radiotray-ng01.sh
# Speicherort : ~/bin 
# zu installieren : yad wmctrl
# Die Angabe des Themes in GTK_Theme= mit dem eigenen ersetzen (am besten eignet sich ein dark-Theme)
# Die Bildschirmposition ist in --geometry=101x126+xxxx+xxx anpassbar
# Die Icons im Beispiel haben eine Grösse von 24x24
# Der Speicherort der Icons ist(relativ) im Script:$HOME/bin/$HOME/bin/icons-radiotray-ng ... direkter Speicherort: ~/bin/icons-radiotray-ng
# Die Zoom-Funktion wird aufgerufen über ein weiteres Script : senderauswahl.sh
# 
        GTK_THEME=Custom-10-Dark yad --form --undecorated --no-buttons --title "radiotraypanel" --geometry=101x126+1397+527 \
       --columns="4" \
       --field="!$HOME/bin/icons-radiotray-ng/radiotray-ng-on.png! radiotray-ng-on :fbtn" '/usr/bin/radiotray-ng' \
       --field="!$HOME/bin/icons-radiotray-ng/ffh.jpg! HIT-RADIO-FFH :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'HIT-RADIO-FFH'' \
       --field="!$HOME/bin/icons-radiotray-ng/summerfeeling.jpg! FFH-SUMMERFEELING :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-SUMMERFEELING'' \
       --field="!$HOME/bin/icons-radiotray-ng/eurodance.jpg! FFH-EURODANCE :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-EURODANCE'' \
       --field="!$HOME/bin/icons-radiotray-ng/hot40.jpg! PLANET-RADIO-ITUNES-HOT40 :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'PLANET-RADIO' 'PLANET-RADIO-ITUNES-HOT40'' \
       --field="!$HOME/bin/icons-radiotray-ng/radiotray-ng-off.png! radiotray-ng-off :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.quit' \
       --field="!$HOME/bin/icons-radiotray-ng/deutschpur.jpg! FFH-DEUTSCH-PUR :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-DEUTSCH-PUR'' \
       --field="!$HOME/bin/icons-radiotray-ng/workout.jpg! FFH-WORKOUT :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-WORKOUT'' \
       --field="!$HOME/bin/icons-radiotray-ng/soundtrack.jpg! FFH-SOUNDTRACK :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-SOUNDTRACK'' \
       --field="!$HOME/bin/icons-radiotray-ng/theclub.jpg! PLANET-RADIO-THE-CLUB :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'PLANET-RADIO' 'PLANET-RADIO-THE-CLUB'' \
       --field="!$HOME/bin/icons-radiotray-ng/radiotray-off.png! pause :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.stop' \
       --field="!$HOME/bin/icons-radiotray-ng/top40.jpg! FFH-ITUNES-TOP-40 :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-ITUNES-TOP-40'' \
       --field="!$HOME/bin/icons-radiotray-ng/80er.jpg! FFH-DIE-80ER :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-DIE-80ER'' \
       --field="!$HOME/bin/icons-radiotray-ng/party.jpg! FFH-PARTY :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-PARTY'' \
       --field="!$HOME/bin/icons-radiotray-ng/lupe3.png! zoom :fbtn" 'bash -c senderauswahl.sh' \
       --field="!$HOME/bin/icons-radiotray-ng/info.png! titelinfo :fbtn" 'bash -c titelanzeige.sh' \
       --field="!$HOME/bin/icons-radiotray-ng/brandneu.jpg! FFH-BRANDNEU :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-BRANDNEU'' \
       --field="!$HOME/bin/icons-radiotray-ng/just90s.jpg! FFH-JUST-90S :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-JUST-90S'' \
       --field="!$HOME/bin/icons-radiotray-ng/planet.jpg! PLANET-RADIO :fbtn" 'qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'PLANET-RADIO' 'PLANET-RADIO'' \
       --field="!$HOME/bin/icons-radiotray-ng/window-close-3.png! exit-panel :fbtn" 'wmctrl -c "radiotraypanel"' \
Scrot :
Image

Zoom-Funktion:

senderauswahl.sh

Code: Select all

#!/bin/bash
# script zur horizontalen Anzeige von radiotray-ng Senderbuttons zur Senderauswahl
# Name : senderauswahl.sh
# zu installieren : yad jq qtchooser
# Die Angabe des Themes in GTK_Theme= mit dem eigenen ersetzen (am besten eignet sich ein dark-Theme)
# Bildschirmposition festzulegen in xxx bei : 50x50+xxxx+xxx
# Die Icons im Beispiel haben eine Grösse von 50x50
#
GTK_THEME=Custom-10-Dark yad --undecorated --geometry=50x50+1201+46 \
--button=\ "!$HOME/bin/icons-multitrans/window-close-3.png!exit":1 \
--button=\ "!$HOME/bin/webradiopics/ffh1.jpg!Hit-Radio-FFH":2 \
--button=\ "!$HOME/bin/webradiopics/deutschpur1.jpg!FFH-Deusch-pur":3 \
--button=\ "!$HOME/bin/webradiopics/top401.jpg!FFH-itunes-Top-40":4 \
--button=\ "!$HOME/bin/webradiopics/brandneu1.jpg!FFH-Brandneu":5 \
--button=\ "!$HOME/bin/webradiopics/summerfeeling1.jpg!FFH-Summerfeeling":6 \
--button=\ "!$HOME/bin/webradiopics/workout1.jpg!FFH-Workout":7 \
--button=\ "!$HOME/bin/webradiopics/80er1.jpg!FFH-80er":8 \
--button=\ "!$HOME/bin/webradiopics/just90s1.jpg!FFH-just-90s":9 \
--button=\ "!$HOME/bin/webradiopics/eurodance1.jpg!FFH-Eurodance":10 \
--button=\ "!$HOME/bin/webradiopics/soundtrack1.jpg!FFH-Soundtrack":11 \
--button=\ "!$HOME/bin/webradiopics/schlager1.jpg!FFH-Schlagerkult":12 \
--button=\ "!$HOME/bin/webradiopics/rock1.jpg!FFH-Rock":13 \
--button=\ "!$HOME/bin/webradiopics/party1.jpg!FFH-Party":14 \
--button=\ "!$HOME/bin/webradiopics/planet1.jpg!Planet-Radio":15 \
--button=\ "!$HOME/bin/webradiopics/hot401.jpg!PLANET-radio-itunes-hot40":16 \
--button=\ "!$HOME/bin/webradiopics/theclub1.jpg"!Planet-Radio-the-Club:17

sender=$?

[[ $sender -eq 1 ]] && exit 0

if [[ $sender -eq 2 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'HIT-RADIO-FFH'

elif [[ $sender -eq 3 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-DEUTSCH-PUR'

elif [[ $sender -eq 4 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-ITUNES-TOP-40'

elif [[ $sender -eq 5 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-BRANDNEU'

elif [[ $sender -eq 6 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-SUMMERFEELING'

elif [[ $sender -eq 7 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-WORKOUT'

elif [[ $sender -eq 8 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-DIE-80ER'

elif [[ $sender -eq 9 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-JUST-90S'

elif [[ $sender -eq 10 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-EURODANCE'

elif [[ $sender -eq 11 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-SOUNDTRACK'

elif [[ $sender -eq 12 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-SCHLAGERKULT'

elif [[ $sender -eq 13 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-ROCK'

elif [[ $sender -eq 14 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'FFH' 'FFH-PARTY'

elif [[ $sender -eq 15 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'PLANET-RADIO' 'PLANET-RADIO'

elif [[ $sender -eq 16 ]]; then
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'PLANET-RADIO' 'PLANET-RADIO-ITUNES-HOT40'

else
qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.play_station 'PLANET-RADIO' 'PLANET-RADIO-THE-CLUB' && exit 0

fi
Scrot:

Image

und wie das eingebunden bei mir aussieht hier :
viewtopic.php?f=214&t=285572&sid=1cb276 ... 6#p1595678

edit
Zur Titelanzeige wurde ein weiteres Script aufgerufen :

Titelanzeige :

titelanzeige.sh

zu installieren : jq

Code: Select all

apt install jq 

Code: Select all

#!/bin/bash
#
#Script zur Titelanzeige von radiotray-ng
# Name : titelanzeige.sh
#zu installieren : jq
notify-send -i `qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.get_player_state | jq -r '.image'` "`qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.get_player_state | jq -r '.artist'`" "`qdbus com.github.radiotray_ng /com/github/radiotray_ng com.github.radiotray_ng.get_player_state | jq -r '.title'`"
exit 0
und hier ein Vid in Aktion :

https://streamable.com/6iy3r
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

User avatar
secureIT
Level 3
Level 3
Posts: 177
Joined: Wed Dec 05, 2018 1:26 pm

Re: Der YAD-Praxis-Thread

Post by secureIT » Sun Jun 23, 2019 3:21 pm

Hier mal wieder was „leichteres“

Beispiel 3

Script zur Anzeige der Maus-Position.

In einer mehrere Monitore umfassenden Umgebung suche ich manchmal die Position der Maus…..
Abhilfe schafft ein kleines Yad-Script, das eine Animation an der Bildschirmposition der Maus anzeigt. Ich rufe das Script via Tastenkombination auf, und kann damit ganz leicht die Position der Maus finden. Am besten eignet sich ein animiertes gif.

showmouse.sh

zu installieren : yad

Code: Select all

#!/bin/bash
#script um in xfce die Position der Maus anzuzeigen
#Name : showmouse.sh
#zu installieren : yad
GTK_THEME=Custom-10-Dark yad --picture  --width=75 --height=75 --no-buttons --size=fit --filename=/home/DEINNAME/bin/gifs/anzeiger_10.gif --timeout=1 --mouse --undecorated  --on-top  > /dev/null 2>&1
Das GTK-Theme musst Du mit Deinem ersetzen ….. ebenso DEINNAME mit Deinem Installations-Namen.

edit : auch hierzu ein Vid :

https://streamable.com/4ci9x
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

User avatar
secureIT
Level 3
Level 3
Posts: 177
Joined: Wed Dec 05, 2018 1:26 pm

Re: Der YAD-Praxis-Thread

Post by secureIT » Sun Jun 23, 2019 4:31 pm

Beispiel 4

Nachdem man in Beispiel 3 sehen konnte, dass man mit Yad auf dem Screen animierte gifs anzeigen kann, ist natürlich auch jede Menge "Schnickschnack" damit machbar .......
z.B. animierte Spruchbänder - oder auch an bestimmter Position eingebundene Animationen, die via Script aufgerufen werden .....

Ein kleines Beispiel :

#!/bin/bash
GTK_THEME=Custom-10-Dark yad --picture --width=75 --height=75 --geometry=75x75+2055+465 --undecorated --no-buttons --size=fit --filename=/home/DEINNAME/bin/gifs/earthrotating-10.gif --timeout=10

Ein Vid dazu :

https://streamable.com/1jq2x

Ein Manko : Die Animation wird entsprechend des Themes angezeigt.

Der Hintergrund der gifs ist transparent.
Theme-Abhängig erfolgt die Darstellung in einem Rechteck/Quadrat jedoch mit Hintergrund des gewählten Themes.

Ich habe bisher noch kein Theme finden können, welches wirklich Transparenz liefert ...... vielleicht hat einer von Euch einen Tip ?
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

User avatar
secureIT
Level 3
Level 3
Posts: 177
Joined: Wed Dec 05, 2018 1:26 pm

Re: Der YAD-Praxis-Thread

Post by secureIT » Sat Jul 27, 2019 1:51 pm

Nachdem die YAD-Animationen jetzt mit Aufruf eines anderen Themes und Hintergrund-Bearbeitung mittels Gimp besser in den Screen integriert werden konnten - hier eine kleine Demo, was damit möglich ist :
Der Globe in der Mitte ist belegt mit einem gnome-pie. Mit Yad werden an gleicher Stelle Animationen dargestellt, die zur Darstellung von Netzwerk-Einstellungen dienen.
Das kleine YAD-Auswahl-Panel Mitte-rechts wurde mit vorab-Animation versehen, genau so, wie das Radiotray-ng-panel auf der linken Seite.
Ein kleiner Ausschnitt, von dem, was noch in Arbeit ist .......
Ist schon erstaunlich, was man mit YAD alles realisieren kann …. der Kreativität sind kaum Grenzen gesetzt …….. :D

Hier ein Vid :

https://streamable.com/j10wk
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

User avatar
secureIT
Level 3
Level 3
Posts: 177
Joined: Wed Dec 05, 2018 1:26 pm

Re: Der YAD-Praxis-Thread

Post by secureIT » Thu Sep 26, 2019 12:56 pm

Heute ein weiteres Beispiel aus der Yad-Praxis : Anzeige von Animationen aus dem Web.

Vorweg :
Zur rahmenlosen Anzeige einzelner *.gif-Animationen nutze ich unter Xfce das mini-xfwm4-theme.
Das gibt es hier zum Download :

https://github.com/cedl38/mini-xfwm4-theme

(Entpacken und dann unter Xfce nach .themes/ kopieren.)

In dem Script wird es dann aufgerufen mit
GTK_THEME=mini yad…………….

Hier ein Beispielscript zur Anzeige des DWD-Wetterradars :

Code: Select all

#!/bin/bash
#
# script zur Anzeige des DWD Wetterradars mittels yad
#
# Abfrage ob die *.gif-Animation des DWD Wetterradars bereits zuvor geladen wurde
# falls ja, lösche diese vor dem erneuten laden
#
cd ~/bin/
file="Radarfilm_WEB_DL.gif"
if [ -f $file ] ; then
    rm $file
fi
#
# Lade die *.gif-Animation des DWD Wetterradars
#
wget ~/bin/ https://www.wettergefahren.de/DWD/wetter/radar/Radarfilm_WEB_DL.gif
#
# Anzeige der *.gif-Animation des Wetterradars
#
# Die Position auf dem Bildschirm wird in xxx yyy festgelegt  (--geometry=540x500+xxx+yyy)
# 
GTK_THEME=mini yad --picture --width=540 --height=500 --geometry=540x500+1822+85 --undecorated --no-buttons --borders=0 --size=fit --filename=/home/DEINNAME/bin/Radarfilm_WEB_DL.gif --timeout=10
Das Script liegt bei mir im home im Verzeichnis bin, wohin dann auch die Animation vor geladen wird.

edit : das Script wurde nachträglich modifiziert, weil die Animation gleichzeitig in home und bin geladen wurde
jetzt funktioniert es ohne doppelte Dateien.

Hier ein Vid :

https://streamable.com/0jlql
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

User avatar
secureIT
Level 3
Level 3
Posts: 177
Joined: Wed Dec 05, 2018 1:26 pm

Re: Der YAD-Praxis-Thread

Post by secureIT » Sun Sep 29, 2019 1:21 pm

Nachdem mir die Grösse der Animation nicht gefallen hat, habe ich ein zweites Script gebaut.

Dabei wird das .gif mittels gifsicle vor der Anzeige verkleinert.

Code: Select all

#!/bin/bash
#
# script zur Anzeige des DWD Wetterradars mittels yad
# für das Verkleinern des gifs muss gifsicle installiert werden
#
# Abfrage ob die *.gif-Animation des DWD Wetterradars bereits zuvor geladen wurde
# falls ja, lösche diese vor dem erneuten laden
#
cd ~/bin/
file="Radarfilm_WEB_DL.gif"
if [ -f $file ] ; then
    rm $file
fi
file="Radarfilm_WEB_DL_resized.gif"
if [ -f $file ] ; then
    rm $file
fi
#
# Lade die *.gif-Animation des DWD Wetterradars
#
wget ~/bin/ https://www.wettergefahren.de/DWD/wetter/radar/Radarfilm_WEB_DL.gif
#
# verkleinern des gifs von 540x500 auf 323x317
#
gifsicle ~/bin/Radarfilm_WEB_DL.gif --resize 323x317 > ~/bin/Radarfilm_WEB_DL_resized.gif
#
# Anzeige der *.gif-Animation des Wetterradars
#
# Die Position auf dem Bildschirm wird in xxx yyy festgelegt  (--geometry=540x500+xxx+yyy)
# 
GTK_THEME=mini yad --picture width=323 hight=317 --geometry=323x317+1397+526 --undecorated --no-buttons --borders=0 --size=fit --filename=/home/DEINNAME/bin/Radarfilm_WEB_DL_resized.gif --timeout=10
DEINNAME musst Du mit Deinem Benutzernamen ersetzten.

Weiter benutze ich ein zweites Script, um die Animation ggf. nochmals wiederholen zu können, ohne Die Datei neu laden zu müssen.

Dafür habe ich einen Codeschnipsel aus dem ersten Script verwendet :



Code: Select all

#!/bin/bash
#
#zeigt letzte geladene Animation des DWD-Wetterradars
#
GTK_THEME=mini yad --picture width=323 hight=317 --geometry=323x317+1397+526 --undecorated --no-buttons --borders=0 --size=fit --filename=/home/DEINNAME/bin/Radarfilm_WEB_DL_resized.gif --timeout=10
Wie das Ganze dann läuft sieht man in diesem Vid :

https://streamable.com/mntdw
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

User avatar
secureIT
Level 3
Level 3
Posts: 177
Joined: Wed Dec 05, 2018 1:26 pm

Re: Der YAD-Praxis-Thread

Post by secureIT » Fri Oct 04, 2019 1:39 pm

Ein weiteres Beispiel:

In Bildschirmvids sensible Informationen (IP-Adresse, Nutzername e.t.c) aus Conkys, Screenlets u.s.w via YAD mit Spoilern überlagern.
Oder auch vorab als "Watermarks" einfügen.
Es macht Sinn, das schon bei der Aufnahme zu machen, denn das nachträgliche Einfügen ist dann eine Fummelei mit Script und ffmpeg ....

Hier ein Beispiel-Script :

benötigt wird yad und wmctrl.

Im Übrigen ist es wichtig, bei Verwendung mehrerer Masken gleichzeitig unter --title einen einzigartigen Fensternamen anzugeben, da es sonst bei mehreren Masken zu durcheinander mit wmctrl führt. ( also : 1. Maske z.B. maske 01 ...... 2. Maske z.B. maske 02) und unter :
'wmctrl -c "FENSTERNAMEN"'
diesen zu wiederholen.
Du musst im Script die Dimensionen des verwendeten .pngs anpassen im Wert : ww und hh : --geometry=wwxhh+xxx+yyy
Die Bildschirmposition wird im Wert xxx und yyy eingestellt --geometry=77x26+xxx+yyy
..... und die Angaben für das Theme musst Du selber an Hand Deiner installierten Themes vornehmen
GTK_THEME=...........

Code: Select all

#!/bin/bash
# Script für Masken auf dem Desktop
# zu installieren : yad wmctrl
# Name : wasimmerduwillst.sh
# Befehl für Starter : bash -c maske02.sh
        GTK_THEME=Custom-10-Dark yad --form --undecorated --no-buttons --title "maske01" --geometry=77x26+2200+645 \
       --columns="1" \
       --field="!$HOME/bin/icons-maske/overlay2.png! exit :fbtn" 'wmctrl -c "maske01"' \
Wenn Du dann das Script gestartet hast, ( z.b. mit Starter) :

Code: Select all

bash -c wasimmerduwillst.sh
.......... wird es auf dem Desktop angezeigt ........ solange, bis Du einmal draufklickst.

Zu sehen, z.B. in meinem nächsten Bildschirmvid, wo ich zu Anfang einen Avatar einblende und zum Schluss mit Klick beende ...........

Hier kannst Du sehen, was bisher an yad - Anwendungen - und Animationen in Xfce auf dem Zusatz-Monitor meines alten Dell läuft :

1. bereits eingeblendete Masken für die IPs und den Nutzernamen
2. Einblenden des Avatars
3. 3 verschiedene LM-Logo-animationen von links über Mitte bis rechts, die noch nicht mit Anwendungen verknüpft sind
(das in der Mitte stammt von caz2747 auf blenderart.org , das rechts ist ein Fundstück auf YT.)
4. Whisker Menu mit Verknüpfung einer Animation rechts davon.
5. Kleines Panel mit Startern in der Mitte.
5. Netzwerk deaktivieren mit Animation in der Mitte
6. Netzwerk aktivieren mit Animation von Mitte nach oben
7. Start von Netview mit vorweg-Animation
8. Anzeige des DWD-Wetterradars
9. Radiotray-NG-Panel mit einfacher - und Zoom-Funktion
10. an gleicher Stelle : Einblendung einer Steuerung für die Wiedergabe des TV-Streamings deutscher Sender via VLC - mit einfacher - und Zoomfunktion
11. Ausblendung des Avatars per Klick

P..S: die hohe Prozessorlast, die in dem Screenlet angezeigt wird, resultiert nicht aus den Animationen, sondern wird von vokoscreen verursacht.( Benutze ich für die Aufnahme des Desktop)

Das Video:

https://streamable.com/w4nvb
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

User avatar
secureIT
Level 3
Level 3
Posts: 177
Joined: Wed Dec 05, 2018 1:26 pm

Re: Der YAD-Praxis-Thread

Post by secureIT » Sat Oct 05, 2019 1:19 pm

Für Interessierte hier noch die Scripte für das im vorigen Vid enthaltene yad-panel für vlc zum Empfang der TV-Streamings.

Man kann die Senderauswahl natürlich direkt im VLC ausführen.
Bei mir läuft TV allerdings normaler Weise nicht auf dem (Arbeits-)Zusatzmonitor, sondern auf dem 1. Desktop, und daher und aus Spass am Scripten habe ich das mit yad umgesetzt (..... und ein bisschen "Eye-Candy" kann ja auch bei Xfce nicht schaden) :wink:

Das Script beruht auf meiner derzeitigen VLC-Playlist für die öffentlichen TV-Sender, die ich hier auch mal poste, für diejenigen unter Euch, die nichts mit yad im Sinn haben :

Code: Select all

#EXTM3U
#EXTINF:0,daserste HD
https://derste247livede.akamaized.net/hls/live/658317/daserste_de/master.m3u8
#EXTINF:0,ARD Alpha HD
http://livestreams.br.de/i/bralpha_germany@119899/index_3776_av-b.m3u8
#EXTINF:0,ARD one HD
http://onelivestream-lh.akamaihd.net/i/one_livestream@568814/index_7_av-b.m3u8
#EXTINF:0,HR HD
http://livestream-1.hr.de/i/hr_fernsehen@75910/index_3584_av-b.m3u8
#EXTINF:0,BR HD
http://livestreams.br.de/i/bfsnord_germany@119898/index_3776_av-b.m3u8
#EXTINF:0,RBB
https://rbblive-lh.akamaihd.net/i/rbb_berlin@144674/master.m3u8
#EXTINF:0,SR
http://live2_sr-lh.akamaihd.net/i/sr_universal02@107595/index_1662_av-b.m3u8
#EXTINF:0,SWR HD
https://swrbwhls-i.akamaihd.net/hls/live/667638-b/swrbwd/master_3776.m3u8
#EXTINF:0,WDR HD
http://wdrfsgeo-lh.akamaihd.net/i/wdrfs_geogeblockt@530016/index_3776_av-b.m3u8
#EXTINF:0,NDR HD
http://ndrfs-lh.akamaihd.net/i/ndrfs_nds@430233/index_3776_av-b.m3u8
#EXTINF:0,MDR
http://mdrsnhls-lh.akamaihd.net/i/livetvmdrsachsen_de@513998/index_3776_av-b.m3u8
#EXTINF:0,Deutsche Welle
http://dwstream72-lh.akamaihd.net/i/dwstream72_live@123556/index_1_av-p.m3u8
#EXTINF:0,ZDF HD
https://zdf-hls-01.akamaized.net/hls/live/2002460/de/high/master.m3u8
#EXTINF:0,ZDF info HD
https://zdfhls17-i.akamaihd.net/hls/live/744750/de/5/5.m3u8
#EXTINF:0,ZDF neo HD
https://zdf-hls-02.akamaized.net/hls/live/2002461/de/high/master.m3u8
#EXTINF:0,3SAT
https://zdfhls18-i.akamaihd.net/hls/live/744751/dach/3/3.m3u8
#EXTINF:0,Phoenix
https://zdfhls19-i.akamaihd.net/hls/live/744752/de/5/5.m3u8
#EXTINF:0,Arte DE HD
http://artelive-lh.akamaihd.net/i/artelive_de@393591/index_1_av-b.m3u8
#EXTINF:0,N24
http://live2weltcms-lh.akamaihd.net/i/Live2WeltCMS_1@444563/index_1_av-b.m3u8
#EXTINF:0,N24 Infoscreen
https://news2weltcms-lh.akamaihd.net/i/News2WeltCMS_1@425444/master.m3u8
#EXTINF:0,Servus-TV HD DE
https://rbmn-live.akamaized.net/hls/live/2002830/geoSTVDEweb/master_6692.m3u8
#EXTINF:0,Sky Sport News
https://eventhlshttps-i.akamaihd.net/hls/live/263645/ssn-hd-https/indexvideo-3400.m3u8
Oben stehendes kopieren und als .txt-File z.B. unter dem Namen streamtv.txt in ein Verzeichnis Deiner Wahl speichern.

Danach umbenennen in streamtv.m3u8

Dann kann man die Playlist im VLC öffnen ......> Medien öffnen : > Datei öffnen > streamtv.m3u8 auswählen und fertig.

Hier jetzt die Scripte für das VLC-TV-Panel :

1. Das Panel :

Code: Select all

#!/bin/bash 
# script für ein Steuer-Panel von vlc mit 14 TV-Sendern mit normal- und Zoom-Auswahl
# Name: vlctvpanel.sh
# Speicherort : ~/bin 
# zu installieren : yad wmctrl
# Die Angabe des Themes in GTK_Theme= mit dem eigenen ersetzen (am besten eignet sich ein dark-Theme)
# Die Bildschirmposition ist in --geometry=101x126+xxxx+xxx anpassbar
# Die Icons im Beispiel haben eine Grösse von 24x24
# Der Speicherort der Icons ist(relativ) im Script:$HOME/bin/$HOME/bin/icons-radiotray-ng ... direkter Speicherort: ~/bin/icons-radiotray-ng
# Die Zoom-Funktion wird aufgerufen über ein weiteres Script : vlctvsenderauswahl.sh
# 
        GTK_THEME=Custom-10-Dark yad --form --undecorated --no-buttons --title "vlctvpanel" --geometry=101x126+1397+526 \
       --columns="4" \
       --field="!$HOME/bin/icons-vlc/vlc1.png! vlc-on :fbtn" '/usr/bin/vlc' \
       --field="!$HOME/bin/icons-vlc/Das-Erste.png! Das-Erste :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://derste247livede.akamaized.net/hls/live/658317/daserste_de/master.m3u8' \
       --field="!$HOME/bin/icons-vlc/ZDF.png! ZDF :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://zdf-hls-01.akamaized.net/hls/live/2002460/de/high/master.m3u8' \
       --field="!$HOME/bin/icons-vlc/hr.png! HR :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://livestream-1.hr.de/i/hr_fernsehen@75910/index_3584_av-b.m3u8' \
--field="!$HOME/bin/icons-vlc/SWR.png! SWR :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://swrbwhls-i.akamaihd.net/hls/live/667638-b/swrbwd/master_3776.m3u8' \
       --field="!$HOME/bin/icons-vlc/Phoenix.png! Phoenix :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://zdfhls19-i.akamaihd.net/hls/live/744752/de/5/5.m3u8' \
       --field="!$HOME/bin/icons-vlc/VLCoff.png! VLC-off :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Quit' \
       --field="!$HOME/bin/icons-vlc/ARDone.png! ARD-One :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://onelivestream-lh.akamaihd.net/i/one_livestream@568814/index_7_av-b.m3u8' \
       --field="!$HOME/bin/icons-vlc/ZDFinfo.png! ZDF-Info :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://zdfhls17-i.akamaihd.net/hls/live/744750/de/5/5.m3u8' \
       --field="!$HOME/bin/icons-vlc/BR.png! BR :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://livestreams.br.de/i/bfsnord_germany@119898/index_3776_av-b.m3u8' \
--field="!$HOME/bin/icons-vlc/WDR.png! WDR :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://wdrfsgeo-lh.akamaihd.net/i/wdrfs_geogeblockt@530016/index_3776_av-b.m3u8' \
       --field="!$HOME/bin/icons-vlc/N24.png! N24 :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://live2weltcms-lh.akamaihd.net/i/Live2WeltCMS_1@444563/index_1_av-b.m3u8' \
       --field="!$HOME/bin/icons-vlc/fullscreen.png! fullscreen :fbtn" 'dbus-send --dest=org.mpris.MediaPlayer2.vlc --print-reply /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Set string:org.mpris.MediaPlayer2 string:Fullscreen variant:boolean:true' \
       --field="!$HOME/bin/icons-vlc/ARDalpha.png! ARD-Alpha :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://livestreams.br.de/i/bralpha_germany@119899/index_3776_av-b.m3u8' \
       --field="!$HOME/bin/icons-vlc/ZDFneo.png! ZDF-neo :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://zdf-hls-02.akamaized.net/hls/live/2002461/de/high/master.m3u8' \
       --field="!$HOME/bin/icons-vlc/RBB.png! RBB :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://rbblive-lh.akamaihd.net/i/rbb_berlin@144674/master.m3u8' \
--field="!$HOME/bin/icons-vlc/NDR.png! NDR :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://ndrfs-lh.akamaihd.net/i/ndrfs_nds@430233/index_3776_av-b.m3u8' \
       --field="!$HOME/bin/icons-radiotray-ng/lupe3.png! zoom :fbtn" 'bash -c vlctvsenderauswahl.sh' \
       --field="!$HOME/bin/icons-vlc/skysportnews.png! Sky-Sport-News :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://eventhlshttps-i.akamaihd.net/hls/live/263645/ssn-hd-https/indexvideo-3400.m3u8' \
       --field="!$HOME/bin/icons-vlc/3sat.png! 3SAT :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://zdfhls18-i.akamaihd.net/hls/live/744751/dach/3/3.m3u8' \
       --field="!$HOME/bin/icons-vlc/arte.png! Arte :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://artelive-lh.akamaihd.net/i/artelive_de@393591/index_1_av-b.m3u8' \
--field="!$HOME/bin/icons-vlc/SR.png! SR :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://live2_sr-lh.akamaihd.net/i/sr_universal02@107595/index_1662_av-b.m3u8' \
--field="!$HOME/bin/icons-vlc/MDR.png! MDR :fbtn" 'qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://mdrsnhls-lh.akamaihd.net/i/livetvmdrsachsen_de@513998/index_3776_av-b.m3u8' \
       --field="!$HOME/bin/icons-radiotray-ng/window-close-3.png! exit-panel :fbtn" 'wmctrl -c "vlctvpanel"' \
2. Das Script für den horizontalen Zoom unterhalb des oberen Bildschirmrandes :



Code: Select all

#!/bin/bash
# script zur horizontalen Anzeige von vlc-buttons zur Senderauswahl
# Name : vlctvsenderauswahl.sh
# zu installieren : yad
# Die Angabe des Themes in GTK_Theme= mit dem eigenen ersetzen (am besten eignet sich ein dark-Theme)
# Bildschirmposition festzulegen in xxx bei : 50x50+xxxx+xxx
# Die Icons im Beispiel haben eine Grösse von 50x50
#
GTK_THEME=Custom-10-Dark yad --undecorated --geometry=50x50+1201+46 \
--button=\ "!$HOME/bin/icons-multitrans/window-close-3.png!exit":1 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/skysportnews.png!SKY-sportnews":2 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/Das-Erste.png!Das-Erste":3 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/ARDone.png!ARD-one":4 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/ARDalpha.png!ARD-alpha":5 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/3sat.png!3sat":6 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/ZDF.png!ZDF":7 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/ZDFinfo.png!ZDF-info":8 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/ZDFneo.png!ZDF-neo":9 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/arte.png!arte":10 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/hr.png!hr":11 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/BR.png!BR":12 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/RBB.png!RBB":13 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/SR.png!SR":14 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/SWR.png!SWR":15 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/WDR.png!WDR":16 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/NDR.png!NDR":17 \
--button=\ "!$HOME/bin/icons-vlc/auswahl/MDR.png!MDR":18

sender=$?

[[ $sender -eq 1 ]] && exit 0

if [[ $sender -eq 2 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://eventhlshttps-i.akamaihd.net/hls/live/263645/ssn-hd-https/indexvideo-3400.m3u8 && notify-send "Sky Sport News" --icon="$HOME/bin/icons-vlc/auswahl/skysportnews.png" 

elif [[ $sender -eq 3 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://derste247livede.akamaized.net/hls/live/658317/daserste_de/master.m3u8 && notify-send "Das Erste" --icon="$HOME/bin/icons-vlc/auswahl/Das-Erste.png"

elif [[ $sender -eq 4 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://onelivestream-lh.akamaihd.net/i/one_livestream@568814/index_7_av-b.m3u8 && notify-send "ARD-one" --icon="$HOME/bin/icons-vlc/auswahl/ARDone.png"

elif [[ $sender -eq 5 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://livestreams.br.de/i/bralpha_germany@119899/index_3776_av-b.m3u8 && notify-send "ARD-alpha" --icon="$HOME/bin/icons-vlc/auswahl/ARDalpha.png"

elif [[ $sender -eq 6 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://zdfhls18-i.akamaihd.net/hls/live/744751/dach/3/3.m3u8 && notify-send "3sat" --icon="$HOME/bin/icons-vlc/auswahl/3sat.png"

elif [[ $sender -eq 7 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://zdf-hls-01.akamaized.net/hls/live/2002460/de/high/master.m3u8 && notify-send "ZDF" --icon="$HOME/bin/icons-vlc/auswahl/ZDF.png"

elif [[ $sender -eq 8 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://zdfhls17-i.akamaihd.net/hls/live/744750/de/5/5.m3u8 && notify-send "ZDF-info" --icon="$HOME/bin/icons-vlc/auswahl/ZDFinfo.png"

elif [[ $sender -eq 9 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://zdf-hls-02.akamaized.net/hls/live/2002461/de/high/master.m3u8 && notify-send "ZDF-neo" --icon="$HOME/bin/icons-vlc/auswahl/ZDFneo.png"

elif [[ $sender -eq 10 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://artelive-lh.akamaihd.net/i/artelive_de@393591/index_1_av-b.m3u8 && notify-send "arte" --icon="$HOME/bin/icons-vlc/auswahl/arte.png"

elif [[ $sender -eq 11 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://livestream-1.hr.de/i/hr_fernsehen@75910/index_3584_av-b.m3u8 && notify-send "HR" --icon="$HOME/bin/icons-vlc/auswahl/hr.png"

elif [[ $sender -eq 12 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://livestreams.br.de/i/bfsnord_germany@119898/index_3776_av-b.m3u8 && notify-send "BR" --icon="$HOME/bin/icons-vlc/auswahl/BR.png"

elif [[ $sender -eq 13 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://rbblive-lh.akamaihd.net/i/rbb_berlin@144674/master.m3u8 && notify-send "RBB" --icon="$HOME/bin/icons-vlc/auswahl/RBB.png"

elif [[ $sender -eq 14 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://live2_sr-lh.akamaihd.net/i/sr_universal02@107595/index_1662_av-b.m3u8 && notify-send "SR" --icon="$HOME/bin/icons-vlc/auswahl/SR.png"

elif [[ $sender -eq 15 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri https://swrbwhls-i.akamaihd.net/hls/live/667638-b/swrbwd/master_3776.m3u8 && notify-send "SWR" --icon="$HOME/bin/icons-vlc/auswahl/SWR.png"

elif [[ $sender -eq 16 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://wdrfsgeo-lh.akamaihd.net/i/wdrfs_geogeblockt@530016/index_3776_av-b.m3u8 && notify-send "WDR" --icon="$HOME/bin/icons-vlc/auswahl/WDR.png"

elif [[ $sender -eq 17 ]]; then
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://ndrfs-lh.akamaihd.net/i/ndrfs_nds@430233/index_3776_av-b.m3u8 && notify-send "NDR" --icon="$HOME/bin/icons-vlc/auswahl/NDR.png"

else
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri http://mdrsnhls-lh.akamaihd.net/i/livetvmdrsachsen_de@513998/index_3776_av-b.m3u8 && notify-send "MDR" --icon="$HOME/bin/icons-vlc/auswahl/MDR.png" && exit 0
Ich kann die Buttons auch gerne als .tar.gz irgendwo hochladen ............ falls jmd. einen unkomplizierten Hoster für kleine Dateien kennt, der ohne Anmeldung funktioniert (privacy) und auch nichts mit "Gockel" zu tun hat.
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

achim
Level 1
Level 1
Posts: 1
Joined: Sun Nov 10, 2019 10:55 pm

Re: Der YAD-Praxis-Thread

Post by achim » Sun Nov 10, 2019 11:15 pm

Hallo,

mein Name ist achim und ich bin seit fast 2 Jahren begeisterter YAD-Anwender. Ich benutze Linux Mint 18.3 Cinnamon, 64 Bit. Schon länger bin ich auf der Suche nach einem deutschen Forum mit einer Ecke, wo sich User über YAD austauschen. Auch in anderen Foren bin ich bereits unterwegs, um mein Wissen diesbezüglich zu vertiefen. Auf diese Weise habe ich schon viele tolle Tipps erhalten.

Wenn sich dieser Thread dahin entwickelt, das Interessierte bzw. Anwender ihre Erfahrungen austauschen und vielleicht das eine oder andere Example veröffentlichen, bin ich gerne dabei.

Hier gleich mein erstes Beispiel (benötigt zusätzlich Exiftool https://wiki.ubuntuusers.de/ExifTool/). In manchen Fällen tragen die Bilder von Kamera oder Handy (im jpg-Format aufgenommen) plötzlich das aktuelle Datum. Um beispielsweise Urlaubsbilder zu sortieren ist es sinnvoll, dass das Änderungsdatum dem Erstellungsdatum entspricht. Das folgende Skript korrigiert das Datum entsprechend:

Code: Select all

#!/bin/bash
#
# Änderungsdatum <> Erstellungsdatum in Image-Dateien
#
function close_exit(){
    echo "close and exit"
    kill -s SIGUSR1 $YAD_PID
}
export -f close_exit
#
cd $HOME/Bilder
#
TITLE="Verzeichnis festlegen"
#
TEXT='<span color=\"blue\" font="Verdana bold 18" >\n                         Bitte eine beliebige Datei selektieren und mit 'OK' fortfahren! </span>
<span color=\"red\" font="Verdana 12" >\n(Info: Mit diesem Tool tauschen Sie das Änderungsdatum gegen das \nErstellungsdatum aller Image-Dateien im ausgewählten Verzeichnis.)
</span> '
#
filename=$(yad --width=1500 --height=600 --window-icon="$HOME/.icons/Movies-icon24.png" --title="$TITLE" --text="$TEXT" --file-selection \
		--button="gtk-cancel!Cancel":1 --button="gtk-ok!OK":0)
#
	fo11=$?					# Exit-Code auswerten
#	
	if [[ $fo11 -eq 1 ]]; then		# Skript-Ende, falls Schalter 'Abbruch' gedrueckt
	bash -c close_exit &>/dev/null
	exit
	fi   
#
if [[ ! -f "${filename}" ]]; then
	zenity --error --ellipsize \
	   --text '<span foreground="blue" font="14">Keine Bilddatei gefunden - \nversuchen sie es noch einmal!</span>' &>/dev/null
bash -c close_exit &>/dev/null
	exit
fi
#
pfadname=${filename}
verz=${filename%/*}
#
cd "$verz"
#
for FILE in *.jpg; do
touch -t `exiftool -s -s -s -d "%Y%m%d%H%m.%S" -DateTimeOriginal $FILE` $FILE > /dev/null 2>> /tmp/toedat.log
done | zenity --progress \
				--title="Process Status" \
				--text="Einen Moment Geduld..." \
				--pulsate \
				--auto-close &>/dev/null
sleep 1.0	
#
zenity --info --ellipsize \
    --text='<span foreground="blue" font="14">   Fertig!          </span>' &>/dev/null
#
 bash -c close_exit &>/dev/null
 exit
 
Den Code bitte unter $HOME/bin/toedat.sh speichern. Aufgerufen wird er im Terminal mit toedat.sh, anschließendend werden alle jpg-Dateien im ausgewählten Verzeichnis bearbeitet. Des Weiteren wird im Verzeichnis /tmp die Datei toedat.log erstellt, um ggf. Fehler zu dokumentieren.

achim

Post Reply

Return to “Deutsch (German)”