Manualinux
http://www.nvu.com InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

Administradores de SesionesAdministradores de VentanasEscritoriosUtilidades de Escritorio

Administradores de Ventanas - GolemAdministradores de Ventanas - Openbox

Administradores de Ventanas - JWM

Página - 1Página - 2




Administradores de Ventanas - JWM




Copyright

Copyright © José Luis Lara Carrascal  2006-2019   http://manualinux.eu



Sumario

Introducción
Preliminares
Instalación
Configuración de JWM
1) El archivo de configuración principal
2) Editar el menú de aplicaciones
3) Los escritorios virtuales y el fondo de pantalla
4) El panel principal y sus componentes
5) Aplicaciones al inicio de JWM
6) Los atajos de teclado
7) Personalizar el comportamiento de las ventanas
8) Creación y edición de los temas de JWM
9) Consejos de edición de los archivos de configuración
Configurar el inicio de JWM
Iniciamos JWM
Paquetes binarios
Enlaces




6) Los atajos de teclado  Bloc de Notas

6a) ~/.jwm/keys.xml 


Es el archivo de configuración de los atajos de teclado de JWM. También se pueden añadir comandos de ejecución de aplicaciones.

<?xml version="1.0"?>

<JWM>

    <!-- Key bindings -->
    <Key key="Up">up</Key>
    <Key key="Down">down</Key>
    <Key key="Right">right</Key>
    <Key key="Left">left</Key>
    <Key key="h">left</Key>
    <Key key="j">down</Key>
    <Key key="k">up</Key>
    <Key key="l">right</Key>
    <Key key="Return">select</Key>
    <Key key="Escape">escape</Key>

   <Key mask="A" key="Tab">nextstacked</Key>
   <Key mask="A" key="F4">close</Key>
   <Key mask="A" key="#">desktop#</Key>
   <Key mask="A" key="F1">root:1</Key>
   <Key mask="A" key="F2">window</Key>
   <Key mask="A" key="F10">maximize</Key>
   <Key mask="A" key="Right">rdesktop</Key>
   <Key mask="A" key="Left">ldesktop</Key>
   <Key mask="A" key="Up">udesktop</Key>
   <Key mask="A" key="Down">ddesktop</Key>
  
</JWM>  


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.

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.

<?xml version="1.0"?>

<JWM>

   <Group>
      <Class>Pidgin</Class>
      <Option>sticky</Option>
   </Group>

    <Group>
        <Name>xclock</Name>
        <Option>drag</Option>
        <Option>notitle</Option>
    </Group>

   <Group>
      <Name>xterm</Name>
      <Option>vmax</Option>
      <Option>icon:terminal.png</Option>
   </Group>
  
</JWM>  


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"

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: : 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: : 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.

* 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: :
Establece la anchura en píxeles para este grupo de ventanas.

* x: : 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  Bloc de Notas

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.

<Program icon="preferences-desktop-theme.png" label="Azul">$HOME/.jwm/themes/azul.sh</Program>

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.

<?xml version="1.0"?>

<JWM>

        <Include>$HOME/.jwm/autostart.xml</Include>
        <Include>$HOME/.jwm/dock.xml</Include>
        <Include>$HOME/.jwm/menu.xml</Include>
        <Include>$HOME/.jwm/panel.xml</Include>   
        <Include>$HOME/.jwm/winoptions.xml</Include>
        <Include>$HOME/.jwm/keys.xml</Include>
        <Include>$HOME/.jwm/desktops.xml</Include>
        <Include>$HOME/.jwm/themes/azul.xml</Include>


3) Y por último, el correspondiente archivo de configuración del tema en cuestión. En este caso, ~/.jwm/themes/azul.xml.

<?xml version="1.0" encoding="UTF-8"?>

