Instalar y configurar I3 (1 de 2)

Para iniciar con la serie de posts de entornos gráficos, he decidido empezar por el que uso actualmente y me está dando tantas satisfacciones: I3

Seguro que todos tenemos en la mente la interfaz del Windows Phone. Esa especie de puzzle de colorines que ocupa toda la pantalla del móvil.

Eso es lo que se llama “tiling”, que básicamente viene de “tile”, baldosa. La idea es la misma que para esa interfaz, sólo que aplicándola a una pantalla de ordenador: Ocupar todo el espacio de la pantalla sin desperdiciarlo, o perdiendo el tiempo arrastrando ventanas.

Es un estilo con ventajas y desventajas, por supuesto, vamos a hacer un pequeño repaso para ver si encaja la idea (ja, ja) con la idea de un escritorio funcional, bonito y productivo.

Ventajas:

  1. Como WM, es tremendamente configurable, de una forma muy sencilla e intuitiva. Todo se encuentra en un archivo que es fácilmente editable.
  2. El uso del ratón se minimiza hasta el extremo. Si bien aplicaciones como firefox se manejan – casi todo – con ratón, trabajar con el teclado tiene la ventaja de la velocidad y comodidad.
  3. Las ventanas se autoorganizan de una forma nativa muy eficiente. Aunque requiere un poco de configuración para dejarlo a nuestro gusto, el manejo y la presentación visual merecen la pena.
  4. Consume una miseria, y menos. Para ordenadores con pocos recursos es una opción a tener muy en cuenta.

Desventajas:

  1. Cambiar de ratón a teclado para casi todo requiere tiempo y recordar los atajos. No es algo que se coja en 1 sesión, aunque tampoco es que cueste una enormidad. Si se es jugador de videojuegos (O usuario de vim) en 2 días ya te estás moviendo como si nada.
  2. Funciona mejor en monitores panorámicos. Si usamos uno en formato 4:3 ganaremos en aprovechamiento de la pantalla, pero según que aplicaciones, como el navegador, necesitarán ir en pantalla completa.
  3. Sin una configuración para personalizarlo, no se aprovecha el potencial de este gestor de ventanas ultra ligero.

Ya un poco más en profundidad, este WM parte de un archivo de configuración situado en /home/usuario/.i3/config. Al final del post pegaré el mío, por si a alguien le da ideas.

Asimismo, el sistema de accesos es por una tecla modificadora (Shift, Ctrl, Alt o Win) o combinaciones de estas. Por ejemplo:

  • Cambiar al escritorio 3: Win+3
  • Enviar una ventana al escritorio 1: Win+Shift+1
  • Dividir horizontalmente el espacio de una ventana para crear otra: Win+h

¿Parece raro? Garantizo que se coge en un momento. De hecho, escritorios como GNOME y XFCE4 tienen un tiling muy básico por las evidentes ventajas que conlleva.

Además de eso, la guía de I3 es tremendamente completa y explicada de una forma estupenda, con lo que ante cualquier duda, se puede consultar en un momento.

Dicho esto, vamos a ir instalando y explicando sobre la marcha. Lo primero, instalamos el entorno, el panel y el menú básico.

sudo apt-get install i3 i3status suckless-tools

Si estamos en el entorno X, reiniciamos y veremos un entorno… errr… FEO. Pero en mayúsculas. Ahí nos aparecerán 2 ventanas.

La primera nos indica si queremos generar el archivo config de i3.  Le decimos que sí, y pasamos a la siguiente, que nos pregunta si queremos que la tecla modificadora sea Win (Mod4) o Alt. Recomiendo elegir la tecla de Win, para sacarle algún uso, y porque Alt es conveniente tenerla disponible para otros atajos.

Y… ¿Ahora qué?

Ahora viene la parte interesante. El acceso directo a la terminal es Win+Enter, y el acceso directo al menú Win+d. Sin embargo, si presionamos para el menú, veremos que nos sale una barra arriba con todo lo que está en /usr/bin, sea ejecutable o no.

