Conky - Bastel - Display-Auflösung anzeigen  [Solved]

Message
Author
User avatar
gosia
Posts: 1157
Joined: Sun Apr 28, 2019 3:43 pm

Re: Conky - Bastel - Display-Auflösung anzeigen

#31 Post by gosia »

Hallo loik,
loik wrote: Fri Dec 06, 2024 1:20 am So jedenfalls ging es nicht :
das Kommando muss schon mit execi ausgeführt werden
https://wiki.gentoo.org/wiki/Conky/Guid ... _variables
also z.B.

Code: Select all

${color3}${alignr}${color}${execi 300 inxi -c0 -y -1 -Gxx | grep -Ei --color=never -o "model.*:.*[0-9]{3,}x[0-9]{3,}" }
300 ist das Intervall in Sekunden, in dem das Kommando ausgeführt wird. Musst also selbst überlegen, welches Intervall dir passt, oder ob es nicht ausreicht, das Kommando nur einmal beim Start auszuführen (wie oft wechselst Du die Monitore im laufenden Betrieb?). In dem Fall reicht ein exec ohne Intervallangabe.

viele Grüsse gosia

loik
Posts: 2314
Joined: Wed Dec 12, 2018 2:01 pm

Re: Conky - Bastel - Display-Auflösung anzeigen

#32 Post by loik »

Hallo, Gosia.

Was man an einem Conky nicht alles lernen kann .....
Danke für den aufschlussreichen Link.

Mir lag die Frage ohne hin schon auf den Fingerspitzen, was es denn mit den Zahlen auf sich habe.
Jetzt verstanden :happy:
In dem Fall reicht ein exec ohne Intervallangabe
Naja, wenn da gar keine Zahl steht, wird die gesamte Zeile nicht mehr angezeigt.
Eine 0 ( Null ) muss es schon sein, sonst geht es eben gar nicht.

Diese Scrip-Zeile funktioniert aber grundsätzlich sehr gut.
Ich habe da noch mit rumgespielt.
Wenn ich am Anfand "model" entferne und nicht ersetze, wird die Info-Zeile für das Conky so lang, dass wieder ein Teil der Angaben im Off verschwindet.
Ebenso, wenn ich "monitor" eintrage.
Aber mit "pos" erhalte ich ein Ergebnis in meinem Sinne.

Code: Select all

   ${color3}Monitors & Resolutions  -  nach Model:
${color3}${color}${execi 0 inxi -c0 -y -1 -Gxx | grep -Ei --color=never -o "model.*:.*[0-9]{3,}x[0-9]{3,}" }

   ${color3}Monitors & Resolutions  -  nach Position:
${color3}${color}${execi 300 inxi -c0 -y -1 -Gxx | grep -Ei --color=never -o "pos.*:.*[0-9]{3,}x[0-9]{3,}" }

   ${color3}Monitors & Resolutions  -  ohne spezifk, nur .*:
${color3}${color}${execi 300 inxi -c0 -y -1 -Gxx | grep -Ei --color=never -o ".*:.*[0-9]{3,}x[0-9]{3,}" }
Conky__Monitor-Infos_in_drei_Varianten.png
Die Infos werden zwar nicht in meiner in meiner Lieblingsreihenfolge geschrieben, aber gut verständlich.
( dpi. noch hinten dran hängen möglich ? )

Wenn in der 4 Monitor-Konstellation der AGO-Samsung nicht alles durcheinander bringt, könnte es so für mich in MX-23 gelöst sein.
Das finde ich morgen heraus.
Danke.

Bleibt dann noch die Herausforderung MX-21
You do not have the required permissions to view the files attached to this post.

User avatar
gosia
Posts: 1157
Joined: Sun Apr 28, 2019 3:43 pm

Re: Conky - Bastel - Display-Auflösung anzeigen

#33 Post by gosia »

Hallo loik,
oha, jetzt wird es schwierig für mich. Bei meiner inxi-Ausgabe kommt pos gar nicht vor. Wenn ich also dein Kommando nehme:

Code: Select all

grep -Ei --color=never -o "pos.*:.*[0-9]{3,}x[0-9]{3,}"
wird bei mir gar nichts ausgegeben. Das fehlende "pos" bei der inxi-Ausgabe liegt sicher daran, dass ich nur einen Monitor habe, und da machen Angaben wie "pos. left" oder "pos. primary" keinen Sinn. Insofern kann ich dein Kommando bei mir nicht zum Testen benutzen, sondern muss bei meinem

Code: Select all

grep -Ei --color=never -o "model.*:.*[0-9]{3,}x[0-9]{3,}"
bleiben. Das sieht dann bei mir in Conky so aus:

Image

Aber das ist nicht so tragisch, da wir für MX-21 sowieso zu einem Skript wechseln müssen, da kann ich dann meine Zeile mit deiner tauschen, ween ich es nicht gerade vergesse, dann müsstest Du es selbst erledigen ;)
Nur Sonderwünsche wie "Lieblingsreihenfolge" werden dann schwierig und mit
loik wrote: Sat Dec 07, 2024 3:15 am Wenn in der 4 Monitor-Konstellation der AGO-Samsung nicht alles durcheinander bringt
kann ich im Moment nichts anfangen. Wie sieht es denn mit dem AGO aus? Da wäre es hilfreich, wenn Du mal die Ausgabe von

Code: Select all

inxi -c0 -y -1 -Gxx
postest (mit allen vier Monitoren).
Details wie
loik wrote: Sat Dec 07, 2024 3:15 am wenn da gar keine Zahl steht, wird die gesamte Zeile nicht mehr angezeigt.
können so nicht stimmen, da ist wohl an dein Syntax was verkehrt, aber das lasse ich einach mal so stehen, ob "exec" oder "execi 0", ist erstmal unbedeutend.

viele Grüsse gosia

loik
Posts: 2314
Joined: Wed Dec 12, 2018 2:01 pm

Re: Conky - Bastel - Display-Auflösung anzeigen

#34 Post by loik »

Hallo, Gosia.
da ist wohl an dein Syntax was verkehrt, aber das lasse ich einach mal so stehen, ob "exec" oder "execi 0"
Ja, mein Fehler.
wenn man execi ohne nachfolgende Zahl verwendet, geht es eben nicht.
Also entweder Zeitangabe im Zahlenwert nach execi, wenigsten 0
Oder exec, dann geht es auch ohne Zahlenangabe.

Und Funktioniert übrigens trotzdem in Echtzeit.
Sowohl das An- oder Abstecken eines Monitors, als auch das Positionsgeschiebe in den Anzeige-Einstellungen wurden prompt im Conky übernommen, selbst wenn es nur mit exec geschrieben war.

Blöd, dass ich zu meinem Conky-Screenshot in Post #33. nicht auch die Terminal-Ausgaben gepostet habe.

Aber, Gottverdammich, was für chaotische, willkürliche Variablen.
Das macht es ja quasi undefinierbar.

Ja, es ist wie von dir beobachtet, wenn nur ein Monitor, dann zeigt die mit "pos" geschriebenen Scriptzeile gar nix an.

Habe dass mal hier an einen Amilo-Notebook nachgestellt.
Einmal nur das Nootbook.

Code: Select all

mx-23-64:~
$ inxi -c0 -y -1 -Gxx | grep -Ei --color=never -o "pos.*:.*[0-9]{3,}x[0-9]{3,}"
Wie zu sehen, sieht man nichts.

Und einmal mit angeschlossenem Monitor:

Code: Select all

mx-23-64:~
$ inxi -c0 -y -1 -Gxx | grep -Ei --color=never -o "pos.*:.*[0-9]{3,}x[0-9]{3,}"
pos: primary,bottom-r model: Seiko Epson 0x314b res: 1680x945
pos: top-left model: Digital TV res: 1920x1080
ganz hübsch, auch in dieser Reihenfolge.

Dann habe ich es mal durchgespielt, an dem 4-Monitor-Setup des HP-PCs.
Wenn ich da aber nur Zwei Monitore dran habe, dann sieht es eben so schön Informativ aus, wie am Amilo:

Code: Select all

mx-23-64:~
$ inxi -c0 -y -1 -Gxx | grep -Ei --color=never -o "pos.*:.*[0-9]{3,}x[0-9]{3,}"
pos: right model: BenQ FP92Wa res: 1440x900
pos: primary,left model: Acer SB241Y A res: 1920x1080
Wenn ich aber doch die vier Monitore nutze, dann wird es so öde reduziert angegeben:

Code: Select all

mx-23-64:~
$ inxi -c0 -y -1 -Gxx | grep -Ei --color=never -o "pos.*:.*[0-9]{3,}x[0-9]{3,}"
pos: 1-4 model: BenQ FP92Wa res: 1440x900
pos: 2-2 model: Acer K242HL res: 1920x1080
pos: 3-1 model-id: AGO 0x0001 res: 1440x900
pos: primary,1-3 model: Acer SB241Y A res: 1920x1080


Meinen Versuchen zu Folge, macht es aber zum Glück keinen Unterschied, ob ich SysVenit oder SystemD nutze.

Also, der AGO an sich, sah mir unproblematisch aus.

Code: Select all

mx-23-64:~
$ inxi -c0 -y -1 -Gxx
Graphics:  Device-1: Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-7 ports: active: DP-1,HDMI-A-2 empty: DP-2,HDMI-A-1,VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0152
           Device-2: DisplayLink USB3.0 Dual Video Dock type: USB driver: cdc_ncm,snd-usb-audio,usbfs bus-ID: 2-2.1:4 chip-ID: 17e9:4307
           Display: x11 server: X.Org v: 1.21.1.7 compositor: xfwm v: 4.18.0 driver: X: loaded: modesetting dri: crocus gpu: evdi,i915 display-ID: :0.0 screens: 1
           Screen-1: 0 s-res: 6720x1085 s-dpi: 96
           Monitor-1: DP-1 pos: 1-4 model: BenQ FP92Wa res: 1440x900 dpi: 90 diag: 472mm (18.6")
           Monitor-2: DVI-I-1 mapped: DVI-I-1-1 pos: 2-2 model: Acer K242HL res: 1920x1080 dpi: 92 diag: 609mm (24")
           Monitor-3: DVI-I-2 mapped: DVI-I-2-2 pos: 3-1 model-id: AGO 0x0001 res: 1440x900 dpi: 143 diag: 378mm (14.9")
           Monitor-4: HDMI-A-2 mapped: HDMI-2 pos: primary,1-3 model: Acer SB241Y A res: 1920x1080 dpi: 93 diag: 604mm (23.8")
           API: OpenGL v: 4.2 Mesa 22.3.6 renderer: Mesa Intel HD Graphics 2500 (IVB GT1) direct-render: Yes

User avatar
gosia
Posts: 1157
Joined: Sun Apr 28, 2019 3:43 pm

Re: Conky - Bastel - Display-Auflösung anzeigen

#35 Post by gosia »

Hallo loik,
es wird langsam ernst und wir müssen erstmal ein Miniskript einbauen. Mini deshalb, um zu sehen, ob es überhaupt funktioniert. Ws macht sich immer leichter bei einem Skript aus 10 Zeilen Fehler auszuschliessen, als bei einem mit 100 Zeilen. Es geht also erstmal darum, ob so überhaupt.
Speichere also dieses Skript mit einem passenden Namen an einem passenden Platz ab, z.B. ins Verzeichnis ~/.local/bin oder ~/bin
Als Skriptname schlage ich monitor.sh vor, aber das spielt keine Rolle. Ausführbar machen nicht vergessen

Code: Select all

chmod +x monitor.sh
Dann ersetze die betreffende Conky-Zeile

Code: Select all

${color3}${color}${execi 0 inxi -c0 -y -1 -Gxx | grep -Ei --color=never -o "model.*:.*[0-9]{3,}x[0-9]{3,}" }
durch diese Zeile

Code: Select all

${color3}${alignr}${color}${execi 60 ~/bin/monitor.sh }
Wenn Du ein anderes Verzeichnis und/oder einen anderen Skriptnamen gewählt hast musst Du ~/bin/monitor.sh entsprechend anpassen. "execi 60" scheint mir für Testzwecke ein vernünftiger Wert zu sein, d.h. spätestens nach einer Minute sollten sich Änderungen in monitor.sh bemerkbar machen. Wenn das erstmal in Conky was anzeigt, können alle Anpassungen nur noch im Skript monitor.sh vorgenommen werden.

Code: Select all

#!/usr/bin/bash
# monitor.sh
# zeigt in Conky alle angeschlossenen Monitore u. deren Auflösung an
# Versionsverwaltung src
# 08.12.2024
Revision='0.0.2'

typeset -i Version
Version=$(cat /etc/mx-version | cut -c 4-5)  # mx-version: MX-23.4_x64 Libretto...
case $Version in
  23) inxi -c0 -y -1 -Gxx | grep -Ei --color=never -o "model.*:.*[0-9]{3,}x[0-9]{3,}" ;;
  *) echo "Version $Version ist noch in Arbeit" ;;
esac
exit
Im Skript selbst befinden sich noch überflüssige Zeilen, die nur für mich zur Kontrolle dienen, wie z.B. Revision='0.0.2' die stören aber nicht. Kann man auch zur Fehlerdiskussion benutzen, so in etwa "in Rev. 1.2.3 wird plötzlich eine Zeile nicht mehr angezeigt, die in 1.2.1 noch dabei war"
loik wrote: Sun Dec 08, 2024 5:05 am Wenn ich aber doch die vier Monitore nutze, dann wird es so öde reduziert angegeben:

Code: Select all

$ inxi -c0 -y -1 -Gxx | grep -Ei --color=never -o "pos.*:.*[0-9]{3,}x[0-9]{3,}"
pos: 1-4 model: BenQ FP92Wa res: 1440x900
pos: 2-2 model: Acer K242HL res: 1920x1080
1-4 oder 2-2 ist so eine Art Code für die Positionen. Die man-Page für Conky sagt dazu:
"Position is text (left, center, center-l, center-r, right, top, top-left, top-center, top-right, middle, middle-c, middle-r, bottom, bottom-l, bottom-c, bottom-r) if monitors fit within the following grids: 1x2, 1x3, 1x4, 2x1, 2x2, 2x3, 3x1, 3x2, 3x3. If layout not supported in text, uses [row-nu]-[column-nu] instead to indicate the monitor's position in its grid."

Offenbar trifft im Moment der letzte Satz zu "Wenn das Layout im Text nicht unterstützt wird...", warum auch immer. Muss ich mal untersuchen, könnte sich verbessern, wenn man das Ausgabeformat von inxi anpasst. Aber solche Details später, sonst verlieren wir uns darin. Muss ja auch noch für MX-21 angepasst werden.

viele Grüsse gosia

loik
Posts: 2314
Joined: Wed Dec 12, 2018 2:01 pm

Re: Conky - Bastel - Display-Auflösung anzeigen

#36 Post by loik »

Hallo, Gosia.

Ja, die Funktionalität deines Scriptes kann ich bestätigen.
In MX-23 wird es ebenso im Conky angezeigt, wie hier im Terminal zusehen.

Code: Select all

mx-23-64:~
$ ~/.conky/MX-Asq/Zusatz-Script_fuer_Monitor-Anzeigen_im_Conky/monitor.sh
model: Idek Iiyama AS4821 res: 1280x1024
model: Lenovo LEN L24e-20 res: 1920x1080
Aber vorerst wieder nur für den Zwei-Monitor-Betrieb.
Für die Ergebnisse der Konstellation mit 4 Monitore, muss ich leider wieder auf das Wochenende vertrösten.

Das Script "funktioniert" aber so gar in MX-21.
Dort wurde mir freundlich mitgeteilt, das Version 21 noch in Arbeit sei. ;)


Und, ja, wenn ich im Script etwas ändere und speichere, wird diese Änderung 60 Sekunden später im Conky aktualisiert.
Funktioniert.

Jetzt bin ich gespannt, wie du diese Variablen von 1 bis X Monitore oder Modellen inkl. Positionsangabe im Script zusammenführst.
Wenn das überhaupt machbar ist.

User avatar
gosia
Posts: 1157
Joined: Sun Apr 28, 2019 3:43 pm

Re: Conky - Bastel - Display-Auflösung anzeigen

#37 Post by gosia »

Hallo loik,
ok, nächste Version:

Code: Select all

#!/usr/bin/bash
# monitor.sh
# zeigt in Conky alle angeschlossenen Monitore u. deren Auflösung an
# Versionsverwaltung src
# 09.12.2024
Revision='0.1.0'

echo
monlog="/tmp/monitor.log"
inxi -c0 -y -1 -Gxx | awk '/Monitor-[0-9]*/ { sub(" *",""); print $0 } ' > $monlog
typeset -i Version
Version=$(cat /etc/mx-version | cut -c 4-5)  # mx-version: MX-23.4_x64 Libretto...
case $Version in
  23)
    if grep -q " pos: " $monlog
    then
      grep -Ei --color=never -o "pos.*:.*[0-9]{3,}x[0-9]{3,}" $monlog
    else
      grep -Ei --color=never -o "model.*:.*[0-9]{3,}x[0-9]{3,}" $monlog
    fi
    ;;
   *) echo "Version $Version ist noch in Arbeit" ;;
