1 .\" Copyright (c) 2009 Marco Peereboom <marco@peereboom.us>
2 .\" Copyright (c) 2009 Darrin Chandler <dwchandler@stilyagin.com>
4 .\" Permission to use, copy, modify, and distribute this software for any
5 .\" purpose with or without fee is hereby granted, provided that the above
6 .\" copyright notice and this permission notice appear in all copies.
8 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 .Dd $Mdocdate: February 15 2012 $
21 .Nd es un manejador de ventanas para X11
26 es un manejador de ventanas super minimalista para X11. Intenta no superponer
27 las ventanas para que las mismas puedan usarse de manera eficiente y para
28 cosas mas importantes.
29 Tiene configuraciones normales y no requiere que sepas un lenguaje de
30 programacion para configurarlo. Esta escrito por hackers para hackers y apunta
31 a ser pequeño, compacto y rápido.
35 inicia, lo primero que hace es leer el archivo de configuracion,
38 .Sx ARCHIVOS DE CONFIGURACIÓN
41 La siguiente anotacion se usa a través de esta pagina:
43 .Bl -tag -width Ds -offset indent -compact
57 es muy simple de usar.
58 La mayoria de las acciones se hacen con los mapeos (bindings) de mouse
62 para las personalizaciones y configuraciones por defecto.
63 .Sh ARCHIVOS DE CONFIGURACIÓN
65 primero trata de abrir el archivo por defecto en el directorio del usuario,
66 .Pa ~/.spectrwm.conf .
67 Si ese archivo no esta disponible,
68 luego trata de abrir el archivo global de configuracion
69 .Pa /etc/spectrwm.conf .
71 El formato del archivo es \*(Lttecla\*(Gt = \*(Ltconfiguracion\*(Gt.
76 Habilitamos o deshabilitamos la opción usando 1 o 0 respectivamente.
78 El archivo soporta las siguientes palabras clave:
80 .Bl -tag -width "title_class_enabledXXX" -offset indent -compact
82 Inicia una aplicacion en un escritorio en particular al primer inicio.
83 Definido por el formato ws[<idx>]:aplicacion, ej. ws[2]:xterm lanza
84 xterm en el escritorio 2.
86 Color del borde de la ventana en foco.
88 Color del borde de la ventana fuera de foco.
90 Habilitar o deshabilitar la barra de estado.
91 .It Cm bar_border Ns Bq Ar x
92 Color del borde de la barra de estado en pantalla.
94 .It Cm bar_border_width
95 Setea el grosor de la barra de estado en pixels.
96 Deshabilitado seteando 0.
97 .It Cm bar_color Ns Bq Ar x
98 Color de la ventana de la barra de estado en pantalla.
100 .It Cm bar_font_color Ns Bq Ar x
101 Color de la fuente en la barra de estado en pantalla.
104 Fuente de la barra de estado.
106 Scripts externos con populares agregados de información para la barra
107 de estado, como la vida de la bateria.
109 Frecuencia de actualización, en segundos, de los scripts de la barra de
112 Puedes posicionar la statusbar en la parte inferior de la pantalla.
114 Habilitar o deshabilitar mostrar el algoritmo de apilamiento en la barra
117 Habilitar o deshabilitar el reloj en la barra de estado, deshabilitado
118 por defecto con un 0, para usar el reloj de la barra de estado
123 Algunas aplicaciones tienen ventanas de dialogo muy pequeñas como para
124 ser usables. Este relación (ratio) es el tamaño de la pantalla, por
125 ejemplo 0.6 es 60% del tamaño físico de la pantalla.
127 Selecciona una disposicion para usar en el primer inicio.
128 Definido con el formato
129 ws[idx]:master_grow:master_add:stack_inc:layout:always_raise:stack_mode,
131 ws[2]:-4:0:1:0:horizontal setea el escritorio 2 en horizontal, el stack
132 principal y reduce 4 puntos agregando una ventana al stack, mientras
133 mantiene el comportamiento de ventanas flotantes.
134 Modos posible de stack_mode
149 para mas informacion.
150 Tenga en cuenta que las opciones de stack son complicados y tienen
152 Uno debe familiarizarse con estos comandos antes de experimentar con la
156 Esta opcion no necesita un reinicio.
158 Acomodar una region personalizada, removiendo cualquier autodeteción de
159 regiones que ocupe el espacio en la pantalla.
160 Definiendo el formato screen[<idx>]:WIDTHxHEIGHT+X+Y,
161 e.g.\& screen[1]:800x1200+0+0.
163 Setear un ancho minimo preferido para la terminal.
164 Si el valor es mayor que 0,
166 intentará ajustar el tamaño de la fuente de la terminal para mantener
167 el ancho de la terminal por encima de este número cuando la ventana
169 Actualmente solo es soportado por
173 no debe ser un setuid o setgid, que no sea el que viene por defecto en
174 la mayoria de los sistemas.
175 Los usuarios pueden necesitar setear program[term] (ver la sección
177 ) para usar una copia alternativa del binario de
179 sin el seteo del setgid.
180 .It Cm title_class_enabled
181 Habilitar o deshabilitar la clase de ventana en la barre de estado.
182 Habilitado seteando 1
183 .It Cm title_name_enabled
184 Habilitar o deshabilita el titulo de la ventana en la barra de estado.
185 Habilitado seteando 1
186 .It Cm urgent_enabled
187 Habilitar o deshabilitar el aviso de urgencia.
188 Tenga en cuenta que muchos emuladores de terminal requieren de este
189 parametro habilitado para que funcione.
190 En xterm, por ejemplo, hay que agregar la siguiente linea
191 .Pa xterm.urgentOnBell: true
194 .It Cm window_name_enabled
195 Habilitar o deshabilita el nombre de la ventana en la barra de estado.
196 Habilitado seteando 1
197 .It Cm verbose_layout
198 Habilitar o deshabilita la notificacion del area principal y el
199 stack en la barra de estado.
200 Habilitado seteandolo a 1.
203 Mod1 generalmente es la tecla ALT y Mod4 la tecla de windows en una PC.
207 puedes hacer que el manejador de ventanas
208 se enfoque en la ventana cuando el cursor pase por arriba de las mismas o
209 bien cambiando de estacion de trabajo.
210 .It Cm disable_border
211 Remueve el borde de una sola ventana cuando la barra de estado esta desactivada.
213 Setea el grosor del borde de la ventana en pixels.
214 Deshabilitar todos los bordes seteandolo a 0.
215 .It Cm program Ns Bq Ar p
216 Definir una nueva accion para ejecutar un programa.
220 .It Cm bind Ns Bq Ar x
221 Combinación de teclas para una acción
225 .It Cm quirk Ns Bq Ar c:n
226 Agregar un "quirk" (o forzados) para ventanas con clase
234 Los colores deben ser especificados por la especificación
236 y las fuentes por la especificación
240 te permite definir acciones personales para lanzar los programas que
241 quieras y luego obligar a la misma con una función de acciones.
245 Los programas por defecto se describen acá:
247 .Bl -tag -width "screenshot_wind" -offset indent -compact
250 .It Cm screenshot_all
251 screenshot.sh completo
252 .It Cm screenshot_wind
253 screenshot.sh por ventana
259 dmenu_run \-fn $bar_font \-nb $bar_color \-nf $bar_font_color \-sb $bar_border \-sf $bar_color
262 Los programas en la configuración personal, se especifican aca:
264 .Dl program[<nombre>] = <progpath> [<arg> [... <arg>]]
267 es un identificador, no genera conflictos con ninguna accion o palabra
270 es la ruta al programa, y
272 es ninguno o mas de un argumento para el programa.
274 Las siguientes variables de configuracion en
277 .Sx ARCHIVOS DE CONFIGURACIÓN
279 y pueden ser usadas en los campos de
281 como asi tambien sustituidas por valores al momento del inicio de un
284 .Bl -tag -width "$bar_font_color" -offset indent -compact
288 .It Cm $bar_font_color
290 .It Cm $color_unfocus
294 .Bd -literal -offset indent
295 program[ff] = /usr/local/bin/firefox http://spectrwm.com.ar/
296 bind[ff] = Mod+f # Ahora Mod+F inicia firefox
299 Para deshacer lo anterior:
300 .Bd -literal -offset indent
306 provee muchas funciones (o acciones) accesibles por medio de la
307 asignación (bindings) de teclas o el mouse.
309 Las corrientes asignaciones (bindings) del mouse son:
311 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
317 Redimenciono una ventana
319 Redimenciono una ventana hasta que quede centrada
322 Las corrientes asignaciones (bindings) de teclas son:
324 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
325 .It Cm M-S- Ns Aq Cm Return
334 .It Cm M- Ns Aq Cm Space
336 .It Cm M-S- Ns Aq Cm Space
350 .It Cm M- Ns Aq Cm Return
359 .Cm M-S- Ns Aq Cm TAB
376 .It Cm M-S- Ns Aq Ar n
378 .It Cm M- Ns Aq Cm Right
380 .It Cm M- Ns Aq Cm Left
384 .It Cm M-S- Ns Aq Cm Right
386 .It Cm M-S- Ns Aq Cm Left
396 .It Cm M-S Aq Cm Delete
426 El nombre de las acciónes descripta a continuación:
428 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
430 Ejecutar una terminal
446 Disposición de las ventanas
448 Reiniciar la disposición de las ventanas
450 Achicar la region principal
452 Agrandar la region principal
454 Agregar una ventana a la region principal
456 Quitar una ventana de la region principal
458 Agregar columnas/filas a las pilas
460 Quitar columnas/filas de las pilas
462 Mover la ventana corriente a la region principal
464 Enfocar la proxima ventana en la estación de trabajo
466 Enfocar la anterior ventana en la estación de trabajo
468 Enfocar en la ventana principal de la estación de trabajo
470 Ejecutar con la siguiente ventana en la estación de trabajo
472 Ejecutar con la anterior ventana en la estación de trabajo
474 Cambiar la barra de estado en todas las estaciones de trabajo
476 Borrar la ventana corriente en la estación de trabajo
478 Destruir la ventana corriente en la estación de trabajo
480 Cambiar entre estaciones de trabajo
486 Mover la ventana corriente a una estación de trabajo
492 Cambiar a la proxima estación de trabajo con una ventana en ella
494 Cambiar a la anterior estación de trabajo con una ventana en ella
496 Mover el puntero a la proxima region
498 Mover el puntero a la anterior region
499 .It Cm screenshot_all
500 Tomar una captura de pantalla de todo la pantalla (si esta habilitado)
504 .It Cm screenshot_wind
505 Tomar una captura de pantalla de la ventana seleccionada (si esta habilitado)
510 Mostrar la version en la barra de estado
512 Mostar la ventana en foco entre las flotantes y acomodadas
519 Reiniciar la pantalla
524 Minimiza (unmap) la ventana en foco.
526 Maximiza (map) la ventana seleccionada por dmenu.
528 Cuando se establece las ventanas en cascada se esconden las
531 Falsifica el boton del medio del mouse.
533 Reducir el ancho de una ventana flotante.
535 Agranda el ancho de una ventana flotante.
537 Reducir la altura de una ventana flotante.
539 Agranda la altura de una ventana flotante.
541 Mueve la ventana flotante un paso a la izquierda.
543 Mueve la ventana flotante un paso a la derecha.
545 Mueve la ventana flotante un paso arriba.
547 Mueve la ventana flotante un paso abajo.
550 Personalizar mapeos (bindings) en el archivo de configuración:
552 .Dl bind[<accion>] = <teclas>
555 una de las acciones listadas (o ninguna) y
557 una o mas teclas modificadas (puede ser ninguna tambien)
558 (MOD, Mod1, Shift, etc.) y una o mas teclas normales
559 (b, barra espaciadora, etc.), separadas por un "+".
561 .Bd -literal -offset indent
562 bind[reset] = Mod4+q # combinación Tecla de Windows + q reinicia
563 bind[] = Mod1+q # des-hace la combinación Alt + q
566 Multiples combinaciones de teclas pueden hacer lo mismo.
569 te da "quirks" (o forzados) ventanas que tienen que ser tratas de manera especial,
570 como por ejemplo, popups, aplicaciones de pantalla completa, etc.
572 Los "quirks" (o forzados) por defecto son:
574 .Bl -tag -width "OpenOffice.org N.M:VCLSalFrame<TAB>XXX" -offset indent -compact
575 .It Firefox\-bin:firefox\-bin
583 .It OpenOffice.org 2.4:VCLSalFrame
585 .It OpenOffice.org 3.1:VCLSalFrame
593 .It xine:xine Video Fullscreen Window
603 Los "quirks" (o forzados) se describen a continuación:
605 .Bl -tag -width "XTERM_FONTADJ<TAB>XXX" -offset indent -compact
607 Esta ventana no tiene que ser acomodada, pero le permitimos flotar libremente.
609 Ajusta el tamaño de las ventanas transitorias que son demasiado pequeñas utilizando dialog_ratio
611 .Sx ARCHIVOS DE CONFIGURACIÓN ) .
613 Permite que la ventana se ponga donde quiera.
615 Ajusta las fuentes de xterm cuando se redimenciona.
617 Quita el borde para permitir las ventanas en pantalla completa.
619 El enfoque de salida fuerza la solicitud de aplicacisn que
620 anteriormente se centraba en la aplicacion anterior del stack.
623 Las configuraciones de "quirks" (o forzados) en el archivo de configuración se ven a continuación:
625 .Dl quirk[<clases>:<nombre>] = <quirk> [ + <quirk> ... ]
630 especifica la ventana en la cual el "quirk(s)" (o forzados) se aplica, y
632 es uno de los "quirks" (o forzados) de la lista.
634 .Bd -literal -offset indent
635 quirk[MPlayer:xv] = FLOAT + FULLSCREEN # dejamos que mplayer funcione libremente
636 quirk[pcb:pcb] = NONE # borramos el quirk existente
643 corriendo el programa xprop(1) y luego clickear en la ventana que quieras.
644 En el proximo ejemplo, podremos verlo en acción con una ventana de Firefox:
645 .Bd -literal -offset indent
646 $ xprop | grep WM_CLASS
647 WM_CLASS(STRING) = "Navigator", "Firefox"
651 parcialmente implementa los Consejos de ventana extendido Manager (EWMH) especificacion.
652 Esto permite el control de las ventanas, asi como
654 si a partir de scripts y programas externos. Esto se logra mediante
656 responder a ciertos eventos ClientMessage. Desde la terminal de estos eventos
657 se puede enviar facilmente el uso de herramientas tales como
662 formato real de estos eventos ClientMessage, consulte la especificacion EWMH.
664 La Identificacion de la ventana actualmente enfocada se almacena en el _NET_ACTIVE_WINDOW
665 propiedad de la ventana raiz. Esto puede ser usado por ejemplo para recuperar el
666 titulo de la ventana activa con
670 .Bd -literal -offset indent
671 $ WINDOWID=`xprop \-root _NET_ACTIVE_WINDOW | grep \-o "0x.*"`
672 $ xprop \-id $WINDOWID WM_NAME | grep \-o "\\".*\\""
675 Una ventana se puede enfocar mediante el envio de un mensaje del cliente _NET_ACTIVE_WINDOW
676 a la ventana principal. Por ejemplo, usando
678 para enviar el mensaje
679 (suponiendo que 0x4a0000b es el ID de la ventana para ser especifico):
680 .Bd -literal -offset indent
681 $ wmctrl \-i \-a 0x4a0000b
684 Ventanas se pueden cerrar mediante el envmo de un mensaje del cliente _NET_CLOSE_WINDOW
685 a la ventana principal. Por ejemplo, usando
687 para enviar el mensaje
688 (suponiendo que 0x4a0000b es el ID de la ventana se cierre):
689 .Bd -literal -offset indent
690 $ wmctrl \-i \-c 0x4a0000b
693 Las ventanas se pueden flotar y flotar sin-mediante la adicion o eliminacion de la
694 _NET_WM_STATE_ABOVE atom desde _NET_WM_STATE la propiedad de la ventana
695 Esto se puede lograr mediante el envio de un mensaje a los clientes _NET_WM_STATE
696 raiz de la ventana. Por ejemplo, el siguiente cambia el estado de la flota.
698 para enviar el mensaje (suponiendo que 0x4a0000b es el ID de la ventana flotante
700 .Bd -literal -offset indent
701 $ wmctrl \-i \-r 0x4a0000b \-b toggle,_NET_WM_STATE_ABOVE
704 Ventanas flotantes tambien se puede cambiar el tamano y movido por el envio de un
705 _NET_MOVERESIZE_WINDOW Mensaje del cliente de la ventana raiz. Por ejemplo,
708 para enviar el mensaje (suponiendo que 0x4a0000b es el ID de
709 la ventana a redimensionar / mover):
710 .Bd -literal -offset indent
711 $ wmctrl \-i \-r 0x4a0000b \-e 0,100,50,640,480
714 Esto mueve la ventana de (100,50) y cambia el tamaqo a 640x480.
716 Todos los eventos _NET_MOVERESIZE_WINDOW recibido por las ventanas apiladas se ignoran.
720 una senal de HUP reinicia spectrwm.
722 .Bl -tag -width "/etc/spectrwm.confXXX" -compact
723 .It Pa ~/.spectrwm.conf
725 archivo de configuración especifico del usuario.
726 .It Pa /etc/spectrwm.conf
728 configuraciones globales.
732 fue inspirado en xmonad y dwm.
738 .Bl -tag -width "Ryan Thomas McBride Aq mcbride@countersiege.com " -offset indent -compact
739 .It Cm Marco Peereboom Aq marco@peereboom.us
740 .It Cm Ryan Thomas McBride Aq mcbride@countersiege.com
741 .It Cm Darrin Chandler Aq dwchandler@stilyagin.com
742 .It Cm Pierre-Yves Ritschard Aq pyr@spootnik.org
743 .It Cm Tuukka Kataja Aq stuge@xor.fi
744 .It Cm Jason L. Wright Aq jason@thought.net
745 .It Cm Reginald Kennedy Aq rk@rejii.com
746 .It Cm Lawrence Teo Aq lteo@lteo.net
747 .It Cm Tiago Cunha Aq tcunha@gmx.com