Der YAD-Praxis-Thread

German Forum

Moderator: karlchen

User avatar
secureIT
Level 3
Level 3
Posts: 182
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: 182
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: 182
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: 182
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: 182
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: 182
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: 182
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: 182
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: 182
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: 9
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

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

Re: Der YAD-Praxis-Thread

Post by secureIT » Tue Nov 12, 2019 9:08 am

Hallo achim,

ich dachte schon, ich bin der Einzige hier, der sich für yad interessiert, und allen Anderen ist das vollkommen "ladde"

Ein schönes Script hast Du da gebaut.

Vielen Dank dafür :D

Ich habe es getestet, indem ich einen Testordner angelegt habe und in diesen 2 Fotos mit verschiedenen Erstellungsdaten kopiert.
Dann habe ich mit gimp die Fotos ein wenig verändert und zurück exportiert, wobei diese das heutige Datum angenommen haben.
Danach habe ich Dein Script aufgerufen ..... und die Fotos haben wieder das Ursprungsdatum angenommen.

Das zeigt mal wieder, wie vielseitig yad angewendet werden kann.

Ich lebe im Moment unter Anwendung von yad meinen Desktop-Spieltrieb etwas aus :lol: ....,wie folgendes Beispiel zeigt :

https://streamable.com/9ghyk


edit:

Das Script und Informationen, wie man mittels yad rahmenlose Animationen anzeigen kann findest Du hier in meinem englischsprachigen Thread :

viewtopic.php?f=57&t=299546
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

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

Re: Der YAD-Praxis-Thread

Post by achim » Wed Nov 13, 2019 10:00 am

Hallo secureIT,

schön das dir mein Skript gefällt. Ich baue hauptsächlich und gerne unter dem Begriff "Tools". Wobei ich aber auch glaube, dass nach dem Kopieren des Codes häufig noch Hand angelegt werden muss vom Anwender. So liegen die verwendeten Icons bei mir im Verzeichnis $HOME/.icons. Wird das Icon nicht gefunden, verwendet yad das Standard-Icon. Deshalb kann hier ja jeder kreativ sein und seine eigenen Icons verwenden.
Ich stelle mir vor, dass auch wir voneinander lernen. So frage ich mich zum Beispiel, warum du die Skripts mit bash -c xyz.sh aufrufst. Wenn die Dateien in $HOME/bin oder /usr/local/bin liegen, werden sie doch auch mit dem Aufruf Skriptname.sh gefunden. Hat deine Methode einen Vorteil?

Zum Schluss möchte ich ein 2. Beispiel veröffentlichen. In Anlehnung an deinen weiter oben gezeigten Radarfilm ist mir meine "Wettervorhersage" vom DWD für die nächsten 3 Tage eingefallen. Hier der Code, er wird vom Terminal mit "twetter.sh" aufgerufen. In vielen Fällen reicht anschließend auch nur die Eingabe der PLZ.

Edit:
Ich habe den Code noch etwas geändert und die Auswertung des Exit-Codes untergebracht. D. h., das Skript kann sowohl mit der ESC-Taste als auch mit dem Kreuz (rechts oben) beendet werden, ohne das YAD weiter läuft.

Code: Select all


#!/bin/bash
#
function close_exit(){
    kill -s SIGUSR1 $YAD_PID
}
export -f close_exit
#
text="   # wttr.in
   #Verwendung: :Hilfe (von http://wttr.in/:help )

    #$ (none)				# aktueller Standort
    #$ muc				# Wetter am Münchner Flughafen

    #Unterstütze Ortstypen:

    #Paris				# Stadtname
    #Muc					# IATA-Flughafencode (3 Buchstaben)
    #@stackoverflow.com	# domain name"
