Wie verschiebe ich Fenster mit einem Dimensionsbereich in den Arbeitsbereich 2?

Wie verschiebe ich Fenster mit einem Dimensionsbereich in den Arbeitsbereich 2?

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 wmctrlBefehlen, 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 2wird das Fenster normalerweise in Arbeitsbereich 2 verschoben? Was ist das Symbol +dort?

  • Ich mache wmctrl -r 1 -t 2aber 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.

verwandte Informationen