Estableciendo una terminal como fondo de pantalla

cubo

Tras un par de días actualizando mi ubuntu y revitalizándolo, me picó la curiosidad de establecer una terminal como fondo de pantalla. Y tras una ardua búsqueda en google concluyo que sí, se puede, al menos en gnome.

El artículo original está aquí, pero por algún extraño motivo no aparece directamente en Google, así que voy a reescribirlo y actualizarlo. En ese blog (qué pena que no escriba más a menudo) también podréis encontrar la forma de ver doc y pdf directamente en una terminal (rozando el frikismo absoluto :D).

El centro de este truco es devilspie, y es una aplicación para ayudarnos a controlar algunas opciones por defecto en nuestras ventanas. Por ejemplo, si queremos que todas las ventanas de conversación de gaim que abramos se mantengan por encima de todas las ventanas, aparezcan en todos los escritorios, tengan una medida de 300×300, no tengan bordes y no aparezcan en la barra de tareas, con esta aplicación podremos. Para instalarlo, desde ubuntu dapper está disponible en los repositorios universe, pero yo lo compilé sin ningún problema (código fuente). Aunque su instalación no es el motivo de este artículo, si os cuesta instalarlo, dejad un comentario.

Esta aplicación trabaja sobre metacity y yo lo he hecho sobre Ubuntu, pero supongo que para cualquier distribución con gnome valdrá. Para nuestro propósito, la terminal que elijáis da igual, pero como yo suelo usar gnome-terminal, pues me centraré más en ella. Además, admite (algo-parecido-a-la) transparencia, por lo que podremos ver a través de ella nuestro fondo de pantalla normal.

Lo primero que necesitamos es crear un perfil en nuestro gnome-terminal. Esto es importante, ya que hay que distinguir las terminales normales de la terminal-escritorio, de lo contrario todas las terminales que abramos se pondrán como fondo de pantalla (algo que no queremos). Llámala como quieras y edita tus preferencias (la transparencia queda chula), pero acuérdate de cambiar el título inicial por lo que quieras. Por ejemplo, ‘escritorio’. Quédate con ese nombre y guarda tus cambios.

Ok, ahora un pequeño parón, para explicar por encima qué hace devilspie. Esta aplicación carga al inicio nuestros ficheros de configuraciones (.ds) y se mantiene en segundo plano, de tal forma que cambia los parámetros de las ventanas según las vayamos abriendo. Lástima que haya tan poca documentación sobre las opciones de este programa, casi todo se reduce a esta página de wiki.

Los ficheros ds tienen un formato muy natural (s-expressions), como ahora veremos. En mi caso, el fichero que vamos a utilizar es éste:

(if<br /> &nbsp;&nbsp;&nbsp;&nbsp;(matches (application_name) "^escritorio")<br /> &nbsp;&nbsp;&nbsp;&nbsp;(begin<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(pin)<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(skip_pager)<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(skip_tasklist)<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(wintype "desktop")<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(undecorate)<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(geometry "1024x718-0+0")<br /> &nbsp;&nbsp;&nbsp;&nbsp;)<br /> )<br />

Vamos a ir desgranándolo. La primera línea es un condicional (sorpresa). Con la segunda línea (matches…) le decimos que aplique estas reglas a las ventanas cuyo título empiecen por «escritorio», es decir, el título inicial que hayamos puesto antes a nuestro perfil. Con (pin) le decimos que la ventana debe aparecer en todos los escritorios. Con (skip_pager) que lo quite del paginador y con (skip_tasklist) que lo quite de la barra de tareas. Con (wintype «desktop») le pegamos al escritorio. Con (undecorate) le quitamos los bordes a la ventana.

La línea (geometry «1024×718+0+0») sirve para establecer las dimensiones de nuestra ventana. Esto es muy personalizado, y es probable que cambie. Esto es para una resolución de 1024×768, dejando espacio para las dos barras de gnome (arriba y abajo). Así que debes jugar con ellos hasta conseguir adaptarlo. Por ejemplo, la configuración que me funciona a mí es (geometry «1026×718-6+4»), ya que como utilizo compiz, (undecorate) no hace nada y me sigue manteniendo la decoración de la ventana (bordes y demás).

Guardamos ese archivo en ~/.devilspie/loquesea.ds y ya lo tenemos casi listo. Podemos probar a abrir una terminal, cambiar el perfil a «escritorio» y ejecutar devilspie desde la terminal. Todo debería funcionar, pero si no aparece en la posición correcta, te toca jugar con (geometry).