#
weather_wttr() {
yad --html --browser --uri="http://wttr.in/$location" --width=1040 --height=880 \
--center --button="Return!gtk-ok:0" --button="Exit!gtk-cancel:1" --title="Wetter" &>/dev/null
#
	ec=$(echo $?)									# Exit-Code auswerten
	
	if [[ $ec == 1 ]] || [[ $ec == 70 ]] || [[ $ec == 252 ]]; then	# Taste Abbrechen gedrückt || Skript-Ende mit [X] || Skript-Ende mit [Esc]
	bash -c close_exit &>/dev/null
	exit
	fi
}
#
while (true); do
       location=$(yad --button="gtk-cancel:1" --button="gtk-ok:0" --entry \
                      --text="$text" --center --width=620 --height=300 --borders=10 \
                      --title="Wetter" )
#
	ce=$(echo $?)									# Exit-Code auswerten
	
	if [[ $ce == 1 ]] || [[ $ce == 70 ]] || [[ $ce == 252 ]]; then	# Taste Abbrechen gedrückt || Skript-Ende mit [X] || Skript-Ende mit [Esc]
	bash -c close_exit &>/dev/null
	exit
	else
       weather_wttr
       fi
done
bash -c close_exit &>/dev/null
exit


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

Re: Der YAD-Praxis-Thread

Post by achim » Thu Nov 14, 2019 2:02 pm

Mein 3. Beispiel ist für Personen gedacht, die sich mit Video oder Audiobearbeitung beschäftigen. Mit dem folgenden Tool kann aus mp4 oder avi Dateien die Werbung heraus geschnitten oder aus einer kompletten mp3 Sammlung (eine Datei) Einzel-Songs erzeugt werden.

Code: Select all


#!/bin/bash
#
# Video- und Audio-Dateien schneiden
#
# benötigt wird: zenity, ffmpeg
#
function close_exit(){
    kill -s SIGUSR1 $YAD_PID
}
export -f close_exit
#
cd $HOME/Videos/
#
TITLE="Video- oder Audiodateien schneiden"
TITLE1="Bereich festlegen"
#
TEXT='<span color=\"blue\" font="Verdana bold 16" >\n   Das gewünschte Videoformat wählen, eine beliebige Datei selektieren und mit "OK" fortfahren! </span>   
<span color=\"red\" font="Verdana 12" >\n(Info: Mit diesem Tool schneiden Sie Dateien in den Formaten mp4, \nmp3 und avi sekundengenau und werbungsfrei.)
</span> '
#
INPUT=$(yad --width=1500 --height=600 --window-icon="$HOME/.icons/Movies-icon24.png" --title="$TITLE" --text="$TEXT" --file-selection \
            --button=" Abbrechen!$HOME/.icons/Button-stop-icon24.png":1 --button=" OK!$HOME/.icons/Accept-icon24.png":0 \
            --file-filter='*.mp4' --file-filter='*.mp3' --file-filter='*.avi')
#
	ec=$(echo $?)									# Exit-Code auswerten
#	
	if [[ $ec == 1 ]] || [[ $ec == 70 ]] || [[ $ec == 252 ]]; then	# Taste Abbrechen gedrückt || Skript-Ende mit [X] || Skript-Ende mit [Esc]
	bash -c close_exit &>/dev/null
	exit
	fi	    
#
	if [[ ! -f "${INPUT}" ]]; then
	zenity --error --ellipsize \
	   --text '<span foreground="blue" font="14">Keine Videodatei ausgewählt - \nversuchen sie es noch einmal!</span>' &>/dev/null
	bash -c close_exit &>/dev/null
	exit
	fi
#
TEXT2="
Eingabe-
Schema   hh.mm.ss"
	eval $(yad --width=600 --height=300 --window-icon="$HOME/.icons/Movies-icon24.png" --title="$TITLE1" --text="$TEXT2" --button=" Abbrechen!$HOME/.icons/Button-stop-icon24.png":1 \
	--button=" OK!$HOME/.icons/Accept-icon24.png":0 --form --field=Start --field=Ende --field=Ergebnis:SFL "00:00:00" "00:00:00" "${INPUT/%.*}-new.${INPUT##*.}" | awk -F'|' '{printf "START=%s\nEND=%s\nOUTPUT=\"%s\"\n", $1, $2, $3}')
#
	ecz=$(echo $?)									# Exit-Code auswerten