<JWM>

  <!-- Visual Styles -->
 
  <WindowStyle>
    <Foreground>gray</Foreground>
    <Background>#bcdbeb:#f3f4f5</Background>
    <Opacity>0.5:0.9:0.1</Opacity>
    <Font>Sans-10:bold</Font>
    <Width>4</Width>
    <Height>23</Height>
    <Active>
      <Foreground>black</Foreground>
      <Background>#f3f4f5:#bcdbeb</Background>
      <Opacity>1.0</Opacity>
    </Active>
  </WindowStyle>

   <TaskListStyle>
      <Font>Sans-10:bold</Font>
      <Foreground>gray</Foreground>
      <Background>#d0e1e9:#f3f4f5</Background>
    <Active>
      <Foreground>white</Foreground>
      <Background>##DEEFFF:#AFDBFF</Background>
    </Active>
   </TaskListStyle>
   
  <!-- Additional TrayStyle attribute: insert -->
  <TrayStyle>
    <Font>Sans-10:bold</Font>
    <Foreground>black</Foreground>
    <Background>#d0e1e9</Background>
    <Opacity>0.75</Opacity>
  </TrayStyle>

   <TrayButtonStyle>
      <Font>Sans-10:bold</Font>
      <Foreground>black</Foreground>
      <Background>#d0e1e9</Background>
      <Active>
      <Foreground>black</Foreground>
      <Background>#f3f4f5:#bcdbeb</Background>
      </Active>
   </TrayButtonStyle>
 
  <PagerStyle>
    <Foreground>gray90</Foreground>
    <Background>#d0e1e9</Background>
    <Text>#808080</Text>
    <Active>
      <Foreground>#B3B3C4</Foreground>
      <Background>#14E8FF</Background>
    </Active>
  </PagerStyle>
 
  <MenuStyle>
    <Font>Sans-10</Font>
    <Foreground>black</Foreground>
    <Background>#d0e1e9</Background>
    <Opacity>0.85</Opacity>
    <Active>
      <Foreground>black</Foreground>
      <Background>#f3f4f5:#bcdbeb</Background>
    </Active>
  </MenuStyle>
 
  <PopupStyle>
    <Font>Sans-10</Font>
    <Foreground>black</Foreground>
    <Background>yellow</Background>
  </PopupStyle>
 
</JWM>


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:

$ cp ~/.jwm/themes/azul.xml ~/.jwm/themes/ejemplo.xml
$ cp ~/.jwm/themes/azul.sh ~/.jwm/themes/ejemplo.sh

Editamos el script ~/.jwm/themes/ejemplo.sh, cambiando el nombre al tema que apunta:

#!/bin/sh

sed -i "12c\\\t<Include>$HOME/.jwm/themes/ejemplo.xml</Include>" $HOME/.jwm/rc.xml
jwm -restart

Y añadimos la entrada correspondiente al submenú de temas del menú raíz de JWM, para que apunte al nuevo script creado.

                <Menu icon="preferences-desktop-theme.png" label="Temas">
            <Program icon="preferences-desktop-theme.png" label="Azul">$HOME/.jwm/themes/azul.sh</Program>
            <Program icon="preferences-desktop-theme.png" label="Ejemplo">$HOME/.jwm/themes/ejemplo.sh</Program>
            <Program icon="preferences-desktop-theme.png" label="Fucsia">$HOME/.jwm/themes/fucsia.sh</Program>

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.

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.

* 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).

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.

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.

/home/jose/.jwm/autostart.xml:10: parser error : expected '>'
        <RestartCommand>
        ^


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:

<JWM>

    <StartupCommand>
<!--    sleep 5 && conky -a tr -x 100 -y 190 &
        startwbar & -->
    </StartupCommand>

2) Formatear el menú con xmllint

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.

$ xmllint --format --encode UTF-8 ~/.jwm/menu.xml > ~/.jwm/menu-1.xml

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>

        <!-- Addititional Menu attributes: height, labeled -->
        <Menu icon="gnome-terminal.png" label="Terminales">
            <Program icon="gnome-terminal.png" label="Aterm">aterm</Program>
            <Program icon="gnome-terminal.png" label="Eterm">Eterm</Program>
            <Program icon="gnome-terminal.png" label="Mrxvt">mrxvt</Program>
            <Program icon="gnome-terminal.png" label="Rxvt">rxvt</Program>
            <Program icon="gnome-terminal.png" label="Urxvt">urxvt</Program>
            <Program icon="gnome-terminal.png" label="Xterm">xterm</Program>
            <Program icon="gnome-terminal.png" label="ROXTerm">roxterm</Program>
                 </Menu>