esac
exit
wenn irgendwas nicht funktioniert - und sei es nur dass nicht alle Monitore angezeigt werden, oder eine falsche (zu lange) Ausgabe erfolgt, bitte die Ausgabe von

Code: Select all

inxi -c0 -y -1 -Gxx
und eventuelle Fehlermeldungen posten. Letztere bekommst Du wohl nur, wenn Du das Skript von Hand aufrufst:

Code: Select all

~/.conky/MX-Asq/Zusatz-Script_fuer_Monitor-Anzeigen_im_Conky/monitor.sh
Und um MX-21 in Angriff nehmen zu können brauche ich auch unbedingt die dortige Ausgabe von

Code: Select all

inxi -c0 -y -1 -Gxx
am besten mit allen vier Monitoren.

viele Grüsse gosia
PS.
"Zusatz-Script_fuer_Monitor-Anzeigen_im_Conky" -> du liebst lange Namen ;)

loik
Posts: 2314
Joined: Wed Dec 12, 2018 2:01 pm

Re: Conky - Bastel - Display-Auflösung anzeigen

#38 Post by loik »

Hallo, Gosia.
"Zusatz-Script_fuer_Monitor-Anzeigen_im_Conky" -> du liebst lange Namen
Oh ja.
Deshalb leide ich nun auch, seit mit xfce-18.4, sehr darunter, dass in Thunar , in der Listenansicht, Datein- und Ordnernamen, ab einer bestimmten Länge, nur noch gekürzt dargestellt werden.
Im Mittelteil wird eine unbestimmte Anzahl an Zeichen mit drei Pünktchen ersetzt.
Damit ist meine gesamte Informationspolitik zerstört ( in Thunar ).
Ich brauche so eine Lange Bezeichnung, wie in diesem Fall, weil ich in zwei Jahren nicht mehr weiß, warum da ein bin-Ordner die Ansicht des Home-Verzeichnisses stört oder was es mit einem Versteckten bin-Ordner auf sich hat bzw. wozu monitor.sh über haupt gut ist.
Oder andersherum, wo war noch gleich das Script, welches zum Conky gehört und wie hieß es denn nur ....usw.
Da sind die langen Eselsbrücken hilfreich, auch für die Verwandschaft, die mit der von mir konfigurierten Systeme leben muss ....