Bien, pero lo suyo es que todo esto se cargue al principio, y que nos olvidemos de devilspie… Pues bien, hay que añadir a los programas cargados al inicio de nuestra sesión devilspie y la terminal «escritorio». Podemos configurar esto «gráficamente» si vamos al menú Sistema->Preferencias->Sesiones. Una vez allí, en la pestaña Programas al Inicio añadimos «devilspie» a secas, y además «gnome-terminal –window-with-profile=escritorio», donde «escritorio» es evidentemente el nombre que le hayamos puesto a esa sesión.

Ya está, podéis hacer diferentes personalizaciones o jugar con otras terminales, pero ya casi todo está visto. Por ejemplo, si en vez de (pin) especificáis (set_workspace 4), pues tendréis la terminal como escritorio solamente en el 4, en los demás todo seguirá igual.

9 alegres comentarios ↓

#1 neok el día 04.14.06 a las 9:27 pm

¡Un buen truco para los frikis de la consola!

#2 philococo el día 05.07.06 a las 12:32 am

Hace un tiempo había googleado acerca de esto pero no encontré tu post. Está muy interesante. Pero como ando con pereza, por los momentos me conformo con el «tilda». Fue suficiente con:


sudo apt-get install tilda

Saludos.

#3 Emanuel el día 07.12.06 a las 3:13 am

yo lo uso asi y ya no tienes que ajustar el «(geometry “1024×718-0+0″)»

(if
(matches (application_name) «^Escritorio»)
(begin
(pin)
(skip_pager)
(skip_tasklist)
(wintype «normal»)
(undecorate)
(maximize)
)
)

#4 chaos el día 07.30.06 a las 12:53 am

nada, que no hay manera…. lo he hecho todo al pie de la letra, pero cuando ejecuto el devilspie desde la terminal siempre me encuentro lo mismo

** (devilspie:8692): WARNING **: Error in parsing: Unexpected token encountered: 226
Cannot parse /home/chaos/.devilspie/escrit4.ds: Unexpected token encountered: 226
No s-expressions loaded, quiting

alguna idea??

#5 cumic el día 07.30.06 a las 4:44 am

No sé, chaos, mira a ver si las comillas dobles están correctas… Es decir, suponiendo que hayas copiado y pegado de este post, puede que las comillas dobles las trate wordpress como diferentes… Borra todas las comillas y mételas a mano, a ver si así se arregla algo 😀

#6 chaos el día 07.31.06 a las 9:08 pm

eleeee
pues lo de las comillas ha funcionado, pero está visto que soy «el pupas»…. mi archivo .ds viene a ser así:

(if
(matches (application_name) «^pescritorio»)
(begin
(maximize)
(set_workspace 4)
(skip_pager)
(skip_tasklist)
(undecorate)
)
)

y ahora resulta que mi workspace4 no existe:

** (devilspie:6024): WARNING **: Workspace number 4 does not exist

(devilspie:6024): Wnck-CRITICAL **: wnck_window_move_to_workspace: assertion `WN CK_IS_WORKSPACE (space)’ failed

lo curioso es que aunque le diga (pin) lo único que ocurre es que desaparece el error y la ventana de terminal se sigue quedando solo en el escritorio en el que la lanzo….

p’alunizar….

#7 cumic el día 08.01.06 a las 12:43 am

Mmm, veo que te falta el (wintype “desktop”), ¿has probado poniéndolo?

En realidad es un poco prueba y error, pero no entiendo lo del workspace 4. ¿Para qué le dices eso si quieres ponerlo en todos? A lo mejor no tienes 4 escritorios virtuales, no lo sé.

#8 chaos el día 08.03.06 a las 9:15 am

jeje, no si el caso es que si le pongo el (wintype «desktop») no me maximiza la ventana, bueno, mejor dicho: la maximiza y luego la restaura…. solo me funciona si no pongo nada o si le meto (wintype «normal»)….

por otro lado intento que se quede solo en el workspace 4 ya que así queda muy chulo el girar «el cubo» (el cubo borg :-)) y que en la 4 tenga una terminal enooooorme para ir haciendo cosas siempre disponible…..

en fin, que de momento me ha quedado todo un poco manual, pero funciona más o menos como yo quería….

gracie mile, la idea de hecho es xoxonuda (lástima de la implementación del usuario que suscribe)

#9 Gon Zoo el día 12.14.06 a las 12:24 pm

Yo estuve utilizando también devilspie para incrustar la terminal. Sin embargo lo he acabado sustituyendo por otra método con Alltray que me parece más cómodo. En mi tengo una entrada detallando el tema.

Deja tu comentario

Si tienes una cuenta OpenID, también lo puedes usar, así no tienes que rellenar los campos de arriba: