Instalar y configurar JWM en Debian

Ya tenía un poco abandonado esto (Ando molido) pero me ha dado tiempo a estar dejando una sesión de Joe Window Manager en condiciones.


En líneas generales, es un gestor de ventanas muy canónico, con un menú (Editable), bandeja del sistema, lista de ventanas, ventanas con el tamaño que tú quieres (Sí, lo digo por ti, mi querido i3) y además, un consumo de recursos mínimo, además de muy pocas dependencias.
Todo esto lo convierte en un excelente WM, usado por ejemplo en la conocida Puppy Linux, y que podremos dejar exactamente como queramos, dada su capacidad de personalización.

Para empezar, hay que tomar en cuenta que la versión de Debian Stable no es… Todo lo actual que debería. Así pues, nos aprovecharemos de sus escasas dependencias para no llenar el sistema de paquetes de distinto repositorio, y este lo instalaremos directamente desde los backports.

sudo apt-get install -t jessie-backports jwm

Salimos de la sesión, entramos en jwm, y nos encontraremos con algo que es feo a rabiar. Lo bueno, es que todo es configurable desde un solo archivo, y eso nos va a permitir ponerlo a nuestro gusto en una sola sentada. Dejaré mi archivo de configuración al final por si queréis alguna idea, aunque ya digo que es muy, pero muy sencillo de editar.
Para empezar, copiaremos el archivo de configuración de /etc y lo pegaremos en nuestro home:

cp /etc/jwm/system.jwmrc ~/.jwmrc

Desde el menú podemos reiniciar JWM en todo momento, con lo que basta con guardar el archivo de configuración y darle al restart para ver lo que estamos haciendo. Además de eso, caso de algún error en el archivo (Lo más normal es un “/>” sin poner, por ejemplo) podremos reiniciar desde consola (O gmrun) con:

jwm -restart

Una vez hemos copiado, podemos entrar a nuestro .jwm y dejarlo como queramos. Es XML, así que es importante cerrar todas las etiquetas para que no haya problemas.
Lo primero será el aspecto en general del WM. El menú podemos hacerlo después, y lo recomiendo porque es largo de hacer hasta dejarlo en condiciones.
Así pues, nos vamos a los estilos visuales, y vamos a dejar todo el aspecto de una forma uniforme. En mi caso opté por el color #232323 como fondo, para que sea oscuro, pero si que parezca un pegote, y #e1e1e1 como color de la fuente, un blanco-gris que no hará que se nos desprenda la retina. De la misma forma, necesitaremos un tercer color (mínimo) para las selecciones del menú, y en mi caso fue un color azul-grisáceo que es tónica habitual en mis esquemas de colores, #6578b7. Como fuente, la Cantarell.
Toda esta parte es de cada cual, lo bueno de este entorno es que puedes dejarlo exactamente como quieras.

Como puntos a tener en cuenta, el valor de opacidad que os aparece, sólo funciona en el caso de tener un compositor activado (Sin opciones) como pueden ser compton, xcompmgr o xcompmgr-dana. Puede ser buena idea, ya que ajustamos sólo lo que queremos como transparencia, sin afectar al resto de elementos (Por ejemplo, que el menú de aplicaciones sea translúcido, pero no así los menús de ventana, que dificultan la lectura).
De la misma manera, los iconos son un poco molestos de añadir, dado que JWM no lee directorios recursivamente. Si usáis Faenza, aquí están los accesos, que deberemos pegar en la sección de iconos:

/usr/share/icons/Faenza/actions/scalable
/usr/share/icons/Faenza/apps/scalable
/usr/share/icons/Faenza/categories/scalable
/usr/share/icons/Faenza/devices/scalable
/usr/share/icons/Faenza/emblems/scalable
/usr/share/icons/Faenza/mimetypes/scalable
/usr/share/icons/Faenza/places/scalable
/usr/share/icons/Faenza/status/scalable
/usr/share/icons/Faenza/stock/scalable

Bien, una vez tenemos el WM más bonito de ver, nos vamos al tema del wallpaper. Hay varias opciones, entre las que destaco Nitrogen (Muy fácil de usar y manejar), PcManFM, o el propio gestor de fondos de escritorio de JWM.
Para usar nitrogen, tendremos que añadir una línea al inicio, y nitrogen recuperará los ajustes seleccionados:

nitrogen –restore

Si, por el contrario, nos queremos olvidar de cambiar el fondo de escritorio, podemos añadir la ruta de la imagen:

~/Imágenes/tu_wallpaper.jpg

Además de eso, podemos seleccionar entre gradiente y color sólido. Para el gradiente, los colores deben de ir así:

#FFFFFF:#000000

En el caso de PcManFM, es simplemente añadir a la lista de aplicaciones al inicio el comando:

