Configurar las áreas del trabajo del Escritorio Gnome

Uno de los principales atractivos de los entornos gráficos (escritorios) que trabajan en Linux es que podemos disponer de múltiples áreas de trabajo, es decir, que podemos tener en una sola sesión varios escritorios y acomodar las aplicaciones que estamos ejecutando en estos escritorios, con el objeto de que no tengamos muy llena la barra de tareas.

En mi caso uso un escritorio Gnome, y tengo habilitadas 4 áreas de trabajo. Nosotros podemos mover cualquier aplicación que tengamos en la barra de tareas dando clic derecho a la ficha de cualquier aplicación que esta posicionada en la barra de tareas, y en el menú contextual que se muestra aparecerá la opción “mover a otra area de trabajo”, si colocamos el puntero del mouse sobre dicha opción se desplegarán los nombres de las áreas de trabajo que tenemos disponibles, en mi caso como tengo 4 escritorios, los espacios disponibles a donde puedo mover cualquier aplicación serian: “Escritorio1, Escritorio2, Escritorio3, Escritorio4”, obviamente aparece atenuado el Escritorio donde se encuentra la ventana de la aplicación en este momento.

De este modo podemos mover nuestras aplicaciones a los espacios de trabajo que deseemos, por ejemplo en un espacio de trabajo podremos tener las ventanas de nuestro navegador, en otra ventana podremos tener nuestra consola, en otro espacio de trabajo podriamos tener un navegador de archivos, en otro espacio de trabajo nuestros juegos, etc.

Y una vez organizado de esta forma nos podremos desplazar entre los espacios de trabajo, utilizando el selector de areas de trabajo que por lo regular se encuentra en la barra de tareas:



Pero sería más comodo para nosotros que en el momento de que inciemos una aplicación, esta se fuera automaticamente al espacio de trabajo que tenemos destinada para ella.

Esto es posible con ayuda de una aplicación para Gnome llamada Devil’s Pie. El presente tutorial muestra la forma de instalar dicha aplicación y algunos ejemplos básicos. Cabe mencionar que las pruebas fueron hechas en la distribución Linux Mint 8.0 “Helena”.

Instalación de Devil’s Pie

En esta ocasión usaremos la consola para instalar el paquete, así que con privilegios de administrador haremos uso del comando apt-get:

sudo apt-get install devilspie

Se descargaran e instalarán los paquetes necesarios para que funciones la aplicación, tal y como lo muestra la siguiente imagen:

Creando directorio para almacenar archivos de configuración

Devil’s Pie funciona a base de scrips, necesitaremos crear un script por cada programa que deseemos manipular, es decir, por cada programa que deseemos mandar a un espacio de trabajo, tendremos que crear un script y dentro de este script programar el comportamiento que deseamos para cada ventana de aplicación, pero no se asusten, la sintaxis usadas en los scripts es realmente sencilla.

Todos estos scripts que vayamos generando para funcionar deben estar almacenados en un directorio, dicho directorio que debemos de crear con el nombre de “devilspie” y debe de estar dentro de /etc por lo que crear dicho directorio se convierte en una tarea administrativa, una imagen vale más que mil palabras:

Creando los scripts

Como ya mencionamos, para manipular el comportamiento de las ventanas de aplicación que ejecutemos, es decir a donde queremos que se vayan, la posición, tamaño, etc. Debemos de hacer scripts de configuración. Estos scrips los podemos hacer con cualquier editor de textos y obviamente deben de ser guardados en la carpeta que acabamos de crear, una última restricción en cuanto a la creación del script, es que aunque el nombre del script es de libre elección, si debemos de colocarle la extensión “.ds”, dicho esto hagamos un ejemplo:

Vamos a hacer que cada vez que abramos una ventana del firefox, está se vaya al espacio de trabajo 4.

Creamos el scrip con cualquier editor de texto, en mi caso lo hare con nano, así que dentro de la carpeta “devilspie” hacemos:

sudo nano firefox.ds

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } –>

Un vez dentro del script vacío escribimos el siguiente código, de modo que nuestro script quede de la siguiente manera:

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } –>

Guardamos y cerramos el script. En este momento si ejecutas en una consola el comando “devilspie”, las ventanas que tengas de firefox se irán al espacio de trabajo 4, la consola con la que ejecutamos el comando queda inhibida, y el efecto de devilspie será valido mientras este corriendo el programa, es decir si cerramos la consola o matamos el proceso, entonces dejara de mandar las ventanas de Firefox al area de trabajo 4.

Dejandoló de manera permante

La forma para que los efectos de los scripts que creamos con Devil’s Pie se mantengan, sin necesidad de ejecutar una consola es hacer que el programa Devil’s Pie sea un programa que se inicie con el sistema, para esto nos dirigimos al menu Aplicaciones / Preferencias / Programas de inicio (Startup Applications ).

Una vez hecho se nos presenta una ventana como la siguiente:

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } –>

Damos clic en el botón Add (Agregar) y nos presentará una nueva ventana donde tenemos que dar de alta la aplicación que queremos que se ejecute al inicio del sistema.

