
Ich habe viele Figuren vonBreiteXHöhe(550-570)x(465-486) imSüdwestenlogischerweise durch die Matlab- movegui()
Funktion dort gesetzt. Ich möchte alle diese öffnenSüdwestenFenster der Größenspanne auf einem externen Display oder im Arbeitsbereich 2.
MeuhDer Befehl zeigt die FigurenabmessungenBreiteXHöhe, ihre Hex-Codes und Titel, wo ich Fenster der Größe 560 x 475 verschieben möchte fürBreiteXHöhebzw. zu Arbeitsbereich 2
masi@masi:~$ wmctrl -l -G
0x01c0000b 0 0 0 3840 1080 masi Desktop
0x01e00002 0 0 54 1920 1023 masi Edit - Unix & Linux Stack Exchange - Google Chrome
0x02200006 0 2088 333 1608 501 masi masi@masi: ~
0x0280003d 0 1920 78 1920 1041 masi MATLAB R2016a - academic use
0x02800ac6 0 11 113 568 465 masi Figure 1: data gray all 4
0x02800af2 0 687 113 560 475 masi Figure 2: data gray top half (1/2)
0x02800aff 0 1364 113 560 475 masi Figure 3: data gray top #1 (1/4)
0x02800b16 0 1364 621 560 475 masi Figure 4: Time domain
0x02800b2a 0 11 631 568 465 masi Figure 5: Memory/... Monitoring
0x02800b31 0 683 631 568 465 masi Figure 6: data Size(I) monitoring
0x02800b3b 0 11 621 560 475 masi Figure 7: Histograms
0x02800b85 0 774 594 386 28 masi Press SPACEBAR to continue
Wenn Sie den Befehl von meuh ausführen, erhalten Sie die richtige Anzahl an wmctrl
Befehlen, aber die einzelnen Befehle haben keine Wirkung (achten Sie auf andere Hexadezimalcodes als oben, da unterschiedliche Iterationen erforderlich sind).
masi@masi:~$ wmctrl -l -G |
> awk '$0~/^0x/{ winid=$1; width=$5; height=$6;
> if(width>=550 && width<=570 && height>=465 && height<=485)
> printf "wmctrl -i -r %s -t 2\n",winid
> }' | sh -x
+ wmctrl -i -r 0x03200120 -t 2
+ wmctrl -i -r 0x03200149 -t 2
+ wmctrl -i -r 0x0320015f -t 2
+ wmctrl -i -r 0x03200173 -t 2
+ wmctrl -i -r 0x03200188 -t 2
+ wmctrl -i -r 0x0320019f -t 2
+ wmctrl -i -r 0x032001b2 -t 2
Warum + wmctrl -i -r 0x03200120 -t 2
wird das Fenster normalerweise in Arbeitsbereich 2 verschoben? Was ist das Symbol +
dort?
- Ich mache
wmctrl -r 1 -t 2
aber nichts, TODO muss hier irgendwie die Maße angeben. - Wie können Sie Fenster der Größe 560 x 475 in den Arbeitsbereich 2 verschieben?
- Wie können Fenster der Größe (550-570) x (465-485) in Arbeitsbereich 2 verschoben werden?
Betriebssystem: Debian 8.5 64 Bit
Linux-Kernel: 4.6 oder Backports
Matlab: 2016a
Fenstermanager: Gnome 3.14
Hardware: Asus Zenbook UX303UA, Asus PC
Andere Quellen: Commandlinefu-Suchewmctrlbringt nichts relevantes
Antwort1
Sie können ein kleines awk-Skript verwenden, um die erforderlichen Fenster-IDs anhand der Breite und Höhe in den durch Leerzeichen getrennten Spalten 5 und 6 herauszufiltern:
wmctrl -l -G |
awk '$0~/^0x/{ winid=$1; width=$5; height=$6;
if(width>=550 && width<=570 && height>=465 && height<=485)
printf "wmctrl -i -r %s -t 2\n",winid
}' | sh
Antwort2
Es gibt keine unterstützte funktionierende Lösung für Gnome 3.14 in Debian 8.5. Hoffen wir, dass die nächste Version von Gnome im 1. oder 2. Quartal 2017 Abhilfe schaffen wird.