Definición de las etiquetas principales que componen el archivo de configuración >> keys.xml
Key
Esta etiqueta se utiliza para configurar los atajos de teclado del programa. El atributo opcional mask,
especifica que tecla hará de comodín y el texto
comprendido dentro de la etiqueta será la acción a
realizar.
Una o más de las siguientes teclas comodín pueden ser especificadas para el atributo mask.
* A : La tecla "Alt" (mod1)
* C : La tecla "Ctrl"
* S : La tecla "Mayús"
* 1 : Mod1 ("Alt")
* 2 : Mod2 ("Bloq Num")
* 3 : Mod3
* 4 : Mod4 ("Windows")
* 5 : Mod5
La tecla especificada en el atributo key tiene que contener un identificador de tecla válido compatible con el servidor gráfico. Un ejemplo en este enlace.
Un ejemplo para ejecutar Firefox con la combinación ALT + F :
<Key mask="A" key="f">exec:firefox</Key>
Atajos no modificables
Descripción
up
Desplaza hacia arriba.
down
Desplaza hacia abajo.
right
Desplaza hacia la derecha.
left
Desplaza hacia la izquierda.
escape
Detiene un desplazamiento/redimensionado o sale del menú.
select
Realiza una selección en el menú.
Atajos modificables
Descripción
next
Mueve a la siguiente ventana en la lista de tareas.
nextstacked
Mueve a la siguiente ventana en un orden de apilado.
prev
Mueve a la ventana previa en la lista de tareas.
prevstacked
Mueve a la ventana previa en un orden de apilado.
close
Cierra la ventana activa.
fullscreen
Cambia la ventana a modo de pantalla completa.
minimize
Minimiza la ventana activa.
maximize
Maximiza la ventana activa.
maxv
Maximiza la ventana activa en vertical.
maxh
Maximiza la ventana activa en horizontal.
maxtop
Maximiza la ventana activa a la mitad superior de la pantalla.
maxbottom
Maximiza la ventana activa a la mitad inferior de la pantalla.
maxleft
Maximiza la ventana activa a la mitad izquierda de la pantalla.
maxright
Maximiza la ventana activa a la mitad derecha de la pantalla.
restore
Restaura la ventana maximizada o minimizada.
shade
Enrolla la ventana activa.
move
Desplaza la ventana activa.
resize
Redimensiona la ventana activa.
root:nº
Muestra el menú root:nº
window
Muestra el menú de ventana de la ventana activa.
desktop
Conmuta al siguiente escritorio.
desktop#
Conmuta a un escritorio especifico. Sustituir # por el número de escritorio.
rdesktop
Mueve un escritorio a la derecha.
ldesktop
Mueve un escritorio a la izquierda.
udesktop
Mueve un escritorio hacia arriba.
ddesktop
Mueve un escritorio hacia abajo.
sendl
Envía la ventana activa al escritorio anterior.
sendr
Envía la ventana activa al escritorio siguiente.
sendu
Envía la ventana activa al primer escritorio.
sendd
Envía la ventana activa al último escritorio.
exec:
Ejecuta un comando.
restart
Reinicia JWM.
exit
Finaliza JWM.
showtray
Muestra el panel o paneles, cuando se utiliza la opción de ocultado automático.
Mouse
Esta etiqueta se utiliza para configurar los atajos de ratón del programa, el atributo context determina el contexto en el que se aplicará el atajo, el atributo button, el botón del ratón que se utilizará, el atributo opcional mask (el mismo que el de los atajos de teclado),
especifica que tecla hará de comodín y el texto
comprendido dentro de la etiqueta será la acción a
realizar.
Los contextos de ratón soportados son los siguientes:
* border: El borde de la ventana.
* close: El botón de cierre de una ventana.
* icon: El icono del botón de una ventana.
* maximize: El botón de maximizar de una ventana.
* minimize: El botón de minimizar de una ventana.
* root: La ventana raíz (o fondo de escritorio)
* title: El título de una ventana.
Los valores posibles más comunes para el atributo button son los siguientes:
* 1: El botón izquierdo del ratón.
* 2: El botón central del ratón.
* 3: El botón derecho del ratón.
* 4: Desplazamiento hacia arriba de la rueda del ratón.
* 5: Desplazamiento hacia abajo de la rueda del ratón.
Los valores negativos (por ejemplo, -1), implican que la acción
se ejecutará al soltar el botón, después de
presionarlo.
7) Personalizar el comportamiento de las ventanas
7a) ~/.jwm/winoptions.xml
Este archivo de configuración es el utilizado para personalizar
el comportamiento de las ventanas de las aplicaciones. Que se inicien
sin decoración, en un escritorio virtual específico, etc.
Definición de las etiquetas principales que componen el archivo de configuración >> winoptions.xml
Group
Es la etiqueta que comprende las opciones de personalización de las ventanas de las aplicaciones.
Name
Esta etiqueta es el equivalente al
resultado del parámetro WM_NAME(STRING) mostrado por la utilidad
xprop cuando la ejecutamos desde la línea de comandos y con el
puntero del ratón convertido en una cruceta hacemos clic sobre
la ventana que queremos identificar. Un ejemplo:
WM_NAME(STRING) = "mrxvt"
Class
Esta etiqueta es el equivalente al
resultado del parámetro WM_CLASS(STRING) mostrado por la
utilidad xprop cuando la ejecutamos desde la línea de comandos y
con el puntero del ratón convertido en una cruceta hacemos clic
sobre la ventana que queremos identificar. Un ejemplo:
WM_CLASS(STRING) = "mrxvt", "XTerm"
Type
Etiqueta introducida a
partir de la versión 2.4.0 de JWM, que incluye también
para identificar la ventana, el parámetro _NET_WM_WINDOW_TYPE
de la especificación EWMH de freedesktop.org. Los valores
posibles son los siguientes: desktop, dialog, dock, menu, normal,
notification, splash, toolbar y utility.
Option
Esta etiqueta define las opciones posibles de personalización del
comportamiento de la ventana de una aplicación determinada o de
las ventanas de un grupo de aplicaciones determinadas. Los valores
posibles son:
* aerosnap : Activa la maximización automática.
* border : Las ventanas de este grupo se iniciarán con borde.
* centered : Las ventanas de este grupo se iniciarán centradas en lugar de hacerlo en cascada.
* constrain : Las ventanas de este grupo no podrán salirse de los límites de la pantalla.
* desktop:nº : El
escritorio virtual en el que las ventanas de este grupo serán
iniciadas.
* drag : No se
pasarán los eventos del ratón a la ventana. En su lugar,
se usará el ratón para mover o cambiar el tamaño
de la ventana.
* fixed : Las
ventanas de este grupo se fijarán al escritorio actual. Esto
provocará que al cambiar de escritorio, la ventana se eleve
más que el comportamiento predefinido de mover la ventana al
escritorio actual.
* height:nº : Establece la altura en píxeles para este grupo de ventanas.
* hmax : Las ventanas de este grupo se maximizarán en horizontal.
* icon:icono : El icono que
será utilizado para las ventanas de este
grupo.
* iignore : Se omitirá el aumento de tamaño cuando se maximicen las ventanas de este grupo.
* layer:layer : La capa en la que serán ubicadas las ventanas de este grupo. Las opciones válidas son: below, normal y above. (debajo, normal y encima).
* maximized : Las ventanas de este grupo se iniciarán maximizadas.
* minimized : Las ventanas de este grupo se iniciarán minimizadas.
* noborder : Las ventanas de este grupo se mostrarán sin borde.
* noclose : Las ventanas de este grupo se mostrarán sin el botón de cierre de ventana.
* nodrag : Desactiva el
uso de la combinación de teclado Alt+botón presionado
para mover o redimensionar las ventanas de este grupo.
* nofocus : Las ventanas de este grupo no recibirán el enfoque.
* nofullscreen : Las ventanas de este grupo no se pondrán a pantalla completa.
* nolist : Las ventanas de este grupo no se mostrarán en la barra de tareas.
* nomax : Las ventanas de este grupo no se podrán maximizar.
* nomaxtitle : No muestra la barra de título en las ventanas maximizadas de este grupo.
* nomin : Las ventanas de este grupo no se podrán minimizar.
* nomove : Las ventanas de este grupo no se podrán mover.
* nopager : Las ventanas de este grupo no se mostrarán en el paginador.
* noresize : Las ventanas de este grupo no se podrán redimensionar.
* noshade : Las ventanas de este grupo no se podrán enrollar.
* notitle : Las ventanas de este grupo se mostrarán sin barra de título.
* noturgent : Las ventanas de este grupo omitirán la característica de ventana urgente.
* opacity:# : Establece el nivel de opacidad de la ventana. Los valores en coma flotante, pueden estar comprendidos entre 0.0 y 1.0. Se requiere del uso de un gestor de video compuesto como Xcompmgr para que esta opción sea funcional.
* pignore : Se omitirá la posición de ventana inicial solicitada por el cliente de la ventana.
* shaded : Las ventanas de este grupo se iniciarán enrolladas.
* sticky : Las ventanas de este grupo se mostrarán en todos los escritorios.
* tiled : Las ventanas de este grupo se mostrarán en mosaico, siempre que sea posible.
* title : Las ventanas de este grupo se mostrarán con barra de título.
* vmax : Las ventanas de este grupo se maximizarán en vertical.
Un ejemplo clásico de este sitio, ya explicado en otros manuales, es ejecutar Urxvt
en el fondo de la pantalla, sin decoración de ventana,
mostrándose en todos los escritorios y sin que aparezca en la
barra de tareas de JWM.
<Group>
<Name>urxvt</Name> <Option>notitle</Option> <Option>noborder</Option> <Option>nolist</Option>
<Option>sticky</Option>
<Option>layer:0</Option>
</Group>
* width:nº : Establece la anchura en píxeles para este grupo de ventanas.
* x:nº : Establece las coordenadas de posición horizontal para este grupo de ventanas.
* y:nº : Establece las coordenadas de posición vertical para este grupo de ventanas.
8) Creación y edición de los temas de JWM
8a) ~/.jwm/temas
En la versión en español del programa, además de
soportar temas (donde pone temas, podemos poner esquemas de color o
estilos visuales, yo utilizo temas porque es más corto para
referirme a éstos), se ha creado un
sistema de selección de temas automático, sin necesidad
de que el usuario tenga que modificar la entrada correspondiente del
archivo de configuración principal, rc.xml. El sistema funciona de la siguiente manera:
1) Una entrada en el menú raíz de JWM, que apunta a un script ubicado en ~/.jwm/themes.
2) Dicho script, una vez seleccionado desde el menú, mediante el uso de sed modifica la entrada
correspondiente del tema predefinido en el archivo de
configuración principal, rc.xml, activando posteriormente la función de reinicio de JWM.
#!/bin/sh
sed -i "12c\\\t<Include>$HOME/.jwm/themes/azul.xml</Include>" $HOME/.jwm/rc.xml
jwm -restart
NOTA IMPORTANTE: Si modificamos el archivo de configuración, rc.xml,
procurar siempre no añadir más líneas de contenido
por encima de la línea nº 12, ya que de lo contrario,
tendremos que modificar el comando de sed, de todos los scripts de los
temas, cambiando el valor numérico del parámetro '12c' por el de la nueva
línea en la que se ubicara dicha etiqueta.
Para crear nuevos temas, simplemente copiamos cualquiera de los
existentes, incluido el script de ejecución,
renombrándolos e incluyéndolos en la correspondiente
entrada del menú. Un ejemplo:
Y para editar el tema nuevo creado, tomamos como referencia la tabla que pongo a continuación:
Definición de las etiquetas principales que componen los archivos de configuración de los temas
WindowStyle
Es la etiqueta que controla el aspecto visual de los bordes de las ventanas. Soporta los siguientes atributos:
* decorations : Define la decoración a utilizar por las ventanas. El
valor por defecto es flat (plano). Los valores válidos son flat y motif, plano y 3D.
* delimiters : Define dos caracteres a utilizar como delimitadores para el nombre del host. El valor por defecto es ().
* showclient : Define la inclusión del nombre de host (WM_CLIENT_MACHINE) en el título de la ventana. El valor por defecto es false. Los valores válidos son true o false.
Soporta las siguientes etiquetas:
Font
Define la fuente de texto a utilizar en la barra de título de las ventanas.
Width
Define la anchura en píxeles de los bordes de las ventanas. Valor por defecto: 4. Los valores posibles están comprendidos entre 1 y 32.
Heigth
Define la altura en píxeles de la barra de título de las ventanas. Valor por defecto: 20. Los valores posibles están comprendidos entre 2 y 64.
Corner
Define la anchura de la esquina redondeada en píxeles. Valor por defecto: 4. Los valores posibles están comprendidos entre 0 (cuadrada) y 5 (muy redondeada).
Foreground
Define el color predefinido del texto de la barra de título. Pueden ser nombres de colores en inglés que
admita el servidor gráfico X (blue, yellow, green, etc.), o en
formato hexádecimal triplets en formato RGB. Un ejemplo: #FF0000.
Background
Define
el color predefinido del fondo de la barra de título (soporta gradientes).
Pueden ser nombres de colores en inglés que
admita el servidor gráfico X, o en formato hexádecimal
triplets en
formato RGB, separados por dos puntos. Un ejemplo:
#FF0000:#B4BCCC.
:
Opacity
Define la opacidad de la ventana. Los valores en coma flotante, pueden estar comprendidos entre 0.0 y 1.0. Se requiere del uso de un gestor de composición de muestra para el servidor gráfico X, como xcompmgr para que esta opción sea funcional.
Outline
Define el color de la
línea de la figura geométrica que compone una ventana.
Active
Define los colores predefinidos de la ventana activa. Soporta las siguientes etiquetas:
Foreground
Define el color del texto de la barra de título de la ventana activa.
Background
Define el color de la
barra de título de la ventana activa. (soporta gradientes).
:
Opacity
Define la opacidad de la ventana activa. Los valores en coma flotante, pueden estar comprendidos entre 0.0 y 1.0. Se requiere del uso de un gestor de composición de muestra para el servidor gráfico X, como xcompmgr para que esta opción sea funcional.
Outline
Define el color de la
línea de la figura geométrica que compone una ventana
activa cuando la estamos desplazando o redimensionando con el valor outline activado.
ClockStyle
Es la etiqueta que controla el aspecto visual de los relojes configurados en JWM. Soporta las siguientes etiquetas:
Font
Define la fuente de texto a utilizar por el reloj.
Foreground
Define el color predefinido del texto del reloj.
Background
Define
el color predefinido del fondo del reloj.
TrayStyle
Es la etiqueta que
controla el aspecto visual del panel principal y de cualquier panel o
contenedor de aplicaciones creado con la etiqueta Tray. Soporta los siguientes atributos:
* decorations : Define la decoración a utilizar por los paneles. El
valor por defecto es flat (plano). Los valores válidos son flat y motif, plano y 3D.
Soporta las siguientes etiquetas:
Font
Define la fuente de texto a utilizar por los elementos que componen el panel.
Foreground
Define el color predefinido del frente del panel.
Background
Define el color predefinido del fondo del panel.
Active
Define los colores predefinidos de los elementos activos del panel. Soporta las siguientes etiquetas:
Foreground
Define el color predefinido del frente para los elementos del panel.
Background
Define el color predefinido del fondo para los elementos del panel.
Opacity
Define la opacidad del panel. Los valores en coma flotante, pueden estar comprendidos entre 0.0 y 1.0. Se requiere del uso de un gestor de composición de muestra para el servidor gráfico X, como xcompmgr para que esta opción sea funcional.
TaskListStyle
Es la etiqueta que controla el aspecto visual de la lista de tareas y sus elementos. Soporta los siguientes atributos:
* decorations : Define la decoración a utilizar por la lista de tareas. El
valor por defecto es utilizar el derivado de la etiqueta TrayStyle. Los valores válidos son flat y motif, plano y 3D.
* group : Define si las ventanas se mostrarán agrupadas en la barra de tareas por su clase (WM_CLASS). El valor por defecto es false. Los valores válidos son true o false.
* list : Define qué ventanas se mostrarán en la lista de tareas. El valor por defecto es desktop (las ventanas del escritorio actual). Los valores válidos son desktop o all (se mostrarán todas las ventanas).
* showkill : Define si
el elemento del menú Matar, se muestra en la barra de
tareas y en la barra del título de la ventana. El valor por
defecto es true. Los valores válidos son true o false.
Soporta las siguientes etiquetas:
Font
Define la fuente de texto a utilizar por los elementos que se muestren en la lista de tareas.
Foreground
Define el color del texto
de los elementos que se muestren en la lista de tareas.
Background
Define el color del fondo de la lista de tareas. (soporta gradientes).
:
Outline
Define el color de la
línea externa del borde de la lista de tareas.
Active
Define los colores predefinidos de los elementos activos de la lista de tareas. Soporta las siguientes etiquetas:
Foreground
Define el color del texto del elemento activo en la lista de tareas.
Background
Define el color de fondo del elemento activo en la lista de tareas.
Outline
Define el color de la
línea externa del borde del elemento activo en la lista de tareas.
TrayButtonStyle
Es la etiqueta que controla el aspecto visual de los botones del panel y de los botones de cualquier panel o
contenedor de aplicaciones creado con la etiqueta Tray. Soporta las siguientes etiquetas:
Font
Define la fuente de texto a utilizar por las etiquetas de los botones del panel.
Foreground
Define el color del texto
de las etiquetas de los botones del panel.
Background
Define el color del fondo de los botones del panel. (soporta gradientes).
:
Outline
Define el color de la
línea externa del borde de los botones.
Active
Define los colores predefinidos de los botones del panel cuando están presionados. Soporta las siugientes etiquetas:
Foreground
Define el color del frente de los botones activos del panel.
Background
Define el color de fondo de los botones activos del panel.
Outline
Define el color de la
línea externa del borde de los botones activos del panel.
PagerStyle
Es la etiqueta que controla el aspecto visual del paginador. Soporta las siguientes etiquetas:
Outline
Define el color de la línea de las figuras geómetricas que representan a las ventanas en el paginador.
Foreground
Define el color de las figuras geómetricas que representan a las ventanas inactivas en el paginador.
Background
Define el color de fondo de los escritorios virtuales inactivos representados en el paginador.
Text
Define el color de
la fuente de texto a utilizar por las etiquetas de los escritorios
virtuales representados en el paginador.
Font
Define la fuente de texto a utilizar por las etiquetas de los escritorios virtuales representados en el paginador.
Active
Define los colores predefinidos de las ventanas activas que se muestran en el paginador. Soporta las siugientes etiquetas:
Foreground
Define el color de las figuras geómetricas que representan a las ventanas activas en el paginador.
Background
Define el color de fondo de los escritorios virtuales activos representados en el paginador.
MenuStyle
Es la etiqueta que
controla el aspecto visual del menú raíz de aplicaciones
y de los menús de las ventanas. Soporta los siguientes atributos:
* decorations : Define la decoración a utilizar por el menú. El
valor por defecto es flat (plano). Los valores válidos son flat y motif, plano y 3D.
Soporta las siguientes etiquetas:
Font
Define la fuente de texto a utilizar por los elementos que componen el menú.
Foreground
Define el color del texto de los elementos no seleccionados del menú.
Background
Define el color de fondo de los elementos no seleccionados del menú.
Active
Define el color de los elementos seleccionados del menú. Soporta las siguientes etiquetas:
Foreground
Define el color del texto de los elementos seleccionados del menú.
Background
Define el color de fondo
de los elementos seleccionados del menú. (soporta
gradientes).
:
Opacity
Define la opacidad del menú. Los valores en coma flotante, pueden estar comprendidos entre 0.0 y 1.0. Se requiere del uso de un gestor de composición de muestra para el servidor gráfico X, como xcompmgr para que esta opción sea funcional.
PopupStyle
Es la etiqueta que
controla el aspecto visual de las ventanas emergentes de
información que se muestran por ejemplo, cuando colocamos el
ratón sobre un botón indicador de la barra de tareas. Soporta los siguientes atributos:
* delay : Define el retardo en milisegundos antes de que una ventana emergente sea activada. Valor por defecto: 600.
* enabled : Si ponemos en false este atributo, la ventana emergente no se mostrará. Valor por defecto: true. Los valores válidos son true, false, button, clock, menu, pager y task.
Soporta las siguientes etiquetas:
Font
Define la fuente de texto a utilizar por la ventana emergente.
Outline
Define el color de la
línea externa del borde de la ventana emergente.
Foreground
Define el color del texto de la ventana emergente.
Background
Define el color de fondo de la ventana emergente.
9) Consejos de edición de los archivos de configuración
1) Errores de edición
Trabajar con archivos en formato XML, no es lo mismo que hacerlo con
archivos de texto simple. Cualquier etiqueta que nos dejemos sin
cerrar, o añadir para cerrar como nos puede suceder a la hora de
editar el menú, provocará que lo configurado no salga en
pantalla. Rotura del menú, ejecutables que no se inician, etc.
Siempre que trabajemos con estos archivos, una vez los hayamos editado,
ejecutamos la utilidad que viene con el paquete de Libxml2, xmllint,
apuntando al archivo de configuración editado. Si lo está
correctamente, se mostrará todo su contenido en la pantalla de
la ventana de terminal, si no lo está, nos indicará en
que línea falla la edición. Un ejemplo:
$ xmllint ~/.jwm/rc.xml
No hay que hacer caso, como en el ejemplo siguiente:
/home/jose/.jwm/autostart.xml:6: parser error : xmlParseEntityRef: no name
sleep 5 && conky -a tr -x 100 -y 190 & ^
/home/jose/.jwm/autostart.xml:16: parser error : xmlParseEntityRef: no name
killall -9 conky &> /dev/null ^
Ya que la utilización del símbolo & y &>
no afecta lo más mínimo a la ejecución de los
programas que lo utilizan. Pero esta sí que es más grave.
Porque nos está indicando que nos hemos dejado una etiqueta sin cerrar, antes de la etiqueta RestartCommand.
2) Comentar las entradas u opciones correspondientes
Evidentemente, en los archivos de texto simple, con poner
una almohadilla #, sobra para comentar una entrada. Aquí tenemos
que abrir y cerrar el comentario, con las correspondientes flechas <!-- y -->.
Todo el texto comprendido entre estas dos flechas quedará
inhabilitado. Mejor esto que tener que borrar la opción
completa. Sobre todo cuando se trata de probar comandos de
ejecución de aplicaciones al inicio de JWM. Un ejemplo:
Una manera rápida de darle formato al menú de
aplicaciones, teniendo en cuenta que será con diferencia el
archivo que más vamos a tocar, es ejecutar el siguiente comando.
Esto compactará el contenido del menú y lo
reordenará en el caso de que a la hora de editarlo, lo hayamos
dejado un poco "sucio".
Antes
<?xml version="1.0"?>
<JWM>
<!-- The root menu, if this is undefined you will not get a menu. -->
<!-- Additional RootMenu attributes: onroot, labeled, label -->
<RootMenu height="22">
<Program icon="mrxvt.png" label="Mrxvt">mrxvt</Program>
<Program icon="firefox.png"
label="Firefox">firefox</Program>
Primero editamos el archivo /etc/slim.conf
y añadimos el nombre del entorno a la lista de los que
tengamos
en el sistema instalados, si queremos que sea el entorno que se inicie
por defecto hay que colocarlo en el primer lugar de la lista.
#
Available sessions (first one is the default).
# The current chosen session name is replaced in the login_cmd
# above, so your login command can handle different sessions.
# see the xinitrc.sample file shipped with slim sources
sessions
Fluxbox,WindowMaker,Blackbox,XFce4,E17,JWM,IceWM,Openbox,ROX,Pekwm,AfterStep
Para finalizar editamos el archivo .xinitrc
de nuestro home y
añadimos la configuración del mismo, la variable DEFAULT_SESSION
sobreescribe el entorno gráfico de inicio predefinido que
pueda existir en el archivo /etc/slim.conf,
permitiendo añadir el ejecutable de otro entorno que no
esté configurado en el apartado anterior para ser iniciado
por
defecto, si queremos que sea JWM,
añadimos el nombre del ejecutable, aunque si lo
tenemos configurado el primero de la lista, esto no es necesario.
# La siguiente variable define
la sesión que será iniciada si el usuario
# no elige de forma explícita una sesión DEFAULT_SESSION=startjwm
Con pulsar F1 ya
podremos seleccionarlo de la lista e iniciarlo, si es el predefinido no
es necesario seleccionarlo de la lista, se iniciará por
defecto.