En nombre colocamos “Devil’s Pie” aunque el nombre es de libre elección. En command colocamos “devilspie” y en comment colocamos cualquier cosa.

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } –>

Damos clic en Add y en la ventana que queda damos clic en Close para terminar. Hecho esto la proxima vez que iniciemos nuestro sistema operativo Devil’s Pie revisará en la carpeta /etc/devilspie y pondrá en activo las reglas que nosotros hayamos definido, por el momento solo hemos definido que todas las ventanas de Firefox se vayan al espacio de trabajo 4.

Para cada regla que queramos implementar tendremos que hacer un nuevo script y para que surtan efecto las nuevas reglas tendremos que reiniciar el equipo.

Si tenemos habilitado algún gestor gráfico como el compiz, la estructura del script variara un poco:

(if
(is (application_name) "Firefox")
(begin
(set_viewport 2)
(maximize)
)
)

  1. Se coloca una nueva línea (begin porque vamos a poner un conjunto de instrucciones

  2. Se cambia workspace por la palabra viewport .

  3. Se incluye una nueva línea (maximize) necesaria porque cuando se lanzan ventanas con compiz y se mueven a otro espacio de trabajo, en ocasiones quedan de tal tamaño que se pueden ver en dos espacios de trabajo simultaneamente y al maximizar la ventana nos evitariamos este error.

  4. Despues de la línea (maximize) no olvidemos cerrar el parentesis que abrimos con (begin.

Otro ejemplo para un escritorio normal, es decir sin compiz, sería que todas las consolas de comandos se vayan al espacio de trabajo 3 al ser abiertas, hagamos un nuevo archivo dentro del directorio /etc/devilspie ahora lo llamaremos consola.ds y dentro de él escribimos el siguiente código:

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } –>

Del mismo modo que en el caso anterior, para que empiece a funcionar esta nueva regla, tendremos que reiniciar antes el equipo.

Ahora vamos a voy a listar algunos de los comandos más usados dentro de los scripts de Devil’s Pie:

is  Es un “igual”, en el ejemplo anterior application_name es igual (is) a “Terminal”

begin Se usa para comenzar una serie de funciones

application_name: El nombre de la aplicación

set_workspace #: Donde #, es el número de escritorio al que queremos mandar la ventana

set_viewport #: Donde #, es el número de viewport al que queremos mandar la ventana (OJO: Reemplaza a workspace en caso de utilizar Compiz)

pin Muestra la ventana en todos los escritorios

minimize: Minimiza la ventana

maximize: Maximiza la ventana

close: Cierra la ventana

geometry: Especifica la posición + tamaño de la ventana

window_name: Devuelve el valor de la ventana

Vamos a hacer un ejemplo más en donde en el momento que lancemos la calculadora, esta se presente en todos los espacios de trabajo, para esto usaremos “pin”, a estas alturas nos preguntaremos, ¿Cómo sabemos el nombre de la aplicación? Esto es necesario para hacer las comparaciones. Para saber el nombre de las aplicaciones se hace un nuevo archivo .ds en este caso lo vamos a nombrar debug.ds y hay que almacenarlo en la misma carpeta /etc/devilspie y el contenido del archivo debe ser una única línea:

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } –>

Al tener este script, solo basta con tener abierta la aplicación de la cual queremos saber su nombre y ejecutar en una consola el comando “devilspie” y nos arrojara un listado de los programas abiertos con el nombre con el cual es reconocido por Devil’s Pie.

Entonces abrimos la calculadora y lanzamos el comando desde la consola:

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } –>

Identificamos la siguiente línea:

Window Title: ‘Calculator’; Application Name: ‘gcalctool’; Class: ‘Gcalctool’; Geometry: 286×372+2+50

En donde el titulo de la ventana es Calculator y el Name es ‘gcalctool’ que es el que vamos a usar para programar el siguiente ejemplo, por lo que el script calculadora.ds quedaría asi:

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } –>

Lo anterior provocara que la calucladora se muestre en todos los espacios de trabajo. El programa Devil’s Pie tiene muchas opciones, ya queda de cada uno de nosotros consultar el manual desde consola “man devilspie” para explotar todas las posibilidades.

Un vez dentro del script vacío escribimos el siguiente código, de modo que nuestro script quede de la siguiente manera:

Powered By DT Author Box

Written by chris

Devil’s Pie.

5 thoughts on “Devil’s Pie.

  • vaya.. que bien.. yo hago uso de mis cuatro escritorios en suse 🙂
    supongo que mi instalación será igual o similar a esto…
    ya que ando de vacaciones lo intentaré antes de formatear 🙁

  • no me sale el de la calculadora:(
    puse el mismo script, cheque el nombre al lanzar la aplicacion de la calculadora y verificarlo pero una ves ya creado no me hace nada, ya lo reinicie el sistema y ni aun asi.
    n se si algo estooi haciendo mal o k pasara….

    (if
    (is (application_name) “gcalctool”)
    (begin

    (pin)
    )
    )

Leave a Reply

Follow

Get every new post delivered to your Inbox

Join other followers:

%d bloggers like this: