ubuntuusers.de

Bash: Monitorauflösung unter Wayland

Status: Ungelöst | Ubuntu-Version: Kubuntu 25.10 (Questing Quokka)
Antworten |

glaskugel

Anmeldungsdatum:
8. Juli 2010

Beiträge: 4224

Unter X11 mache ich folgendes:

monitor=$(xrandr | grep '*' | awk '{print $1}')

Unter Wayland stehe ich etwas an, wie man die Auflösung des aktiven Monitors herausfindet.

kscreen-doctor -o | grep '*' | awk '{print $4}'

Das müsste man noch weiter überlegen, aber kann ich überhaupt sicher sein, dass das immer $4 ist.

Ich würde das auch gerner allgemeiner formulieren, sodass es auch mit gnome passt.

Wenn das dann klappt, dann wäre auch noch die Größe des aktuellen aktiven Fensters interessant.

schwarzheit Team-Icon

Supporter
Avatar von schwarzheit

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 7936

Bitte richtig fragen lesen und beachten.

Ist das wieder nur ein Teilstück eines eigentlichen völlig anderen Problems?

Und ich sehe wieder keine Fragestellung oder Problem sondern nur Feststellungen.

glaskugel

(Themenstarter)

Anmeldungsdatum:
8. Juli 2010

Beiträge: 4224

wie man die Auflösung des aktiven Monitors herausfindet.

wenn man das nicht als Frage verstehen kann, dann wird man zum Thema auch nichts beiragen können.

Deine Bemerkungen sind nur Mobbing und du widersprichst dir bei deinen Fragen selbst bzgl. separater Threads.

Mein Problem ist ein eindeutiges Ergebnis mit einem Bash-Befehl zu bekommen. Auch mit "wayland-info" ist das (für mich) nicht so einfach.

Also bitte wie komme ich unter Wayland zu einem eindeutigen Ergebnis "3840x2160" bei einem UHD-Monitor, egal welches Ubuntu ich verwende? Andere Dinge gehören nicht hierher und wären ein eigenes Thema.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5909

Nimm dies:

kscreen-doctor -o | awk '/\*/{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10}' | sed -e 's/ /\n/g' | sed -e '/\*/!d' | sed -e 's/.*\://g;s/\*//g;s\!\\g'

Funktionerts?

Edit, kürzer:

kscreen-doctor -o | awk '/\*/{print $FS}' | sed -e 's/ /\n/g' | sed -e '/\*/!d' | sed -e 's/.*\://g;s/\*//g;s\!\\g'

glaskugel

(Themenstarter)

Anmeldungsdatum:
8. Juli 2010

Beiträge: 4224

Vielen Dank!

$ kscreen-doctor -o | awk '/\*/{print $FS}' | sed -e 's/ /\n/g' | sed -e '/\*/!d' | sed -e 's/.*\://g;s/\*//g;s\!\\g'
3840x2160@60

Passt nicht ganz, da müssten man noch @60 wegbekommen. Schon machbar, aber ziemlich aufwendig bis man da hin kommt.

Wenn es für KDE einen einfachen(!) Befehl gibt, dann kann ich mir diesen schon vorstellen. Aber dein Beispiel ist nun doch etwas komplexer.

Mit wayland-info muss man aus diesem Bereich die Auflösung heraus arbeiten:

...
mode:
		width: 3840 px, height: 2160 px, refresh: 60.000 Hz,
		flags: current
interface: 'wp_drm_lease_device_v1', 
...

Gesamter Output ist angehängt.

Die gesamte Ausgabe unter gnome und plasma ist nicht(!) ident. Ich denke da kitzelt man das leichter raus.

$ cat wayland-info-kde.txt | grep -E 'width:|height:'
		logical_width: 1536, logical_height: 864
	physical_width: 597 mm, physical_height: 336 mm,
		width: 3840 px, height: 2160 px, refresh: 60.000 Hz,

Das stellt sich dann die Frage, wie man Ausgabeänderungen abfangen kann? Filtern nach px und/oder refresh? Ergebnis sollte sein 3840x2160

