¿Hay alguna forma de cambiar la aplicación que se ejecuta en un espacio de trabajo a otro en la línea de comandos? Yo uso Ubuntu 10.04
ACTUALIZACIÓN1
Según las sugerencias a continuación
wmctrl -l
0x02200003 -1 bond Bottom Expanded Edge Panel
0x02200049 -1 bond Top Expanded Edge Panel
0x02000020 0 bond x-nautilus-desktop
0x04e00004 0 bond bond@bond: ~
0x0482a380 0 bond OMG! Ubuntu! | wmctrl - Chromium
0x05000072 0 bond how to shift applications from workspace 1 to 2 using command - Ask Ubuntu - Stack Exchange - Google Chrome
ahora cuando escribo
wmctrl -r :OMG! Ubuntu! | wmctrl - Chromium: -t 2 No window was specified.
Entonces, ¿cómo usarlo correctamente? ¿Cuál es el error anterior?
ACTUALIZACIÓN2
intenté
wmctrl -r 0x05000072 -t 2
pero las ventanas no tuvieron efecto y permanecieron en el mismo espacio de trabajo.
command-line
workspaces
usuario registrado
fuente
fuente
Respuestas:
Si está utilizando un administrador de ventanas compatible como Metacity (Unity 2-d), puede usar wmctrl para cambiar una ventana a otro escritorio. La sintaxis es la siguiente
wmctrl -r :ACTIVE: -t <DESKTOP>
. También puede cambiar su escritorio actual usandowmctrl -s <DESKTOP>
. Los números de escritorio comienzan en 0. En una línea, esto sería:Si desea cambiar una ventana que no sea la activa a otro escritorio, use el texto del título como argumento para -r. Por ejemplo:
Alternativamente, puede usar
wmctrl -l
para enumerar las ventanas disponibles y pasar el número de identificación a -r en lugar de la cadena especial:ACTIVE:
. Al pasar una identificación, también debe agregar -i. Por ejemplo:(wmctrl se puede instalar en Ubuntu con
sudo apt-get install wmctrl
.) En la actualidad, desafortunadamente, esto no parece funcionar con Unity estándar.fuente
wmctrl -r "Chromium" -t 1
como menciones de skyblue en su respuesta, siempre y cuando esté utilizando un administrador de ventanas compatible como Unity-2d.Aquí hay un script mío que implementa lo que pides: https://github.com/norswap/wmov/blob/master/wmov.sh
En su forma actual, puede enviar ventanas (seleccionadas haciendo coincidir una cadena que no distingue entre mayúsculas y minúsculas con el título de las subcadenas, como para la
wmctrl
-r
opción) a otros escritorios, ya sea eligiendo un número de escritorio explícito o indicando la dirección del escritorio desde el actual escritorio.Por ejemplo:
Funciona de hecho como se describe en la publicación de desgua. También tiene la capacidad de enviar ventanas a otros espacios de trabajo.
fuente
Es posible hacer esto
xdotool
, pero si está utilizandocompiz
esta solución puede no ser aplicable, así que tenga esto en cuenta.Para cambiar una ventana en particular (la ventana activa) a un espacio de trabajo diferente, puede usar
O para un script, es posible que desee cambiar las ventanas de un programa en particular a un espacio de trabajo dado con:
Este comando busca y encuentra las
firefox
ventanas y las transfiere al espacio de trabajo 1, donde aparecerán minimizadas. Para volverfirefox
al escritorio predeterminado, simplemente reemplace el 1 con un 0 al final del comando. Para enviar una ventana diferente a otro espacio de trabajo, simplemente reemplácelofirefox
con otro nombre de programa.Es crucial que utilice
%@
para representar las ventanas pasadas desde el--search
parámetro, como si no lo hiciera, no se transferirán ventanas.Para obtener más información, consulte
man xdotool
las páginas de manual de Ubuntu en línea.fuente
Si está usando compiz, mire aquí en el wiki de compiz . Allí encontrarás varios ejemplos. Mire el complemento "poner".
Ejemplo
fuente
En primer lugar, el colon es parte de la
:ACTIVE:
ficha mágica para indicar la ventana activa. No lo quieres normalmente. En segundo lugar, debe citar cadenas con espacios en ellas.También puede obtener la ID de la ventana (
0x...
al comienzo de cada línea) y usarla en lugar de tratar de hacer que el título funcione.fuente
xwininfo
y luego hacer clic en la ventana cuya ID desea.wmctrl -m
)wmctrl
lo que no va a funcionar. (Específicamente, tiene que escucharPropertyChange
eventos en la ventana raíz para propiedades particulares y luego actuar sobre el contenido de esas propiedades.)Al modificar un poco el script que se le da como solución a esta pregunta , lo siguiente "trae" una ventana determinada al espacio de trabajo actual (en compiz):
Si se desea un espacio de trabajo arbitrario, entonces se trata de sumar / restar el
$SCREEN_W
/ correspondiente$SCREEN_H
, tantas veces como espacios de trabajo, una ventana está lejos del objetivo.fuente
Tratar:
déjame explicarte: con la ayuda de wmctrl shows
wmctrl -d
puede enumerar todos los espacios de trabajo, en mi computadora ahora se muestra lo siguiente:* significa el espacio de trabajo actual
Por cierto,
wmctrl -l
es enumerar todas las ventanas (que ya conocías), en mi computadora ahora son:como el "ESCRITORIO" debe ser el número, lo uso
grep “workspace name” | cut -d" " -f1
para obtenerlo.Por ejemplo, si quiero mover Firefox al "código" del espacio de trabajo, puedo usar:
o
pero
¡Solo trabaja conmigo una vez, y no sé por qué!
fuente