SYNOPSIS
spectrwmDESCRIPCIÓN
spectrwm es un manejador de ventanas super minimalista para X11. Intenta no superponer las ventanas para que las mismas puedan usarse de manera eficiente y para cosas mas importantes. Tiene configuraciones normales y no requiere que sepas un lenguaje de programacion para configurarlo. Esta escrito por hackers para hackers y apunta a ser pequeño, compacto y rápido.Cuando spectrwm inicia, lo primero que hace es leer el archivo de configuracion, spectrwm.conf Ver Sx ARCHIVOS DE CONFIGURACIÓN
La siguiente anotacion se usa a través de esta pagina:
- M
- Meta
- S
- Shift
- Aq Name
- Nombre de tecla
- M1
- Boton 1 del mouse
- M3
- Boton 3 del mouse
spectrwm es muy simple de usar. La mayoria de las acciones se hacen con los mapeos (bindings) de mouse o teclado. Ver la sección de Sx BINDINGS para las personalizaciones y configuraciones por defecto.
ARCHIVOS DE CONFIGURACIÓN
spectrwm primero trata de abrir el archivo por defecto en el directorio del usuario, ~/.spectrwm.conf Si ese archivo no esta disponible, luego trata de abrir el archivo global de configuracion /etc/spectrwm.confEl formato del archivo es <tecla> = <configuracion>. Por ejemplo:
color_focus = red
Habilitamos o deshabilitamos la opción usando 1 o 0 respectivamente.
El archivo soporta las siguientes palabras clave:
- autorun
- Inicia una aplicacion en un escritorio en particular al primer inicio. Definido por el formato ws[<idx>]:aplicacion, ej. ws[2]:xterm lanza xterm en el escritorio 2.
- color_focus
- Color del borde de la ventana en foco.
- color_unfocus
- Color del borde de la ventana fuera de foco.
- bar_enabled
- Habilitar o deshabilitar la barra de estado.
- bar_border Bq x
- Color del borde de la barra de estado en pantalla. x
- bar_border_width
- Setea el grosor de la barra de estado en pixels. Deshabilitado seteando 0.
- bar_color Bq x
- Color de la ventana de la barra de estado en pantalla. x
- bar_font_color Bq x
- Color de la fuente en la barra de estado en pantalla. x
- bar_font
- Fuente de la barra de estado.
- bar_action
- Scripts externos con populares agregados de información para la barra de estado, como la vida de la bateria.
- bar_at_bottom
- Puedes posicionar la statusbar en la parte inferior de la pantalla.
- stack_enabled
- Habilitar o deshabilitar mostrar el algoritmo de apilamiento en la barra de estado.
- clock_enabled
- Habilitar o deshabilitar el reloj en la barra de estado, deshabilitado por defecto con un 0, para usar el reloj de la barra de estado (bar_action) bar_action script.
- dialog_ratio
- Algunas aplicaciones tienen ventanas de dialogo muy pequeñas como para ser usables. Este relación (ratio) es el tamaño de la pantalla, por ejemplo 0.6 es 60% del tamaño físico de la pantalla.
- layout
-
Selecciona una disposicion para usar en el primer inicio.
Definido con el formato
ws[idx]:master_grow:master_add:stack_inc:layout:always_raise:stack_mode,
ej.
ws[2]:-4:0:1:0:horizontal setea el escritorio 2 en horizontal, el stack
principal y reduce 4 puntos agregando una ventana al stack, mientras
mantiene el comportamiento de ventanas flotantes.
Modos posible de stack_mode
vertical
horizontal
and
fullscreen
Ver master_grow master_shrink master_add master_del stack_inc stack_del y always_raise para mas informacion. Tenga en cuenta que las opciones de stack son complicados y tienen efectos secundarios. Uno debe familiarizarse con estos comandos antes de experimentar con la opcion layout
Esta opcion no necesita un reinicio.
- region
- Acomodar una region personalizada, removiendo cualquier autodeteción de regiones que ocupe el espacio en la pantalla. Definiendo el formato screen[<idx>]:WIDTHxHEIGHT+X+Y, e.g. screen[1]:800x1200+0+0.
- term_width
- Setear un ancho minimo preferido para la terminal. Si el valor es mayor que 0, spectrwm intentará ajustar el tamaño de la fuente de la terminal para mantener el ancho de la terminal por encima de este número cuando la ventana cambia de tamaño. Actualmente solo es soportado por xterm(1) El binario de xterm(1) no debe ser un setuid o setgid, que no sea el que viene por defecto en la mayoria de los sistemas. Los usuarios pueden necesitar setear program[term] (ver la sección Sx PROGRAMAS ) para usar una copia alternativa del binario de xterm(1) sin el seteo del setgid.
- title_class_enabled
- Habilitar o deshabilitar la clase de ventana en la barre de estado. Habilitado seteando 1
- title_name_enabled
- Habilitar o deshabilita el titulo de la ventana en la barra de estado. Habilitado seteando 1
- urgent_enabled
- Habilitar o deshabilitar el aviso de urgencia. Tenga en cuenta que muchos emuladores de terminal requieren de este parametro habilitado para que funcione. En xterm, por ejemplo, hay que agregar la siguiente linea xterm.urgentOnBell: true to .Xdefaults
- window_name_enabled
- Habilitar o deshabilita el nombre de la ventana en la barra de estado. Habilitado seteando 1
- verbose_layout
- Habilitar o deshabilita la notificacion del area principal y el stack en la barra de estado. Habilitado seteandolo a 1.
- modkey
- Cambiar mod key. Mod1 generalmente es la tecla ALT y Mod4 la tecla de windows en una PC.
- focus_mode
- Usando el valor de follow_cursor puedes hacer que el manejador de ventanas se enfoque en la ventana cuando el cursor pase por arriba de las mismas o bien cambiando de estacion de trabajo.
- disable_border
- Remueve el borde de una sola ventana cuando la barra de estado esta desactivada.
- border_width
- Setea el grosor del borde de la ventana en pixels. Deshabilitar todos los bordes seteandolo a 0.
- program Bq p
- Definir una nueva accion para ejecutar un programa. p Ver la sección de Sx PROGRAMAS
- bind Bq x
- Combinación de teclas para una acción x Ver la sección Sx BINDINGS
- quirk Bq c:n
- Agregar un "quirk" (o forzados) para ventanas con clase c y nombre n Ver la sección Sx QUIRKS
Los colores deben ser especificados por la especificación XQueryColor(3) y las fuentes por la especificación XQueryFont(3)
PROGRAMAS
spectrwm te permite definir acciones personales para lanzar los programas que quieras y luego obligar a la misma con una función de acciones. Ver la sección Sx BINDINGSLos programas por defecto se describen acá:
- term
- x-terminal-emulator
- screenshot_all
- screenshot.sh completo
- screenshot_wind
- screenshot.sh por ventana
- lock
- xscreensaver-command -lock
- initscr
- initscreen.sh
- menu
- dmenu_run -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_border -sf $bar_color
Los programas en la configuración personal, se especifican aca:
program[<nombre>] = <progpath> [<arg> [... <arg>]]
Aq nombre es un identificador, no genera conflictos con ninguna accion o palabra clave, Aq progpath es la ruta al programa, y Aq arg es ninguno o mas de un argumento para el programa.
Las siguientes variables de configuracion en spectrwm (ver Sx ARCHIVOS DE CONFIGURACIÓN ), y pueden ser usadas en los campos de Aq arg como asi tambien sustituidas por valores al momento del inicio de un programa:
- $bar_border
- $bar_color
- $bar_font
- $bar_font_color
- $color_focus
- $color_unfocus
Ejemplo:
program[ff] = /usr/local/bin/firefox http://spectrwm.com.ar/ bind[ff] = Mod+f # Ahora Mod+F inicia firefox
Para deshacer lo anterior:
bind[] = Mod+f program[ff] =
BINDINGS
spectrwm provee muchas funciones (o acciones) accesibles por medio de la asignación (bindings) de teclas o el mouse.Las corrientes asignaciones (bindings) del mouse son:
- M1
- Enfoco una ventana
- M-M1
- Muevo una ventana
- M-M3
- Redimenciono una ventana
- M-S-M3
- Redimenciono una ventana hasta que quede centrada
Las corrientes asignaciones (bindings) de teclas son:
- M-S- Aq Return
- term
- M-p
- menu
- M-S-q
- quit
- M-q
- restart spectrwm
- M- Aq Space
- cycle_layout
- M-S- Aq Space
- reset_layout
- M-h
- master_shrink
- M-l
- master_grow
- M-,
- master_add
- M-.
- master_del
- M-S-,
- stack_inc
- M-S-.
- stack_del
- M- Aq Return
- swap_main
- M-j M- Aq TAB
-
- focus_next
- M-k M-S- Aq TAB
-
- focus_prev
- M-m
- focus_main
- M-S-j
- swap_next
- M-S-k
- swap_prev
- M-b
- bar_toggle
- M-x
- wind_del
- M-S-x
- wind_kill
- M- Aq n
- ws_ n
- M-S- Aq n
- mvws_ n
- M- Aq Right
- ws_next
- M- Aq Left
- ws_prev
- M-a
- ws_prior
- M-S- Aq Right
- screen_next
- M-S- Aq Left
- screen_prev
- M-s
- screenshot_all
- M-S-s
- screenshot_wind
- M-S-v
- version
- M-t
- float_toggle
- M-S Aq Delete
- lock
- M-S-i
- initscr
- M-w
- iconify
- M-S-w
- uniconify
- M-S-r
- always_raise
- M-v
- button2
- M--
- width_shrink
- M-=
- width_grow
- M-S-
- height_shrink
- M-S-=
- height_grow
- M-[
- move_left
- M-]
- move_right
- M-S-[
- move_up
- M-S-]
- move_down
El nombre de las acciónes descripta a continuación:
- term
- Ejecutar una terminal (ver Sx PROGRAMAS )
- menu
- Menu (ver Sx PROGRAMAS )
- quit
- Salir spectrwm
- restart
- Reiniciar spectrwm
- cycle_layout
- Disposición de las ventanas
- reset_layout
- Reiniciar la disposición de las ventanas
- master_shrink
- Achicar la region principal
- master_grow
- Agrandar la region principal
- master_add
- Agregar una ventana a la region principal
- master_del
- Quitar una ventana de la region principal
- stack_inc
- Agregar columnas/filas a las pilas
- stack_del
- Quitar columnas/filas de las pilas
- swap_main
- Mover la ventana corriente a la region principal
- focus_next
- Enfocar la proxima ventana en la estación de trabajo
- focus_prev
- Enfocar la anterior ventana en la estación de trabajo
- focus_main
- Enfocar en la ventana principal de la estación de trabajo
- swap_next
- Ejecutar con la siguiente ventana en la estación de trabajo
- swap_prev
- Ejecutar con la anterior ventana en la estación de trabajo
- bar_toggle
- Cambiar la barra de estado en todas las estaciones de trabajo
- wind_del
- Borrar la ventana corriente en la estación de trabajo
- wind_kill
- Destruir la ventana corriente en la estación de trabajo
- ws_ n
- Cambiar entre estaciones de trabajo n donde n es 1 por 10
- mvws_ n
- Mover la ventana corriente a una estación de trabajo n donde n es 1 por 10
- ws_next
- Cambiar a la proxima estación de trabajo con una ventana en ella
- ws_prev
- Cambiar a la anterior estación de trabajo con una ventana en ella
- screen_next
- Mover el puntero a la proxima region
- screen_prev
- Mover el puntero a la anterior region
- screenshot_all
- Tomar una captura de pantalla de todo la pantalla (si esta habilitado) (ver Sx PROGRAMAS )
- screenshot_wind
- Tomar una captura de pantalla de la ventana seleccionada (si esta habilitado) (ver Sx PROGRAMAS )
- version
- Mostrar la version en la barra de estado
- float_toggle
- Mostar la ventana en foco entre las flotantes y acomodadas
- lock
- Bloquear pantalla (ver Sx PROGRAMAS )
- initscr
- Reiniciar la pantalla (ver Sx PROGRAMAS )
- iconify
- Minimiza (unmap) la ventana en foco.
- uniconify
- Maximiza (map) la ventana seleccionada por dmenu.
- always_raise
- Cuando se establece las ventanas en cascada se esconden las ventanas flotantes.
- button2
- Falsifica el boton del medio del mouse.
- width_shrink
- Reducir el ancho de una ventana flotante.
- width_grow
- Agranda el ancho de una ventana flotante.
- height_shrink
- Reducir la altura de una ventana flotante.
- height_grow
- Agranda la altura de una ventana flotante.
- move_left
- Mueve la ventana flotante un paso a la izquierda.
- move_right
- Mueve la ventana flotante un paso a la derecha.
- move_up
- Mueve la ventana flotante un paso arriba.
- move_down
- Mueve la ventana flotante un paso abajo.
Personalizar mapeos (bindings) en el archivo de configuración:
bind[<accion>] = <teclas>
Aq accion una de las acciones listadas (o ninguna) y Aq teclas una o mas teclas modificadas (puede ser ninguna tambien) (MOD, Mod1, Shift, etc.) y una o mas teclas normales (b, barra espaciadora, etc.), separadas por un "+". Por ejemplo:
bind[reset] = Mod4+q # combinación Tecla de Windows + q reinicia bind[] = Mod1+q # des-hace la combinación Alt + q
Multiples combinaciones de teclas pueden hacer lo mismo.
QUIRKS
spectrwm te da "quirks" (o forzados) ventanas que tienen que ser tratas de manera especial, como por ejemplo, popups, aplicaciones de pantalla completa, etc.Los "quirks" (o forzados) por defecto son:
- Firefox-bin:firefox-bin
- TRANSSZ
- Firefox:Dialog
- FLOAT
- Gimp:gimp
- FLOAT + ANYWHERE
- MPlayer:xv
- FLOAT + FULLSCREEN
- OpenOffice.org 2.4:VCLSalFrame
- FLOAT
- OpenOffice.org 3.1:VCLSalFrame
- FLOAT
- pcb:pcb
- FLOAT
- xine:Xine Window
- FLOAT + ANYWHERE
- xine:xine Panel
- FLOAT + ANYWHERE
- xine:xine Video Fullscreen Window
- FULLSCREEN + FLOAT
- Xitk:Xitk Combo
- FLOAT + ANYWHERE
- Xitk:Xine Window
- FLOAT + ANYWHERE
- XTerm:xterm
- XTERM_FONTADJ
Los "quirks" (o forzados) se describen a continuación:
- FLOAT
- Esta ventana no tiene que ser acomodada, pero le permitimos flotar libremente.
- TRANSSZ
- Ajusta el tamaño de las ventanas transitorias que son demasiado pequeñas utilizando dialog_ratio (ver Sx ARCHIVOS DE CONFIGURACIÓN ) .
- ANYWHERE
- Permite que la ventana se ponga donde quiera.
- XTERM_FONTADJ
- Ajusta las fuentes de xterm cuando se redimenciona.
- FULLSCREEN
- Quita el borde para permitir las ventanas en pantalla completa.
- FOCUSPREV
- El enfoque de salida fuerza la solicitud de aplicacisn que anteriormente se centraba en la aplicacion anterior del stack.
Las configuraciones de "quirks" (o forzados) en el archivo de configuración se ven a continuación:
quirk[<clases>:<nombre>] = <quirk> [ + <quirk> ...
Aq clases y Aq nombre especifica la ventana en la cual el "quirk(s)" (o forzados) se aplica, y Aq quirk es uno de los "quirks" (o forzados) de la lista. Por ejemplo:
quirk[MPlayer:xv] = FLOAT + FULLSCREEN # dejamos que mplayer funcione libremente quirk[pcb:pcb] = NONE # borramos el quirk existente
Podes obtener Aq clases y Aq nombre corriendo el programa xprop(1) y luego clickear en la ventana que quieras. En el proximo ejemplo, podremos verlo en acción con una ventana de Firefox:
$ xprop | grep WM_CLASS WM_CLASS(STRING) = "Navigator", "Firefox"
EWMH
spectrwm parcialmente implementa los Consejos de ventana extendido Manager (EWMH) especificacion. Esto permite el control de las ventanas, asi como spectrwm si a partir de scripts y programas externos. Esto se logra mediante spectrwm responder a ciertos eventos ClientMessage. Desde la terminal de estos eventos se puede enviar facilmente el uso de herramientas tales como wmctrl(1) y xdotool(1). para el formato real de estos eventos ClientMessage, consulte la especificacion EWMH.La Identificacion de la ventana actualmente enfocada se almacena en el _NET_ACTIVE_WINDOW propiedad de la ventana raiz. Esto puede ser usado por ejemplo para recuperar el titulo de la ventana activa con xprop(1) y grep(1):
$ WINDOWID=`xprop -root _NET_ACTIVE_WINDOW | grep -o "0x.*"` $ xprop -id $WINDOWID WM_NAME | grep -o "\".*\""
Una ventana se puede enfocar mediante el envio de un mensaje del cliente _NET_ACTIVE_WINDOW a la ventana principal. Por ejemplo, usando wmctrl(1) para enviar el mensaje (suponiendo que 0x4a0000b es el ID de la ventana para ser especifico):
$ wmctrl -i -a 0x4a0000b
Ventanas se pueden cerrar mediante el envmo de un mensaje del cliente _NET_CLOSE_WINDOW a la ventana principal. Por ejemplo, usando wmctrl(1) para enviar el mensaje (suponiendo que 0x4a0000b es el ID de la ventana se cierre):
$ wmctrl -i -c 0x4a0000b
Las ventanas se pueden flotar y flotar sin-mediante la adicion o eliminacion de la _NET_WM_STATE_ABOVE atom desde _NET_WM_STATE la propiedad de la ventana Esto se puede lograr mediante el envio de un mensaje a los clientes _NET_WM_STATE raiz de la ventana. Por ejemplo, el siguiente cambia el estado de la flota. wmctrl(1) para enviar el mensaje (suponiendo que 0x4a0000b es el ID de la ventana flotante o no-flotante):
$ wmctrl -i -r 0x4a0000b -b toggle,_NET_WM_STATE_ABOVE
Ventanas flotantes tambien se puede cambiar el tamano y movido por el envio de un _NET_MOVERESIZE_WINDOW Mensaje del cliente de la ventana raiz. Por ejemplo, uso wmctrl(1) para enviar el mensaje (suponiendo que 0x4a0000b es el ID de la ventana a redimensionar / mover):
$ wmctrl -i -r 0x4a0000b -e 0,100,50,640,480
Esto mueve la ventana de (100,50) y cambia el tamaqo a 640x480.
Todos los eventos _NET_MOVERESIZE_WINDOW recibido por las ventanas apiladas se ignoran.
SIGNALS
Enviando spectrwm una senal de HUP reinicia spectrwm.ARCHIVOS
- ~/.spectrwm.conf
- spectrwm archivo de configuración especifico del usuario.
- /etc/spectrwm.conf
- spectrwm configuraciones globales.
HISTORIA
spectrwm fue inspirado en xmonad y dwm.AUTORES
An -nosplit spectrwm fue escrito por
- Marco Peereboom Aq [email protected]
- Ryan Thomas McBride Aq [email protected]
- Darrin Chandler Aq [email protected]
- Pierre-Yves Ritschard Aq [email protected]
- Tuukka Kataja Aq [email protected]
- Jason L. Wright Aq [email protected]
- Reginald Kennedy Aq [email protected]
- Lawrence Teo Aq [email protected]
- Tiago Cunha Aq [email protected]