#	
	if [[ $ecz == 1 ]] || [[ $ecz == 70 ]] || [[ $ecz == 252 ]]; then	# Taste Abbrechen gedrückt || Skript-Ende mit [X] || Skript-Ende mit [Esc]
	bash -c close_exit &>/dev/null
	exit
	fi
#
	if [[ -z $START || -z $END || -z $OUTPUT ]]; then
	zenity --error --ellipsize \
	   --text '<span foreground="blue" font="14">Falsche Eingabe - \nversuchen sie es noch einmal!</span>' &>/dev/null
	bash -c close_exit &>/dev/null
	exit
	fi
#	
DIFF=$(($(date +%s --date="$END")-$(date +%s --date="$START")))
#
OFFSET=""$(($DIFF / 3600)):$(($DIFF / 60 % 60)):$(($DIFF % 60))
#
	if [ "${OUTPUT##*.}" = "mp4" ]; then
	ffmpeg -ss "$START" -t "$OFFSET" -i "$INPUT" -vcodec libx264  -preset veryfast -crf 16 -acodec libmp3lame -ab 196k "$OUTPUT" | zenity --progress \
				--title="Process Status" \
				--text="Bearbeitung läuft..." \
				--pulsate \
				--auto-close &>/dev/null
	fi
#
	if [ "${OUTPUT##*.}" = "mp3" ]; then
	ffmpeg -ss "$START" -t "$OFFSET" -i "$INPUT" -b:a 320000 "$OUTPUT" | zenity --progress \
				--title="Process Status" \
				--text="Bearbeitung läuft..." \
				--pulsate \
				--auto-close &>/dev/null
	fi
#
	if [ "${OUTPUT##*.}" = "avi" ]; then
	ffmpeg -ss "$START" -t "$OFFSET" -i "$INPUT" -vcodec libx264  -preset veryfast -crf 16 -acodec libmp3lame -ab 196k "$OUTPUT" | zenity --progress \
				--title="Process Status" \
				--text="Bearbeitung läuft..." \
				--pulsate \
				--auto-close &>/dev/null
	fi
sleep 0.5				
	zenity --info --ellipsize \
	--text='<span foreground="blue" font="14">\n          Fertig!                  </span>' &>/dev/null
#
close_exit &>/dev/null
exit


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

Re: Der YAD-Praxis-Thread

Post by secureIT » Thu Nov 14, 2019 3:42 pm

Hallo achim,

Zunächst zu Deiner Frage:
So frage ich mich zum Beispiel, warum du die Skripts mit bash -c xyz.sh aufrufst.
Die Methode ist nur dann von Vorteil, wenn man, wie ich, verschiedene Möglichkeiten und Tools nutzt, um mit einem Starter die Scripte aufrufen.
Ich bin mit Xfce unterwegs und benutze außer den normalen Startern im Panel auch noch z.B. das Launcher Screenlet und andere Tools.
Dabei musste ich feststellen, dass der Aufruf mit xyz.sh bei den Panel-Startern funktionierte ...... oder auch nur mit xyz ohne Endung, wenn man diese zuvor aus dem Dateinamen der Scripte entfernt hatte.
bash -c xyz.sh hat aber bei allen Tools und Startern funktioniert, und deshalb habe ich das vereinheitlicht, damit es ggf. bei Allen passt, egal womit Sie starten.

zu Deinem 2. Beispiel

Die Daten, die damit aufgerufen werden sollen, stammen nicht wie von Dir geschrieben vom DWD (Deutscher Wetterdienst), sondern von wttr.in, welches ein Web-Frontend von wego ist.

Leider funktioniert das Script bei mir nicht.
Egal, was ich als location eingebe, die yad-Browserdarstellung bleibt leer ..... und netactview zeigt während der
Ausführung des Scriptes auch keine Verbindung zu wttr.in .

Ich persönlich hätte wahrscheinlich eher den Weg gewählt, via yad die location abzufragen, und mir im nächsten Schritt das png geladen, um dies dann per yad Rahmen- und Fensterlos - wie in meinem DWD-Beispiel- in einen vorhandenen Screen integriert.
Aber es gibt da ja auch einige Andere Möglichkeiten die auf :
https://github.com/chubin/wttr.in
beschrieben sind, und die man mit der yad-Abfrage kombinieren könnte.

