epespad

Keybinding & I3WindowsManager

Buenas gente! Hoy vengo a compartir algo de mi pequeña experiencia con los key bindings (KB, a partir de ahora), y un ejemplo de aplicación práctica en I3WM (un gestor de ventanas disponible en Linux). Espero que les sea útil.

Como muchos conocemos en los sistemas MS Windows (y tal vez MacOS y Android), por lo general se estila el uso mayoritario de los clicks. Pero al paso que nos volvemos usuarios más avanzados, comenzamos a utilizar KB (combinaciones de teclas), para hacer más eficientes las tareas cotidianas. Un ejemplo muy popular de esto es el uso de ALT+TAB (para cambiar el foco entre las ventanas en ejecución), o bien de CTRL+C y CTRL+V (para utilizar las funciones de copiar y pegar con la ayuda del portapapeles).

Linux en cambio, es un sistema con una tradición más 'consolera'* y por lo tanto más decantado a los KB. Ni bien instalamos cualquier distro, mínimamente vamos a tener el modo texto, y según la distro, puede ser que tengamos un gestor de ventanas, gestor de login y servidor gráfico (o bien que los instalemos y configuremos después).
Pero ya en el modo texto, se puede cambiar entre las terminales (tty), con la ayuda del KB: ALT+Fn, donde n es el número del terminal al que queremos acceder (Si queremos acceder a la terminal 2, ALT+F2). También podemos utilizar ALT+derecha o bien ALT+izquierda para movernos entre las terminales.

Y de nuevo centrándonos en el gestor de ventanas. El gestor de ventanas es: eso que nos permite controlar el comportamiento de las ventanas de nuestros escritorio o áreas de trabajo (a modo de definición informal). Como otras aplicaciones cada gestor de ventanas suele tener su archivo de configuración, indicando que se puede hacer y como.

Vayamos ahora al aspecto práctico de esta nota, vamos a ver un extracto de archivo de configuración de mi gestor I3WM con las aclaraciones en forma de comentarios:




#Esto configura si usamos la tecla ALT, o Windows - según sea Mod3 o Mod4-
set $mod Mod4

#Fuente para los titulos de las ventanas
font pango:monospace 8

# ejecutar una consola
bindsym $mod+Return exec i3-sensible-terminal

# cerrar la ventana
bindsym $mod+Shift+q kill

# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run


# cambiar el foco entre ventanas -según selección-
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+ntilde focus right

# usando los cursores - flechas de direccion-
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

# mover la ventana seleccionada
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+ntilde move right

# usando los cursores
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right

# seleccionar el sentido horizontal para la próxima división de terminal (split)
bindsym $mod+h split h

# hacer el split en forma vertical (seleccion para el proximo split)
bindsym $mod+v split v

# maximizar ventana
bindsym $mod+f fullscreen toggle

# modificar el layout (esto modifica la forma de organizar las ventanas)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

# independizar ventana del resto o integrarla
bindsym $mod+Shift+space floating toggle

# cambiar el foco entre ventanas dependientes e independientes
bindsym $mod+space focus mode_toggle

# cambiar entre espacios de trabajo o escritorios
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10

# mover ventana a otro area de trabajo
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10

# recargar la configuracion desde el archivo.
bindsym $mod+Shift+c reload

# reiniciar el gestor de ventanas sin perder la sesion.
bindsym $mod+Shift+r restart

# salir del gestor y del modo grafico.
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m '¿Seguro que querés salir?' -b 'Si!' 'i3-msg exit'"

# redimencionar ventanas
mode "resize" {
# Estos KB se aplican en modo 'resize'

bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym ntilde resize grow width 10 px or 10 ppt

# KB para cursores
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt

# volver al modo normal
bindsym Return mode "default"
bindsym Escape mode "default"
}

bindsym $mod+r mode "resize"

#Capturar ventana activa (ejecuta un script que utiliza comando import)
bindsym $mod+Shift+p exec "/home/archie/captura-ventana-activa.sh"

#Captura pantalla completa (tambien utilizo import)
bindsym $mod+p exec "/home/archie/captura-pantalla.sh"



Un choclo, pero es un buen ejemplo. Principalmente, tengamos en cuenta que bindsym $mod, define un KB para utilizar (por ejemplo la tecla Windows), que define la tecla de combinación.


*Sabemos que Windows tiene como precedente histórico a PC/DOS, y que las primeras versiones de Windows lo usaban como Sistema Operativo base, y sin embargo Windows siempre estuvo adherido a sus ventanitas como su nombre mismo indica.

**Parte de estas notas comprenden mi valoración subjetiva de las cosas, que no siempre es la correcta o la más adecuada, pero que le vamos a hacer, somos sujetos intentando acercarnos al razonamiento crítico de las cosas y a veces quedamos por el camino. =)

Bueno gente espero que les haya gustado, posiblemente después ponga algunas imágenes a modo decorativo, pero espero que la info pueda sumar.

Saludos!

9 comentarios - Keybinding & I3WindowsManager

agustingauna527
Una vez que memorisas las kb y las vas usando cada vez mas seguido se vuelve bastante comodo y se es mas productivo. Hace unos meses volvi a arch despues de varios años, en este momento con awesome. Cuando lo deje de usar, porque era muy poco lo que usaba la pc, me habian quedado muchas de esas costumbres. Como las de edicion de texto, principalmente
Tiincho09
Vengo usando tiling wm desde hace unos meses, cuando conoci i3wm. Me costo un toque adaptarme pero no me sacan mas ahora.
Acutualmente uso bspwm.
matias6142
o gentoo
MartinPerrupato +1
Nunca me di una oportunidad seria con Gentoo, tal vez más adelante me haga un tiempo para hacer la prueba. Pero me gusta el comando emerge. Son SO con una personalidad interesante!
abelnicolas1976
Te queda probar DWM
MartinPerrupato +1
Voy a investigarlo, a ver que onda! Estaba mirando que es del creador de wmii. Y I3 es un fork de este último, está todo medio emparentado.
matute_451 +2
Aunque no hayas puesto capturas de pantalla te dejo puntines Linux necesita más post/tutos como este
Arg0s1080 +2
Cierto.. esta sección cada vez está peor. Pocos post y la inmensa mayoría copy/paste
trossemo
Van puntos, i3 junto con awesome son realmente excelentes
Arg0s1080
Buen post

Yo soy de los que piensa que la verdadera productividad está en tenerlo TODO, para que cada uno elija lo que sea mejor para él.. para mí, algunas veces los shorcuts son la mejor elección (normalmente cuando hago repetitivo) y otras los clicks.
MartinPerrupato
Es así, todas son herramientas, el tema es conocerlas!