Gut, zum Thema:
Das scheint nun ganz gut zu Funktionieren.

Hier erst noch mal die Ausgabe deines ersten Sripts an den vier Monitoren:

Code: Select all

mx-23-64:~
$ ~/.conky/MX-Asq/Zusatz-Script_fuer_Monitor-Anzeigen_im_Conky/monitor.sh
Monitor-1: DP-1 pos: 1-4 model: BenQ FP92Wa res: 1440x900
Monitor-2: DVI-I-1 mapped: DVI-I-1-1 pos: 2-2 model: Acer K242HL res: 1920x1080
Monitor-3: DVI-I-2 mapped: DVI-I-2-2 pos: 3-1 model-id: AGO 0x0001 res: 1440x900
Monitor-4: HDMI-A-2 mapped: HDMI-2 pos: primary,1-3 model: Acer SB241Y A res: 1920x1080
Mit deinem neuen Sript, sieht es aufgeräumter aus:

Code: Select all

mx-23-64:~
$ ~/.conky/MX-Asq/Zusatz-Script_fuer_Monitor-Anzeigen_im_Conky/monitor.sh

pos: 1-4 model: BenQ FP92Wa res: 1440x900
pos: 2-2 model: Acer K242HL res: 1920x1080
pos: 3-1 model-id: AGO 0x0001 res: 1440x900
pos: primary,1-3 model: Acer SB241Y A res: 1920x1080
Ich konnte nicht finden, was ich im Sript ändern muss, un die Leerzeile loszuwerden.
Abgesehen davon, sieht das doch nun ganz gut bzw. fertig aus.
Das die Positionsbeschreibung bei mehr als zwei Monitoren von link, rechts, oben unten umschaltet auf die Auskunft 1-4, 3-1 usw. ist ja wohl nicht
änderbar.
Das besonders schöne aber ist, dass die Auskunft nun auch funktioniert, wenn das System an nur einen Monitor läuft.