pcmanfm –desktop

Y desde ahí, con el botón secundario en el escritorio nos dará la opción de cambiar el fondo de escritorio. Esta será la opción que usaremos para crear un WM cómodo y clásico.

Vale. Dejamos la zona de estilos visuales, y pasamos al panel. Para ello vamos a la sección de y veremos que hay varios elementos. No es demasiado complejo de ajustar, pero iremos por partes:

  1.  El botón de menú. Permite tanto texto (Con la etiqueta “label”) como iconos, pero lo que más os puede llamar la atención es el root:123.
    Eso determina con qué botón se abrirá el menú, tanto en el botón como en el escritorio. Al activar PcManFM como gestor, se desactiva, así que lo dejamos en root:1, para que abra el menú de una forma normal, al pinchar en el botón.
  2. El spacer es un espaciador al cual le metemos el argumento de “cuanto queremos que espacie”. Fácil, ¿Verdad?
  3. El botón de “mostrar escritorio” en este caso es el símbolo “_”. Podemos cambiarlo con la etiqueta “icon” en vez de “label”.
  4. La lista de ventanas permite… Muy poco, sólo el tamaño. Si queremos que la longitud sea la máxima, y vaya repartiéndose de forma equitativa según cuantas aplicaciones tenemos abiertas, lo dejamos en 0.
  5. El Swallow es simplemente ejecutar una aplicación de consola en el panel. La clásica es el xload (Un medidor de la CPU) aunque nada nos impide cambiarlo por el xeyes y darle un toque… Vale, horrendo, pero es para gustos.
    En el caso que nos ocupa, simplemente marcamos cuando queremos que ocupe, y que comando. Luego las opciones dependen del comando en si, y recomiendo leer el man a la hora de configurarlo.
  6. El dock no tiene opciones. Es donde aparecerán nuestros iconos, como el indicador de volumen, steam, transmission…
  7. Para el paginador de escritorios hay sólo una opción: Si queremos que se vea (true) o no (false). El ajuste es en otro lado, luego iremos ahí.
  8. Y el reloj. Funciona con el comando date, con lo que poniendo en una consola ‘date –help’ nos dará las opciones. Por ejemplo, si queremos que salga el día y el mes, y la hora después, pondríamos (Sin las comillas) %d de %B // %H:%M.
    Además, nos permitirá ejecutar un comando al pinchar en él. Pondremos gsimplecal (En el repositorio normal de Debian) para tener un calendario sencillo.

En la zona de ajustes, justo debajo de los iconos (Sí, ya se que soy un poco desordenado) podremos ajustar los escritorios, el modelo de foco, etc. Iremos del mismo modo, por puntos.

  1. El paginador permite elegir cuantos escritorios queremos, y la disposición. Sin más. Si elegimos 2 de ancho y 5 de alto, tendremos 10 escritorios.
  2. La velocidad del doble click no recomiendo aumentarla (Salvo que seamos muy lentos) o disminuirla (Al final se hace incómodo).
  3. El DoubleClickDelta determina cuanto puede moverse el ratón durante un doble click (Dejarlo tal cual, el propio autor de JWM cambio el uso que se le da a esta variable, y no es necesario modificarla para nada).
  4. El modelo de enfoque es una cosa que sí merece la pena tocar. Por defecto funciona con sloppy, con lo que el ratón hace focus automático a la ventana sobre la que se encuentra. Yo, personalmente lo considero muy incómodo, y lo cambié a “click”, con lo que selecciono una ventana, y hasta que no pinche en otra no cambio de foco.
  5. El SnapMode es muy fácil de entender: Sencillamente, es la dureza de las ventanas a la hora de pegarse unas a otras. Podemos ajustarlo como border (Entre ventanas), screen (Sólo la pantalla) o none (Para que no se peguen entre si). Del mismo modo, decidiremos a cuanta distancia se activa el snap con la variable “distance”.
  6. Las 2 últimas variables determinan si el contenido de la ventana debe verse o no durante el arrastre y redimensionado. Si lo que tenemos es un ordenador realmente antiguo y queremos raspar todo lo posible, podemos dejarlo como outline. Por defecto es “opaque”, con lo que veremos lo que estamos haciendo.

De ahí, pasaremos a los atajos de teclado. Puede verse muy claro en mi jwmrc, pero añadir que las “máscaras” son las teclas modificadoras Ctrl, Alt, Shift y Windows, y se añaden con C, A, S y 4, respectivamente.
Lo que sí he de decir es que a la hora de ajustar las keybinds, jwm permite un “cierto” tiling básico, controlado por comandos. Si i3 nos daba el tiling por defecto, y activábamos el modo flotante por comando, aquí es a la inversa.

En mi archivo de configuración podéis ver algunas, y si queréis el listado completo, lo tenéis aquí.
En mi caso, conservo un poco de i3, y Win+d me maximizará la ventana a la mitad izquierda de la pantalla, Win+w a la derecha, etc. Puede que un WM puro tiling no sea del agrado de muchos, pero poder manipular las ventanas de una forma rápida y sencilla sí es algo a tener en cuenta.

Y ya sí, pasamos al menú. Lo he dejado para lo último por comodidad a la hora de configurar JWM. Sencillamente, para dejar el entorno funcionando sobra con un terminal, mientras que el menú es algo que se puede hacer después.
Aviso: Es puro XML, y llega a hacerse tedioso crear submenús e iconos, así que hacéos un café que va para largo. La ventaja, que también la tiene, es que sirve para hacer un listado de las aplicaciones que se usan, y de las que no. Asimismo, se puede dejar el menú Debian, para esos programas que no son de uso tan frecuente mediante include, que nos generará un menú Debian completo.

/etc/jwm/debian-menu

El tema de los iconos, es un punto un poco cansino de ajustar. Si usamos Faenza, arriba he dejado las rutas a las carpetas. Pero para añadir el icono correspondiente, deberemos navegar por esas carpetas hasta encontrar el que nos guste, y añadirlo sin la ruta ni la extensión.
Por ejemplo, si para firefox, el icono es /usr/share/icons/Faenza/apps/scalable/firefox.svg, lo añadiremos como firefox. Y ya.

Y para el final, vamos a ajustar los programas que se ejecutan al inicio. Debajo de la ruta de los iconos, creamos (Si no existe) la etiqueta y dentro añadimos lo que queramos ejecutar con el símbolo & al final de cada comando.

Por ejemplo:

volumeicon &
clipit &
pcmanfm –desktop &
wicd &

Con lo que abriríamos el icono para el volumen, el portapapeles, el gestor de redes wicd, y le indicaríamos a PcManFM que se haga cargo del escritorio, wallpaper, etc.

Lo prometido es deuda, aquí está mi configuración. Espero que os guste este fantástico gestor de ventanas tan configurable:

<?xml version=”1.0″?>
<JWM>

<!– The root menu. –>
<RootMenu onroot=”12″>
<Program icon=”lxterminal” label=”LxTerminal”>lxterminal</Program>
<Program icon=”file-manager” label=”Ranger”>xterm -fa monospace -fs 10 -e ranger</Program>
<Program icon=”rhythmbox” label=”Music On Console”>xterm -fa monospace -fs 10 -e mocp -m /media/almacen/Música</Program>
<Program icon=”firefox-original” label=”Firefox”>firefox-esr</Program>
<Separator/>
<Program icon=”folder-home” label=”PcManFM”>pcmanfm</Program>
<Program icon=”icedove” label=”Icedove”>icedove</Program>
<Separator/>
<Program icon=”preferences-color” label=”LxAppearance”>lxappearance</Program>
<Program icon=”menu-editor” label=”Editar JWM”>medit ~/.jwmrc</Program>
<Separator/>
<Program icon=”gimp” label=”Gimp”>gimp</Program>
<Program icon=”inkscape” label=”Inkscape”>inkscape</Program>
<Separator/>
<Program icon=”htop” label=”Htop”>xterm -fa monospace -fs 10 -e htop</Program>
<Program icon=”steam” label=”Steam”>steam</Program>
<Separator/>
<Include>/etc/jwm/debian-menu</Include>
<Separator/>
<Program icon=”stock_close” label=”Xkill”>xkill</Program>
<Program icon=”gtk-execute” label=”GmRun”>gmrun</Program>
<Separator/>
<Program icon=”lock” label=”Lock”>
xlock -mode blank
</Program>
<Restart label=”Restart” icon=”gtk-refresh”/>
<Exit label=”Exit” confirm=”true” icon=”gnome-session-logout”/>
</RootMenu>

<!– Options for program groups. –>
<Group>
<Option>tiled</Option>
<Option>aerosnap</Option>
</Group>
<Group>
<Class>Pidgin</Class>
<Option>sticky</Option>
</Group>
<Group>
<Name>xterm</Name>
<Option>vmax</Option>
</Group>
<Group>
<Name>xclock</Name>
<Option>drag</Option>
<Option>notitle</Option>
</Group>

<!– Tray at the bottom. –>
<Tray x=”0″ y=”-1″ height=”25″ autohide=”off”>