Para empezar a dejar el entorno en condiciones, vamos a editar el archivo de configuración.

nano ~/.i3/config

Lo primero, será el menú, para tener algo “usable”. Hay varias opciones para esto, como rofi, morc-menu, j4-dmenu, 9menu… Nosotros vamos a centrarnos de momento en lo que tenemos, así que nos vamos a donde está el acceso al menú y lo cambiamos:

De esto:

bindsym $mod+d exec dmenu_run

A esto otro:

bindsym $mod+d exec –no-startup-id i3-dmenu-desktop –dmenu=”dmenu -fn ‘-*-terminus-*-*-*-*-14-*-*-*-*-*-*-*’ -i -l 20″

Asimismo, haremos algo parecido con el terminal, para que no nos dejemos los ojos mirando “a ver que pone”.

De esto:

bindsym $mod+Return exec i3-sensible-terminal

A esto otro:

bindsym $mod+Return exec xterm -fa monospace -fs 10

Otra opción es usar el terminal de LXDE, lxterminal. Muy veloz, permite transparencias, copiar…

Lo instalamos con

sudo apt-get install lxterminal

y en el archivo config lo ponemos tal cual

bindsym $mod+Return exec lxterminal

Una vez hemos modificado el menu y el terminal, guardamos el archivo, activamos los cambios con Win+Shift+c y reiniciamos i3 con Win+Shift+r. Si ahora presionamos Win+d, veremos un menú más legible y grande, donde podremos desplazarnos con más comodidad, y del mismo modo, la terminal.

Hay varias cosas muy propias de I3 (O cualquier escritorio tiling). Veremos que nuestro panel no tiene lista de ventanas y sin embargo muestra el escritorio en el que estamos. Esto es porque en i3 de un sólo vistazo podemos ver que ventanas tenemos abiertas. Para complementar esto, se usa el cambio de escritorio, de tal forma que cada escritorio es en si mismo un contenedor de ventanas.

Por ejemplo, podríamos tener, por escritorio:

  1. Firefox, Moc y una terminal
  2. Ranger y Libreoffice
  3. Gimp

Parece lioso, pero no lo es en absoluto. El propio archivo de configuración nos permite asignar aplicaciones por escritorio, de tal manera que al abrir gimp, por ejemplo, lo haga en el escritorio 3.

Además, se pueden renombrar los escritorios. En mi archivo config veremos ejemplos de ello, con lo que uniéndolo a lo anterior, podemos hacer que al abrir gimp, se abra en el escritorio “5: Gimp”, ayudándonos con la organización.

El manejo de las ventanas es rápido de coger. Por defecto, i3 abre las ventanas maximizadas a lo alto, con lo que nos las monta “en serie”. Hacemos la prueba con terminales y vemos que las va colocando una al lado de la otra y podemos movernos entre ventanas con la tecla Win y los cursores.

Sin embargo, a partir de la 3ª terminal se hace incómodo (Salvo que tengamos un monitor ultrapanorámico) con lo que es hora de empezar a jugar con la organización de i3.

ej1

Cerramos las terminales con Win+Shift+q, y vamos a organizar 4 terminales de una forma eficiente jugando con win+v y win+h, lo cual divide cada ventana (O contenedor, vamos a darle el nombre correcto) vertical u horizontalmente.

Abrimos 2 terminales y las seleccionamos a la vez con win+a, lo cual interpreta que esas ventanas son 1 conjunto. Si ahora presionamos win+v y abrimos otra terminal, veremos que la abre abajo. Y ya para rematar, pulsamos Win+h y nos abrirá la 4ª terminal aprovechando el espacio de una forma eficiente.

¿Os ha quedado claro? ¿No? Bueno, normal viendo como me he explicado. Lo que hemos hecho es:

  1. Abrir 2 terminales y seleccionarlas como conjunto con Win+a
  2. Partir verticalmente ese conjunto, para que la 3ª terminal salga debajo
  3. Partir horizontalmente la 3ª terminal, para colocar la 4ª.

ej3

Parece un lío y hasta lento, pero es simple costumbre e ir probando hasta que se le coge el truco. No es el clásico escritorio y requiere un pelín más de tiempo, aunque a cambio da mucha velocidad en cuanto lo usas de normal.

I3 tiene, de todos modos, la opción de permitir ventanas flotantes. No está pensado para eso, pero seamos honestos, abrir una calculadora a pantalla completa, pues como que queda “raro”. Para eso tenemos el atajo Win+Shift+Espacio, el cual podrá la ventana enfocada como flotante. Y en el config podemos ajustar que ventanas queremos como flotantes por defecto:

for_window [class=”Galculator”] floating enable

De igual forma, existen 2 tipos de “layouts” para el escritorio extras, que son el cascada, y por pestañas. En ambos casos nos dejarán las aplicaciones a pantalla completa, y podremos desplazarnos por las ventanas como siempre, con Win+cursores.

Es interesante que estos layouts son compatibles con el modo normal, con lo que podríamos tener la mitad de la pantalla en normal, 1 cuarto de la pantalla en cascada y el otro cuarto en pestañas. Pero bueno, para mi eso son formas de complicarse la vida innecesariamente, y recomiendo que las aplicaciones se vayan repartiendo automáticamente por los distintos escritorios de un modo ordenado.

Como dije, pondré mi config por si a alguien le sirve para sacar ideas, aunque toca leerse la documentación de i3 para sacarle partido. Si alguien tiene alguna duda, intentaré resolverla.

Y para el siguiente post, configuraremos la barra de i3.

# Configuración de I3
# Regenerar el config: i3-config-wizard

# Tecla de función Windows
set $mod Mod4

# Fuente de las ventanas
font pango:DejaVu Sans Mono 8
# font -misc-fixed-medium-r-normal–13-120-75-75-C-70-iso10646-1

# Ratón+$mod cambiar tamaño de las ventanas
floating_modifier $mod

# Terminal y Navegador de archivos
bindsym $mod+Return exec lxterminal
bindsym $mod+Shift+Return exec xterm -fa monospace -fs 10 -bg ‘#232323’ -e ranger

# Aplicaciones
bindsym $mod+F1 exec firefox-esr
bindsym $mod+F2 exec xterm -fa monospace -fs 10 -bg ‘#232323’ -e mocp -m /media/almacen/Música

# Conky
bindsym $mod+c exec s-conky

# Matar la ventana activa
bindsym $mod+Shift+q kill

# Captura de pantalla
bindsym Print exec scrot -e ‘mv $f ~/Escritorio’

# Dmenu
# bindsym $mod+d exec dmenu_run

# J4-Dmenu-Desktop
# bindsym $mod+a exec –no-startup-id j4-dmenu-desktop –dmenu=”dmenu -fn ‘-*-terminus-*-*-*-*-14-*-*-*-*-*-*-*’ -i -l 20″

# GmRun
bindsym $mod+d exec –no-startup-id gmrun

# 9Menu
bindsym $mod+s exec –no-startup-id 9menu -popup -shell rc -fg ‘#e1e1e1’ -bg ‘#232323’ -font ‘-*-terminus-*-*-*-*-14-*-*-*-*-*-*-*’ -file /home/nacho/scripts/menu.sh

# Cambiar foco
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

# Mover la ventana en foco
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right

# Desactivar el focus vía ratón
focus_follows_mouse no

# Dividir horizontalmente
bindsym $mod+h split h

# Dividir verticalmente
bindsym $mod+v split v

# Pantalla completa en el foco
bindsym $mod+f fullscreen

# Cambiar modo (Normal/Pestañas/Cascada)
# Desactivar este comando para opciones separadas, este alterna entre modos
bindsym $mod+w layout toggle

# Modo flotante
bindsym $mod+Shift+space floating toggle