Después
<?xml version="1.0" encoding="UTF-8"?>
<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>
    <!-- Addititional Menu attributes: height, labeled -->
    <Menu icon="gnome-terminal.png" label="Terminales">
      <Program icon="gnome-terminal.png" label="Aterm">aterm</Program>
      <Program icon="gnome-terminal.png" label="Eterm">Eterm</Program>
      <Program icon="gnome-terminal.png" label="Mrxvt">mrxvt</Program>
      <Program icon="gnome-terminal.png" label="Rxvt">rxvt</Program>
      <Program icon="gnome-terminal.png" label="Urxvt">urxvt</Program>
      <Program icon="gnome-terminal.png" label="Xterm">xterm</Program>
      <Program icon="gnome-terminal.png" label="ROXTerm">roxterm</Program>
    </Menu>

Si nos convence el aspecto del menú formateado, pues lo copiamos sobreescribiendo el antiguo.

$ mv -f ~/.jwm/menu-1.xml ~/.jwm/menu.xml



Configurar el inicio de JWM  Bloc de Notas

1) Para los que inician X desde terminal con el comando startx


Editamos el archivo ~/.xinitrc que se encuentra en nuestro home, si no existe lo creamos, y añadimos lo siguiente:

exec /usr/local/bin/startjwm


2) XDM
 
Editamos el archivo ~/.xsession que se encuentra en nuestro home, si no existe lo creamos, y añadimos lo siguiente:

exec /usr/local/bin/startjwm


3) GDM/KDM en OpenMandriva

Creamos un archivo y lo nombramos 52JWM, lo editamos y añadimos lo siguiente:

NAME=JWM
ICON=
EXEC=/usr/local/bin/startjwm
DESC=Joe's Window Manager
SCRIPT:
exec /usr/local/bin/startjwm

Lo instalamos en el directorio /etc/X11/wmsession.d, y ejecutamos el comando fndSession para que genere los correspondientes archivos desktop que se crearán de forma automática en los respectivos directorios de ubicación de las sesiones de GDM y KDM.

$ su
# install -m644 52JWM /etc/X11/wmsession.d
# fndSession

Ubicación de los archivos desktop creados en Mandriva
GDM /etc/X11/dm/Sessions/52JWM.desktop
KDM /usr/share/apps/kdm/sessions/52JWM.desktop


4) GDM/KDM en Fedora

Abrimos un editor de texto y añadimos lo siguiente al mismo:

[Desktop Entry]
Encoding=UTF-8
Name=JWM
Comment=Joe's Window Manager
Exec=/usr/local/bin/startjwm
Terminal=False
TryExec=/usr/local/bin/startjwm

Lo guardamos con el nombre jwm.desktop, con la codificación de caracteres, UTF-8, y lo instalamos en /usr/share/xsessions, y en /usr/share/kde4/apps/kdm/sessions.

$ su
# install -m644 jwm.desktop /usr/share/xsessions
# install -m644 jwm.desktop /usr/share/kde4/apps/kdm/sessions

Ubicación de los archivos desktop creados en Fedora
GDM /usr/share/xsessions/jwm.desktop
KDM /usr/share/kde4/apps/kdm/sessions/jwm.desktop


5) GDM/KDM en Slackware y derivados

Abrimos un editor de texto y añadimos lo siguiente al mismo:

#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
    xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi

# Start the window manager:
exec /usr/local/bin/startjwm


Lo guardamos con el nombre xinitrc.jwm, y lo instalamos en /etc/X11/xinit.

$ su -c "install -m755 xinitrc.jwm /etc/X11/xinit"