wayland-info-gnome.txt (19.2 KiB)
Download wayland-info-gnome.txt
wayland-info-kde.txt (22.7 KiB)
Download wayland-info-kde.txt
kscreen-doctor.txt (1.7 KiB)
Download kscreen-doctor.txt

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5909

Wenn die Frequenz nicht mit dabei sein soll, dann machts das sogar noch einfacher:

kscreen-doctor -o | awk '/\*/{print $FS}' | sed -e 's/ /\n/g' | sed -e '/\*/!d' | sed -e 's/.*\://g;s/\@.*//g;'

Und mit dem Beispiel wayland-info-kde.txt:

cat wayland-info-kde.txt | awk '/width:|height:/{print $FS}' | sed -e 's/,/\n/g' | sed -e '/logical/d;/physical/d;/refresh:/d;s/.*\: //g;s/\ px//g' | xargs | sed 's/\ /x/g'

glaskugel

(Themenstarter)

Anmeldungsdatum:
8. Juli 2010

Beiträge: 4224

~$ time wayland-info | awk '/width:|height:/{print $FS}' | sed -e 's/,/\n/g' | sed -e '/logical/d;/physical/d;/refresh:/d;s/.*\: //g;s/\ px//g' | xargs | sed 's/\ /x/g'
3840x2160

real    0m0,018s
user    0m0,005s
sys     0m0,016s

Danke, ist auch von der Geschwindigkeit brauchbar, aber vielleicht gibt es doch noch einen einfacheren Befehl. Vielleicht unter zu Hilfenahme von EDID? Ich brauche das als User und in demsg steht auch nichts bzgl. EDID. Unter /proc sehe ich das Problem, dass ich nicht vorhersagen kann, ob HDMI oder DP.

~$ wlr-randr --output 
compositor doesn't support wlr-output-management-unstable-v1

Meldungen dieser Art gibt es sehr oft unter "Wayland-Ubuntu".

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5909

Dann guck mal rein ins EDID:

sudo get-edid | parse-edid

Mein Monitor zeigt da die Auflösung in Pixel, die ich benutze, nicht an.

glaskugel

(Themenstarter)

Anmeldungsdatum:
8. Juli 2010

Beiträge: 4224

	Horizsync 27-135
	VertRefresh 24-76
	# Maximum pixel clock is 600MHz
	#Not giving standard mode: 1920x1080, 60Hz
	#Not giving standard mode: 1280x720, 60Hz
	#Not giving standard mode: 1280x800, 60Hz
	#Not giving standard mode: 1280x1024, 60Hz
	#Not giving standard mode: 1600x900, 60Hz
	#Not giving standard mode: 1680x1050, 60Hz

Also irgendwas zeigt der schon an Auflösungen, aber nicht die, die ich verwende. Ich habe aber keine Ahnung, was man da mit Optionen was heraus holen kann. War ja nur eine Idee.

gerold123

Avatar von gerold123

Anmeldungsdatum:
18. April 2006

Beiträge: 1391

Wohnort: /Wild/Eastern/Europe

glaskugel schrieb:

Also irgendwas zeigt der schon an Auflösungen, aber nicht die, die ich verwende.

Ist das nicht ausreichend?

tux@fedora:~$ echo $XDG_SESSION_TYPE 
wayland
tux@fedora:~$ xrandr --prop
Screen 0: minimum 16 x 16, current 1536 x 864, maximum 32767 x 32767
HDMI-A-1 connected primary 1536x864+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
        RANDR Emulation: 1 
        non-desktop: 0 
                supported: 0, 1
   1536x864      74.86*+
   1152x864      74.82  
   1024x768      74.67  
   800x600       74.91  
   ....

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1449

Ergebnis sollte sein 3840x2160

Mach es doch mit einem "sed" Befehl:

$ cat wayland-info-gnome.txt | sed -nE '/refresh:/ s/.*: ([0-9]+).*: ([0-9]+) px.*/\1x\2/p'
3840x2160
$ # oder
$ cat wayland-info-kde.txt | sed -nE '/refresh:/ s/.*: ([0-9]+).*: ([0-9]+) px.*/\1x\2/p'
3840x2160
$ # oder
$ cat kscreen-doctor.txt | sed -nE '/Modes:/ s/\x1b[^m]+m//g;s/.*:([0-9x@]+)\*.*/\1/;s/@.*//p'
3840x2160
$ 

Bei dem "kscreen-doctor.txt" nehme ich an, dass die Auflösung mit einem "*" gemeint ist (als grüner Text), sonst könnte man auch ein anderes Zeichen zur Selektion heran ziehen. Wenn man nicht die störenden Escape-Sequenzen zuvor eliminieren müsste, wäre es sorar etwas kürzer.

glaskugel

(Themenstarter)

Anmeldungsdatum:
8. Juli 2010

Beiträge: 4224

Mach es doch mit einem "sed" Befehl:

$ time wayland-info | sed -nE '/refresh:/ s/.*: ([0-9]+).*: ([0-9]+) px.*/\1x\2/p'
3840x2160

real    0m0,015s
user    0m0,001s
sys     0m0,008s

Danke, ist (vielleicht zufällig) ein wenig schneller, in der Praxis aber egal.

Ist das nicht ausreichend?

$ xrandr --prop
Screen 0: minimum 16 x 16, current 3840 x 2160, maximum 32767 x 32767
HDMI-A-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 597mm x 336mm

Ich möchte das direkt mit Wayland abfragen.

PS: Mit Ubuntu 25.10 (Gnome)

$ time wayland-info | sed -nE '/refresh:/ s/.*: ([0-9]+).*: ([0-9]+) px.*/\1x\2/p'
3840x2160

real	0m0,006s
user	0m0,000s
sys	0m0,007s

Ich glaube die Zeiten sind zufällig und Gnome ist nicht grundsätzlich schneller.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5909

@shiro: Beim kscreen-doctor scheint es Unterschiede in Formatierungen der Ausgabe zu geben.

kscreen-doctor -o | sed -nE '/Modes:/ s/\x1b[^m]+m//g;s/.*:([0-9x@]+)\*.*/\1/;s/@.*//p'
        Modes:  446:1920x1200

Mein kscreen-doctor ist aus diesem DEB-Paket: libkscreen-bin 4:6.5.4-0ubuntu1~ubuntu25.10~ppa1 (ppa:kubuntu-ppa/backports)

noch_ein_kscreen_doctor.txt (6.4 KiB)
Noch eine kscreen-doctor Ausgabe. Um sed darauf los zu lassen.
Download noch_ein_kscreen_doctor.txt

glaskugel

(Themenstarter)

Anmeldungsdatum:
8. Juli 2010

Beiträge: 4224

Es mag ja durchaus Sinn machen, dass es verschiedene compositors gibt, aber in der Praxis ist das zur Zeit für einen User eher mühsam.

zB eine Übersicht: https://wiki.archlinux.org/title/Category:Wayland_compositors

Befehle bei Kubuntu und Ubuntu können sich im Ergebnis unterscheiden oder funktionieren gar nicht.

Ich denke meinen Wunsch, die Größe des aktiven Fensters herauszufinden, kann ich zur Zeit vergessen.

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1449

@trollsportverein:

Noch eine kscreen-doctor Ausgabe. Um sed darauf los zu lassen.

Oops ... Bei dir ist die Bildwiederholrate ja keine Ganzzahl (Modes: 446:1920x1200@59.95*! ). Dann fehlt natürlich der Dezimal-Punkt "." als erlaubtes Zeichen in der RegEx ([0-9x@.]+) :

$ cat noch_ein_kscreen_doctor.txt | sed -nE '/Modes:/ s/\x1b[^m]+m//g;s/.*:([0-9x@.]+)\*.*/\1/;s/@.*//p'
1920x1200
$ 
Antworten |