Code: Select all

]mx-23-64:~
$ ~/.conky/MX-Asq/Zusatz-Script_fuer_Monitor-Anzeigen_im_Conky/monitor.sh

model: Seiko Epson 0x314b res: 1680x945

Code: Select all

]mx-23-64:~
$ ~/.conky/MX-Asq/Zusatz-Script_fuer_Monitor-Anzeigen_im_Conky/monitor.sh

pos: primary,bottom-r model: Seiko Epson 0x314b res: 1680x945
pos: top-left model: Digital TV res: 1920x1080
Super.

Allerdings, um diese langzeilige, sehr schön informative Auskunft,

Code: Select all

pos: primary,bottom-r model: Seiko Epson 0x314b res: 1680x945
Unbeschnitten in ganzer Länge betrachten zukönnen, musste im Conky-Sript die maximale Breite angepasst werden, von 270 auf 300.

Code: Select all

-- Minimum size of text area
--minimum_size 230 0
--maximum_width 200
	maximum_width = 270,

Code: Select all

maximum_width = 300,
Dann passte es sehr gut in die Ansicht.
Demnach ist dies nun ein schönes Ergebnis, für MX-23.
Danke.

MX-21.
Schau noch mal in Post #22.
Wenn die dortigen Infos nicht reichen, poste ich gerne noch mal Ergänzungen.

User avatar
gosia
Posts: 1157
Joined: Sun Apr 28, 2019 3:43 pm

Re: Conky - Bastel - Display-Auflösung anzeigen

#39 Post by gosia »

Hallo loik,
loik wrote: Thu Dec 12, 2024 2:54 am was ich im Sript ändern muss, un die Leerzeile loszuwerden.
das dürfte dieses echo sein:
gosia wrote: Mon Dec 09, 2024 4:32 pm

Code: Select all

Revision='0.1.0'
echo <---
aber ich glaube, das kann man nicht weglassen, sonst verschiebt sich die Anzeige in Conky. Aber probe mal es auszukommentieren, vielleicht hilft es ja.
loik wrote: Thu Dec 12, 2024 2:54 am musste im Conky-Sript die maximale Breite angepasst werden, von 270 auf 300
du kannst auch die Schriftgrösse verkleinern, z.B.

Code: Select all

font = 'Liberation Mono:size=8'
oder als template

Code: Select all

template0 = [[${font Liberation Sans:bold:size=8}${color2}\1 ${color3}${hr 2}${font}]]
je nachdem, was Du in Conky benutzt, da wird die Ausgabe auch schmaler.
Das erstmal als Zwischenanregung, später mehr...

viele Grüsse gosia

loik
Posts: 2314
Joined: Wed Dec 12, 2018 2:01 pm

Re: Conky - Bastel - Display-Auflösung anzeigen

#40 Post by loik »

Hallo, Gosia.

Ja, die beiden Zeilen rausnehmen hat funktioniert.
Top.

musste im Conky-Sript die maximale Breite angepasst werden, von 270 auf 300
Wollte gar nicht klagen, sondern meine Freude darüber mitteilen, wie leicht sich diese kleine Ungereimtheit lösen ließ.

Schrifgröße, wäre natürlich auch gegangen, wie im vorherigen Conky-Bastelthema bereits geübt.

Also, für MX-23 ist es nun tippitoppi chic. :spinning:

Reichen die Infos aus Post #22 ?

Post Reply

Return to “Deutsches Forum”