<TrayButton icon=”/usr/share/icons/Faenza/places/scalable/debian-logo.svg”>root:1</TrayButton>
<Spacer width=”2″/>
<TrayButton label=”_”>showdesktop</TrayButton>
<Spacer width=”4″/>
<TaskList maxwidth=”0″/>
<Swallow name=”xload” width=”50″>
xload -nolabel -bg ‘#232323’ -fg ‘#6578b7’ -update 1
</Swallow>
<Dock/>
<Pager labeled=”true”/>
<Spacer width=”3″/>
<Clock format=”%H:%M”><Button mask=”1″>exec:gsimplecal</Button></Clock>
<Spacer width=”3″/>

</Tray>

<!– Visual Styles –>
<WindowStyle>
<Font>Cantarell-10</Font>
<Width>4</Width>
<Height>21</Height>
<Corner>0</Corner>
<Foreground>#232323</Foreground>
<Background>#232323</Background>
<Outline>#000000</Outline>
<Opacity>0.5</Opacity>
<Active>
<Foreground>#e1e1e1</Foreground>
<Background>#232323</Background>
<Outline>#000000</Outline>
<Opacity>1.0</Opacity>
</Active>
</WindowStyle>
<!– –>
<TrayStyle group=”true” list=”all”>
<Font>Cantarell-10</Font>
<Background>#232323</Background>
<Foreground>#e1e1e1</Foreground>
<Outline>#000000</Outline>
<Opacity>0.75</Opacity>
</TrayStyle>
<!— –>
<PagerStyle>
<Outline>#232323</Outline>
<Foreground>#555555</Foreground>
<Background>#333333</Background>
<Text>#333333</Text>
<Active>
<Foreground>#e1e1e1</Foreground>
<Background>#6578b7</Background>
</Active>
</PagerStyle>
<!– –>
<MenuStyle>
<Font>Cantarell-10</Font>
<Foreground>#e1e1e1</Foreground>
<Background>#232323 </Background>
<Outline>#000000</Outline>
<Active>
<Foreground>#e1e1e1</Foreground>
<Background>#6578b7</Background>
</Active>
<Opacity>0.85</Opacity>
</MenuStyle>
<!– –>
<PopupStyle>
<Font>Cantarell-9</Font>
<Foreground>#232323</Foreground>
<Background>#6578b7</Background>
</PopupStyle>

<!– Path where icons can be found.
IconPath can be listed multiple times to allow searching
for icons in multiple paths.
–>
<IconPath>/usr/share/icons/Faenza/actions/scalable</IconPath>
<IconPath>/usr/share/icons/Faenza/apps/scalable</IconPath>
<IconPath>/usr/share/icons/Faenza/categories/scalable</IconPath>
<IconPath>/usr/share/icons/Faenza/devices/scalable</IconPath>
<IconPath>/usr/share/icons/Faenza/emblems/scalable</IconPath>
<IconPath>/usr/share/icons/Faenza/mimetypes/scalable</IconPath>
<IconPath>/usr/share/icons/Faenza/places/scalable</IconPath>
<IconPath>/usr/share/icons/Faenza/status/scalable</IconPath>
<IconPath>/usr/share/icons/Faenza/stock/scalable</IconPath>
<IconPath>/usr/share/icons</IconPath>
<IconPath>/usr/share/pixmaps</IconPath>
<IconPath>
/usr/local/share/jwm
</IconPath>

<StartupCommand>
volumeicon &
clipit &
pcmanfm–desktop &
</StartupCommand>

<!– Virtual Desktops –>
<!– Desktop tags can be contained within Desktops for desktop names. –>
<Desktops width=”2″ height=”1″>
<!– Default background. Note that a Background tag can be
contained within a Desktop tag to give a specific background
for that desktop.
–>
<Background type=”image”>/home/nacho/Imágenes/71.png</Background>
</Desktops>

<!– Double click speed (in milliseconds) –>
<DoubleClickSpeed>400</DoubleClickSpeed>

<!– Double click delta (in pixels) –>
<DoubleClickDelta>2</DoubleClickDelta>

<!– The focus model (sloppy or click) –>
<FocusModel>click</FocusModel>

<!– The snap mode (none, screen, or border) –>
<SnapMode distance=”10″>border</SnapMode>

<!– The move mode (outline or opaque) –>
<MoveMode>opaque</MoveMode>

<!– The resize mode (outline or opaque) –>
<ResizeMode>opaque</ResizeMode>

<!– 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=”4″ key=”d”>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=”4″ key=”q”>maxleft</Key>
<Key mask=”4″ key=”w”>maxright</Key>
<Key mask=”4″ key=”e”>maximize</Key>
<Key mask=”4″ key=”F4″>exec:xkill</Key>
<Key mask=”4″ key=”s”>shade</Key>
<Key mask=”4″ key=”1″>desktop1</Key>
<Key mask=”4″ key=”2″>desktop2</Key>

</JWM>

¡Ah! Y que no me olvide:

¡FELIZ AÑO NUEVO!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s