En el mismo editor de texto que tenemos abierto, borramos lo anterior y añadimos lo siguiente:

[Desktop Entry]
Encoding=UTF-8
Name=JWM
Comment=Joe's Window Manager
Exec=/etc/X11/xinit/xinitrc.jwm
Icon=
Type=Application

Lo guardamos con el nombre jwm.desktop, con la codificación de caracteres, UTF-8, y lo instalamos en /usr/share/xsessions, y en /usr/share/apps/kdm/sessions.

$ su
# install -m644 jwm.desktop /usr/share/xsessions
# install -m644 jwm.desktop /usr/share/apps/kdm/sessions

Ubicación de los archivos desktop creados en Slackware y derivados
GDM /usr/share/xsessions/jwm.desktop
KDM /usr/share/apps/kdm/sessions/jwm.desktop


6) GDM/KDM en openSUSE

Abrimos un editor de texto y añadimos lo siguiente al mismo:

[Desktop Entry]
X-SuSE-translate=true
Encoding=UTF-8
Type=XSession
Exec=/usr/local/bin/startjwm
TryExec=/usr/local/bin/startjwm
Name=JWM
Comment=Joe's Window Manager

Lo guardamos con el nombre jwm.desktop, con la codificación de caracteres, UTF-8, y lo instalamos en /usr/share/xsessions, y en /usr/share/kde4/apps/kdm/sessions.

$ su
# install -m644 jwm.desktop /usr/share/xsessions
# install -m644 jwm.desktop /usr/share/kde4/apps/kdm/sessions

Ubicación de los archivos desktop creados en openSUSE
GDM /usr/share/xsessions/jwm.desktop
KDM /usr/share/kde4/apps/kdm/sessions/jwm.desktop


7) GDM/KDM en Debian y derivados

Abrimos un editor de texto y añadimos lo siguiente al mismo:

[Desktop Entry]
Encoding=UTF-8
Type=XSession
Exec=/usr/local/bin/startjwm
TryExec=/usr/local/bin/startjwm
Name=JWM

Lo guardamos con el nombre jwm.desktop, con la codificación de caracteres, UTF-8, y lo instalamos en /usr/share/xsessions, y en /usr/share/kde4/apps/kdm/sessions.

$ su
# install -m644 jwm.desktop /usr/share/xsessions
# install -m644 jwm.desktop /usr/share/kde4/apps/kdm/sessions

Ubicación de los archivos desktop creados en Debian y derivados
GDM /usr/share/xsessions/jwm.desktop
KDM /usr/share/kde4/apps/kdm/sessions/jwm.desktop


8) Qingy

Abrimos un editor de texto y añadimos lo siguiente al mismo:

/usr/local/bin/startjwm

Lo guardamos con el nombre JWM, y lo instalamos en /etc/qingy/Xsessions.

$ su -c "install -m755 JWM /etc/qingy/Xsessions"


9) SLiM
   
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

case $1 in
XFce4)
    exec startxfce4
    ;;
IceWM)
    exec icewm-session
    ;;
WindowMaker)
    exec wmaker
    ;;
Blackbox)
    exec startblackbox
    ;;
Fluxbox)
    exec startfluxbox
    ;;
E17)
    exec enlightenment_start
    ;;
JWM)
    exec startjwm
    ;;

Openbox)
    exec openbox-session
    ;;
Pekwm)
    exec pekwm
    ;;
ROX)
    exec rox-session
    ;;
AfterStep)
    exec afterstep
    ;;
*)
    exec $DEFAULT_SESSION
    ;;
esac

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.



Iniciamos JWM    


Captura JWM - 1


Captura JWM - 2


Captura JWM - 3




Enlaces  


http://joewing.net/projects/jwm/ >> La web de JWM.

https://github.com/joewing/jwm >> El proyecto en GitHub.


Foro Galería Blog


Página - 1Página - 2

Actualizado el 16-05-2019

Administradores de Ventanas - JWM

Administradores de Ventanas - GolemAdministradores de Ventanas - Openbox