Noch etwas awk im Spiel:
notify-send "$(xprop | grep WM_CLASS | awk '/WM_CLASS/{print $NF}' | sed 's/"//g')"Das auf ein Tastenkürzel legen. Und dann das Tastenkürzel nutzen und mit der Maus auf das Element klicken.
|
Anmeldungsdatum: Beiträge: Zähle... |
Noch etwas awk im Spiel: notify-send "$(xprop | grep WM_CLASS | awk '/WM_CLASS/{print $NF}' | sed 's/"//g')"Das auf ein Tastenkürzel legen. Und dann das Tastenkürzel nutzen und mit der Maus auf das Element klicken. |
||||||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: Zähle... |
...
Das mit "xyz" verstehe ich nicht. Was ist da gemeint? var1=1;var2=2;var3=3;var4=4 notify-send "Text mit $var1" "$var2 $var3 $var4" |
||||||
|
Anmeldungsdatum: Beiträge: Zähle... |
Soll einfach für Inhalt(mglw. verkettung),(also Text,Variablen,Befehle) stehen. Probiere es doch aus: notify-send Das ist ein Test notify-send Das ist "ein Test" notify-send "Das ist" "ein Test" notify-send "Das ist" nochmal "ein Test" notify-send Test "1\n2\n3" 2 davon sind OK. https://wiki.ubuntuusers.de/Benachrichtigungsdienst/ Nehme mal als Bsp. den Post von @trollsportverein(sorry @t., ist gerade im Sichtfeld) 2* notify-send "$(xprop | grep WM_CLASS | awk '/WM_CLASS/{print $NF}' | sed 's/"//g')" "$(xprop | grep WM_CLASS | awk '/WM_CLASS/{print $NF}' | sed 's/"//g')"also notify-send "xyz" "xyz"; ergibt 2 getrennte Abfragen/Ausgaben. Keine Ahnung, wie ich das anders hätte schreiben können. |
||||||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: Zähle... |
...
Aus einem Terminal liefert mir
genau den Programmnamen, der zum angeklickten Fenster gehört. So kann ich es aber noch nicht auf eine Taste legen, denn dann kommt Tastenkürzel »<Super>y« konnte nicht gestartet werden Kindprozess »QQ=($(xprop« konnte nicht ausgeführt werden (Datei oder Verzeichnis nicht gefunden). Wenn ich das alles aber in ein Skript stecke
und das per Damit ist die Hauptaufgabe aus meinem Fragenkomplex »Welches Programm hinter einem Bildschirmfenster steckt?« gelöst. Wahrscheinlich kann man mit ähnlichen Mitteln sogar das Kommando und den Pfad zum fraglichen Programm oder die PID oder die Version des Programms per Skript herausbekommen. Die Aufgabe, dafür zu sorgen, daß ein Dialog eines GUI-Anwendungsprogramms temporär in der englischen Sprachvariante erscheint, um in einer Fehlermeldung darauf bezugzunehmen, läßt sich vielleicht nicht so einfach realisieren. Mit diesen vielen Teilschritten haben wir ein nützliches Resultat! Danke an alle, die dazu beigesteuert haben! (Das mit der zusätzlichen Process Substitution habe ich nicht ganz verstanden - aber es wirkt!Formatierter Text Haben Sie ein Link auf eine Stelle, wo so was genauer erklärt wird?) |
||||||
|
Anmeldungsdatum: Beiträge: Zähle... |
notify-send "$(xprop | grep WM_CLASS | awk '/WM_CLASS/{print $NF}' | sed 's/"//g')" "$(ps -Flwwp $(xprop _NET_WM_PID | cut -d' ' -f3))"Bitte schön. Gibt Beides aus. Allerdings noch Provisorium, es muss momentan 2* geklickt werden und gefiltert/geschnitten werden muss auch noch. Kannst auch das von @seahawk1986 (für 1. Teil) einsetzen, momentan ist das von @trollsportverein drin. Für mich war's das für Heute. Mglw. erbarmt sich Jmd. |
||||||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 109 |
Danke für die Erklärung und das Link. Jetzt hab ich das verstanden. Das modifizierte awk-Beispiel braucht auch zwei Klicks auf das Fenster, um das es geht, eins für die erste, eins für die zweite Abfrage und Ausgabe. |
||||||
|
Anmeldungsdatum: Beiträge: 744 |
Manche in ps gelistet mit Pfad, manche ohne, wieso eigentlich? Jedenfalls, brauchbar ist es. notify-send "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)" |
||||||
|
Anmeldungsdatum: Beiträge: 11278 |
Da bin ich durcheinander gekommen -
ps listet standardmäßig den Befehl, der ausgeführt wurde, um das Programm zu starten - wenn das Programm im PATH ist, kann man es ohne Pfadangabe aufrufen, ansonsten muss man einen Pfad angeben. |
||||||
|
Anmeldungsdatum: Beiträge: 744 |
Stimmt. Also, ob mit Pfad gestartet, oder ohne. Danke!
Schalter um Pfad immer zu zeigen scheint es offb. nicht zu geben. Notfalls könnte man vllt. which <anwendung> integrieren, aber das deckt auch nicht alle Fälle ab. |
||||||
|
Anmeldungsdatum: Beiträge: 744 |
notify-send -t 10000 -i dialog-information "$(xprop | grep WM_CLASS | awk '/WM_CLASS/{print $NF}' | sed 's/"//g') --> $(which $(xprop | grep WM_CLASS | awk '/WM_CLASS/{print $NF}' | sed 's/"//g' | tr '[:upper:]' '[:lower:]'))" "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)"
3* klicken, $2 von WM_CLASS momentan 2* um zu Testen – geä. |
||||||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 109 |
Danke für den tollen Vorschlag! Als bash-Anfänger habe ich einen Nachmittag gebraucht, zu verstehen, wie er funktioniert. Dabei habe ich was dazugelernt.
Oben haben Sie ein Beispiel mit Zeilenumbrüchen gezeigt. Das brachte mich auf die Idee, alles vor dem Programmaufruf wegzuschneiden und dann im Ergebnis die Leerzeichen durch a@w:~$ echo "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)" | cut -d' ' -f18- | sed -r -e 's/ /\n/g' /opt/libreofficedev7.6/program/soffice.bin --writer --splash-pipe=5 a@w:~$ Hier erscheinen die einzelnen Ausgaben schön untereinander. Wenn ich aber Wenn ich das Ergebnis all dieser Bemühungen per Pipe an a@w:~$ echo "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)" | cut -d' ' -f18- | sed -r -e 's/ /\n/g' | notify-send No summary specified. a@w:~$ Dummerweise ist "summary" zwar in a@w:~$ echo "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)" | cut -d' ' -f18- | sed -r -e 's/ /\n/g' | xargs notify-send Unbekannte Option --writer a@w
a@w:~$ echo "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)" | cut -d' ' -f18- | sed -r -e 's/ /\n/2g' /opt/libreofficedev7.6/program/soffice.bin --writer --splash-pipe=5 a@w:~$ Mit a@w:~$ echo "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)" | cut -d' ' -f18- | sed -r -e 's/ /\n/2g' | xargs notify-send Unbekannte Option --writer a@w:~$ echo "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)" | cut -d' ' -f18- | sed -r -e 's/ /\n/2g' | notify-send No summary specified. a@w:~$ |
||||||
|
Anmeldungsdatum: Beiträge: 744 |
| xargs -I{} notify-send {}Frage nicht, nicht auf meinem Mist gewachsen. |
||||||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 109 |
Das habe ich damit (erst mal mit a@w:~$ echo "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)" | cut -d' ' -f18- | sed -r -e 's/ /\n/g' # das liefert mehrere Zeilen
/opt/libreofficedev7.6/program/soffice.bin
--writer
file:///home/a/Schreibtisch/_Xubuntu_Versuche.odt
--splash-pipe=5
a@w:~$ echo "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)" | cut -d' ' -f18- | sed -r -e 's/ /\n/g' | xargs -I{} notify-send {} # Fehlermeldungen!
Unbekannte Option --writer
Unbekannte Option --splash-pipe=5
a@w:~$ Der zweite Versuch hat oben rechts zwei separate Meldungen erzeugt.
Wahrscheinlich habe ich Ihren Vorschlag nicht richtig verstanden. In Ich habe deshalb versucht, den Pfad zum Programm in String a@w:~$ QQ=($(echo "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)" | cut -d' ' -f17-))
a@w:~$ echo ${QQ[@]}
/opt/libreofficedev7.6/program/soffice.bin --writer file:///home/a/Schreibtisch/_Xubuntu_Versuche.odt --splash-pipe=5
a@w:~$ Q1=${QQ[0]} # 1. Element
a@w:~$ echo $Q1
/opt/libreofficedev7.6/program/soffice.bin
a@w:~$ unset QQ[0] # 1. Element. entf, die anderen bleiben
a@w:~$ echo $QQ[*] | sed -r -e 's/ /\n/g' # der ganze Rest umgebrochen
[*]
a@w:~$ echo ${QQ[*]} | sed -r -e 's/ /\n/g' # der ganze Rest umgebrochen
--writer
file:///home/a/Schreibtisch/_Xubuntu_Versuche.odt
--splash-pipe=5
a@w:~$ notify-send $Q1 # zeigt Benachr. mit dem Pfad zum Prog.
a@w:~$ notify-send $QR # das geht nicht
Unbekannte Option --writer
a@w:~$ notify-send $Q1 $QR # und das leider auch nicht!
Unbekannte Option --writer
a@w:~Wie bekommt man das denn dann nun richtig an |
||||||
|
Anmeldungsdatum: Beiträge: 744 |
Bsp. echo "$(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1)" | xargs -I{} notify-send {}
echo $(ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1) | xargs -I{} notify-send {}
ps $(xprop _NET_WM_PID | cut -d' ' -f3) | tail -1 | xargs -I{} notify-send {}Würde Dir empfehlem einzelne Script Fragen so kurz wie mögl. zu halten und _hier_ zu stellen. |
||||||
|
Anmeldungsdatum: Beiträge: 744 |
# |