Es gibt eine ganze Menge schönerer Wetteranzeigen als wttr.in, welches ja eigentlich fürs Terminal gedacht ist -
aber in diesem Thread geht es ja um Tools, die mit yad umgesetzt sind - und deshalb wäre schon interessant, warum z.B. der --browser --html Aufruf nicht funktioniert hat.

Ich habe den Code aber bisher noch nicht bis in jedes Detail analysiert ......
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

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

Re: Der YAD-Praxis-Thread

Post by achim » Thu Nov 14, 2019 8:07 pm

Hallo secureIT,

schade das der Code bei dir nicht läuft. Bei mir funktionierte alles problemlos, von Anfang an. Hast du auch schon mal probiert den Teil "&>/dev/null" zu löschen und das Skript via Terminal über $HOME/bin zu starten - bekommst du dann eventuell Fehler angezeigt? Mich würde es schon interessieren, ob du das Programm noch zum Laufen bekommst.
Manchmal steckt man aber auch nicht im Detail. Ich arbeite mit einem Tower und meine Frau hat noch einen älteren Laptop mit LM 18.3 in Gebrauch. Es ist auch schon vorgekommen, das YAD-Code bei mir lief und auf dem Läppi nicht. Welche YAD-Version hast du momentan drauf? Über dieses Problem bin ich nämlich auch schon gestolpert.
Du schreibst, dass es eine Menge schönere Wetteranzeigen gibt - wo finde ich die denn?

Ich wünsch dir alles Gute und bis demnächst!

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

Re: Der YAD-Praxis-Thread

Post by secureIT » Fri Nov 15, 2019 1:09 pm

Hallo achim,

Bei mir läuft die Version 0.38.2-1 -(kam mit LM 19)

Es liegt m.E. nicht an Deinem Script.