# Cambiar entre tiling / floating
bindsym $mod+space focus mode_toggle

# Seleccionar el contenedor principal
bindsym $mod+a focus parent

# Renombrar escritorios
set $base “1: Base”
set $extra “2: Extra”
set $media “3: Media”
set $steam “4: Steam”
set $gimp “5: Gimp”

# Cambiar al escritorio
bindsym $mod+1 workspace $base
bindsym $mod+2 workspace $extra
bindsym $mod+3 workspace $media
bindsym $mod+4 workspace $steam
bindsym $mod+5 workspace $gimp

# Mover foco al escritorio
bindsym $mod+Shift+1 move container to workspace $base
bindsym $mod+Shift+2 move container to workspace $extra
bindsym $mod+Shift+3 move container to workspace $media
bindsym $mod+Shift+4 move container to workspace $steam
bindsym $mod+Shift+5 move container to workspace $gimp

# Asignar aplicaciones a cada escritorio
assign [class=”Steam”] $steam
assign [class=”Gimp”] $gimp

# Recargar la configuración
bindsym $mod+Shift+c reload

# Reiniciar i3
bindsym $mod+Shift+r restart

# Redimensionar el foco
mode “resize” {

bindsym Left resize shrink width 20 px or 20 ppt
bindsym Down resize grow height 20 px or 20 ppt
bindsym Up resize shrink height 20 px or 20 ppt
bindsym Right resize grow width 20 px or 20 ppt

# Volver a normal: Enter or Escape
bindsym Return mode “default”
bindsym Escape mode “default”
}

bindsym $mod+r mode “resize”

# Panel
bar {
font pango: Sans Bold 9
colors {
background #232323
statusline #e1e1e1
separator #232323

# Escritorio Borde Fondo Texto
focused_workspace #232323 #232323 #4f6f94
inactive_workspace #232323 #232323 #e1e1e1
urgent_workspace #232323 #232323 #910000
}
status_command i3status
}

# Ventanas Borde Fondo Texto
client.focused #232323 #4f6f94 #e1e1e1
client.unfocused #232323 #232323 #232323
client.urgent #232323 #910000 #e1e1e1

# Volumen
bindsym $mod+F12 exec amixer -q set Master 5dB+ unmute
bindsym $mod+F11 exec amixer -q set Master 5dB- unmute

# Aplicaciones al inicio
exec –no-startup-id volumeicon
exec –no-startup-id nitrogen –restore
exec –no-startup-id clipit
exec –no-startup-id noscreenoff
exec –no-startup-id compton -cC -i 0.6 -e 0.6 -fF -I 0.065 -O 0.065 -D 6

# Ventanas específicas como flotantes
for_window [class=”Galculator”] floating enable
for_window [class=”VirtualBox”] floating enable
for_window [class=”PlayOnLinux”] floating enable
for_window [class=”Conky”] floating enable
for_window [class=”gmrun”] floating enable

# Ventanas específicas sin borde
for_window [class=”9menu”] border none
for_window [class=”Galculator”] border none
for_window [class=”gmrun”] border none

# Apagar I3
mode “Exit (R)eboot, (P)oweroff, (L)ogout”{

bindsym $mod+r exec systemctl reboot
bindsym $mod+p exec systemctl poweroff
bindsym $mod+l exit
# regresar a normal: Enter or Escape
bindsym Return mode “default”
bindsym Escape mode “default”

}
bindsym $mod+Shift+e mode “Exit (R)eboot, (P)oweroff, (L)ogout”

Este es mi escritorio actual, con transparencias vía compton.

2016-12-24-123823_1920x1080_scrot

Anuncios

2 comentarios en “Instalar y configurar I3 (1 de 2)

    • Perdona, Joe, llevaba un tiempo sin entrar.
      Para el icono de las redes wifi, la mejor solución (Caso de que no lo hayas resuelto ya) pasa por instalar wicd-client y lanzarlo al inicio.
      Con eso deberías tener el icono.

      Saludos.

      Me gusta

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