| 
306
 | 
     1 #!/bin/bash
 | 
| 
 | 
     2 
 | 
| 
 | 
     3 # move all windows to a desktop
 | 
| 
 | 
     4 # by default, the final one (graveyard)
 | 
| 
 | 
     5 
 | 
| 
 | 
     6 # List  all  desktops  managed  by the window manager. One line is
 | 
| 
 | 
     7 # output for each desktop, with the line broken up into space sepâ
 | 
| 
 | 
     8 # arated  columns.  The  first  column contains an integer desktop
 | 
| 
 | 
     9 # number. The second column contains a '*' character for the  curâ
 | 
| 
 | 
    10 # rent  desktop,  otherwise  it contains a '-' character. The next
 | 
| 
 | 
    11 # two columns contain the fixed string DG: and  then  the  desktop
 | 
| 
 | 
    12 # geometry as '<width>x<height>' (e.g. '1280x1024'). The following
 | 
| 
 | 
    13 # two columns contain the fixed string VP: and then  the  viewport
 | 
| 
 | 
    14 # position  in  the  format '<y>,<y>' (e.g. '0,0'). The next three
 | 
| 
 | 
    15 # columns after this contains the fixed string WA:  and  then  two
 | 
| 
 | 
    16 # columns  with  the workarea geometry as 'X,Y and WxH' (e.g. '0,0
 | 
| 
 | 
    17 # 1280x998'). The rest of the line contains the name of the  desktop
 | 
| 
 | 
    18 # (possibly containing multiple spaces).
 | 
| 
 | 
    19 DESKTOP=$(wmctrl -d | awk '{if ($2 == "*") {print $1}}')
 | 
| 
 | 
    20 
 | 
| 
 | 
    21 # find the last desktop
 | 
| 
 | 
    22 if (( $# ))
 | 
| 
 | 
    23 then
 | 
| 
 | 
    24 LAST=$1
 | 
| 
 | 
    25 else
 | 
| 
 | 
    26 LAST=$(wmctrl -d | tail -n 1 | awk '{print $1}')
 | 
| 
 | 
    27 fi
 | 
| 
 | 
    28 
 | 
| 
 | 
    29 #  -l     List the windows being managed by the window manager.
 | 
| 
 | 
    30 wmctrl -l | awk '{if ($2 == "'${DESKTOP}'") {print $1}}' | while read line
 | 
| 
 | 
    31 do
 | 
| 
 | 
    32 # -t <DESK>
 | 
| 
 | 
    33 # Move  a window that has been specified with the -r action to the
 | 
| 
 | 
    34 # desktop <DESK>.
 | 
| 
307
 | 
    35 wmctrl -i -r ${line} -t ${LAST}
 | 
| 
306
 | 
    36 done
 | 
| 
 | 
    37 
 |