Ich zumindest konnte keinen Fehler entdecken … sondern (bei mir) an yad. :(

Ich habe eigene Scripte ausprobiert, und auch da kam nur ein leeres Fenster, egal welche uri an yad übergeben wurde ……

Welche Version läuft bei Dir ?

Zu den Wetteranzeigen:
z.b. gismeteo.com

...... wird auch von diesem Tool genutzt :

https://sourceforge.net/projects/gis-weather/

....... Dein 3. Beispiel werde ich als nächstes testen ... und berichten
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

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

Re: Der YAD-Praxis-Thread

Post by achim » Fri Nov 15, 2019 8:18 pm

Hallo secureIT,

was die YAD-Version angeht - bei mir läuft 039.0-1. Ich habe mir allerdings vor einiger Zeit auch mal ein Update gegönnt. Ursprünglich wurde LM 18.3 mit YAD 0.27.0-1.1 ausgeliefert. Es soll inzwischen schon eine Version 0.41 geben, gefunden habe ich allerdings nur die 0.40 unter https://sourceforge.net/projects/yad-di ... t/download. Gut möglich, dass dies der Grund für dein leeres Fenster ist.

Nachdem wir uns doch ziemlich intensiv austauschen hoffe ich mal, das sich noch andere Interessierte hierher verlaufen. Es gibt sie, das weiß ich aus einem anderen Linux-Forum (in dem du auch mal aktiv warst).

Bis dahin

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

Re: Der YAD-Praxis-Thread

Post by secureIT » Sun Nov 17, 2019 10:39 am

Ich habe dann mal die Version 40.01 via .deb installiert.

Resultat : das Fenster bleibt leer.

Dann habe ich dieses Ticket gefunden, in dem selber Fehler beschrieben wird :

https://sourceforge.net/p/yad-dialog/tickets/263/

Auch ich kann unter yad --help-all die option --browser oder --html nicht finden.
Scheint also so zu sein, dass diese Optionen auch bei mir per „default“ abgeschaltet sind.

Es wäre sehr nett von Dir, wenn Du den Inhalt Deiner yad.conf posten würdest – und auch welche Pakete bei Dir in Synaptik unter libwebkit als installiert geführt werden ?

Ich würde nämlich auch gerne das yad-web-Feature für neue Ideen nutzen können …...
In der Ruhe liegt die Kraft ! .......... The strenght is to be found in serenity !

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

Re: Der YAD-Praxis-Thread

Post by achim » Sun Nov 17, 2019 11:24 am

meine yad.conf:

Code: Select all


[General]
# Default dialog width
width=-1
# Default dialog height
height=-1
# Default timeout (0 for no timeout)
timeout=0
# Position of timeout indicator (top, bottom, left, right, none)
timeout_indicator=none
# Show remain seconds in timeout indicator
show_remain=false
# Combo-box in entry dialog is always editable
combo_always_editable=false
# Default terminal command (use %s for arguments placeholder)
terminal=xterm -e '%s'
# Default open command (use %s for arguments placeholder)
open_command=xdg-open '%s'
# Default date format (see strftime(3) for details)
date_format=%x
# Ignore unknown command-line options
ignore_unknown_options=true
# Maximum number of tabs in notebook
max_tab=100

[Print Settings]
reverse=false
print-pages=all
output-uri=file:///home/achim/Videos/Youtube-Videos/yad.pdf
collate=false
n-copies=1
printer=default
page-set=all
scale=100

libwebkit:
Attachments
libwebkit-neu.png

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

Re: Der YAD-Praxis-Thread

Post by achim » Sun Nov 17, 2019 11:28 am

Hallo secureIT,

ich habe mir erlaubt, dein Script "popup-translate01.sh" etwas zu modifizieren. Es ist jetzt möglich, die Übersetzung in eine PDF-Datei zu drucken. Sinnvoll erscheint mir dies z. B. bei Anleitungen etc. Dazu sind noch Programme wie LibreOffice (bzw. das Modul sOffice) und master-pdf-editor-5 erforderlich. Letzteres ist bei mir im Ordner /opt abgelegt. Außerdem habe ich einen Ordner ~./PDF angelegt. Darin befinden sich alle PDF-Dateien (auch die selbst erzeugten). Es ist natürlich auch möglich, mit anderen PDF-Programmen zu arbeiten. Dann müsste allerdings die Zeile 20 im Script entsprechend geändert werden. Den Code selbst rufe ich übrigens über eine Tastenkombination auf.

Bis demnächt mal.

Code: Select all


#!/bin/bash
# Name:popup-translate01.sh 
# Uebersetzt markierten Text in einem poup-Fenster in die Standard-Systemsprache
# zu installieren : yad xclip, translate-shell, libreOfiice, master-pdf-editor-5
# Befehl fuer Starter: bash -c ~/bin/popup-translate01.sh
#
# Die Position des yad-Popup-Fensters in geometry= ggf anpassen
#
function close_exit(){
    kill -s SIGUSR1 $YAD_PID
}
export -f close_exit
#
function druk(){
	xclip -out > /tmp/out.txt
	sleep 0.5
	soffice --headless --norestore --convert-to pdf /tmp/out.txt --outdir $HOME/PDF &>/dev/null
	sleep 0.5
	cd ~/PDF
	/opt/master-pdf-editor-5/masterpdfeditor5 out.pdf
	bash -c close_exit &>/dev/null
	exit 0
}
export -f druk
#
xclip -o | trans -e google -b \
| tee >(yad --center --button=gtk-print:"bash -c druk" --button=gtk-quit:1 --geometry=800x800 --window-icon="$HOME/.icons/Evernote16.png" \
	--title="  Übersetzung Englisch - Deutsch" --text-info --wrap) >(xclip -i)
#
	de9=$(echo $?)										# Exit-Code auswerten
	if [[ $dec == 1 ]] || [[ $dec == 70 ]] || [[ $dec == 252 ]]; then	# Taste Abbrechen gedrückt || Skript-Ende mit [X] || Skript-Ende mit [Esc]
	sleep 0.5
	echo "" | xclip >/dev/null
	bash -c close_exit &>/dev/null
	exit 0	
	fi
bash -c close_exit &>/dev/null
exit 0


Post Reply

Return to “Deutsch (German)”