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 Puedes posicionar la statusbar en la parte inferior de la pantalla.
111 Habilitar o deshabilitar mostrar el algoritmo de apilamiento en la barra
114 Habilitar o deshabilitar el reloj en la barra de estado, deshabilitado
115 por defecto con un 0, para usar el reloj de la barra de estado
120 Algunas aplicaciones tienen ventanas de dialogo muy pequeñas como para
121 ser usables. Este relación (ratio) es el tamaño de la pantalla, por
122 ejemplo 0.6 es 60% del tamaño físico de la pantalla.
124 Selecciona una disposicion para usar en el primer inicio.
125 Definido con el formato
126 ws[idx]:master_grow:master_add:stack_inc:layout:always_raise:stack_mode,
128 ws[2]:-4:0:1:0:horizontal setea el escritorio 2 en horizontal, el stack
129 principal y reduce 4 puntos agregando una ventana al stack, mientras
130 mantiene el comportamiento de ventanas flotantes.
131 Modos posible de stack_mode
146 para mas informacion.
147 Tenga en cuenta que las opciones de stack son complicados y tienen
149 Uno debe familiarizarse con estos comandos antes de experimentar con la
153 Esta opcion no necesita un reinicio.
155 Acomodar una region personalizada, removiendo cualquier autodeteción de
156 regiones que ocupe el espacio en la pantalla.
157 Definiendo el formato screen[<idx>]:WIDTHxHEIGHT+X+Y,
158 e.g.\& screen[1]:800x1200+0+0.
160 Setear un ancho minimo preferido para la terminal.
161 Si el valor es mayor que 0,
163 intentará ajustar el tamaño de la fuente de la terminal para mantener
164 el ancho de la terminal por encima de este número cuando la ventana
166 Actualmente solo es soportado por
170 no debe ser un setuid o setgid, que no sea el que viene por defecto en
171 la mayoria de los sistemas.
172 Los usuarios pueden necesitar setear program[term] (ver la sección
174 ) para usar una copia alternativa del binario de
176 sin el seteo del setgid.
177 .It Cm title_class_enabled
178 Habilitar o deshabilitar la clase de ventana en la barre de estado.
179 Habilitado seteando 1
180 .It Cm title_name_enabled
181 Habilitar o deshabilita el titulo de la ventana en la barra de estado.
182 Habilitado seteando 1
183 .It Cm urgent_enabled
184 Habilitar o deshabilitar el aviso de urgencia.
185 Tenga en cuenta que muchos emuladores de terminal requieren de este
186 parametro habilitado para que funcione.
187 En xterm, por ejemplo, hay que agregar la siguiente linea
188 .Pa xterm.urgentOnBell: true
191 .It Cm window_name_enabled
192 Habilitar o deshabilita el nombre de la ventana en la barra de estado.
193 Habilitado seteando 1
194 .It Cm verbose_layout
195 Habilitar o deshabilita la notificacion del area principal y el
196 stack en la barra de estado.
197 Habilitado seteandolo a 1.
200 Mod1 generalmente es la tecla ALT y Mod4 la tecla de windows en una PC.
204 puedes hacer que el manejador de ventanas
205 se enfoque en la ventana cuando el cursor pase por arriba de las mismas o
206 bien cambiando de estacion de trabajo.
207 .It Cm disable_border
208 Remueve el borde de una sola ventana cuando la barra de estado esta desactivada.
210 Setea el grosor del borde de la ventana en pixels.
211 Deshabilitar todos los bordes seteandolo a 0.
212 .It Cm program Ns Bq Ar p
213 Definir una nueva accion para ejecutar un programa.
217 .It Cm bind Ns Bq Ar x
218 Combinación de teclas para una acción
222 .It Cm quirk Ns Bq Ar c:n
223 Agregar un "quirk" (o forzados) para ventanas con clase
231 Los colores deben ser especificados por la especificación
233 y las fuentes por la especificación
237 te permite definir acciones personales para lanzar los programas que
238 quieras y luego obligar a la misma con una función de acciones.
242 Los programas por defecto se describen acá:
244 .Bl -tag -width "screenshot_wind" -offset indent -compact
247 .It Cm screenshot_all
248 screenshot.sh completo
249 .It Cm screenshot_wind
250 screenshot.sh por ventana
256 dmenu_run \-fn $bar_font \-nb $bar_color \-nf $bar_font_color \-sb $bar_border \-sf $bar_color
259 Los programas en la configuración personal, se especifican aca:
261 .Dl program[<nombre>] = <progpath> [<arg> [... <arg>]]
264 es un identificador, no genera conflictos con ninguna accion o palabra
267 es la ruta al programa, y
269 es ninguno o mas de un argumento para el programa.
271 Las siguientes variables de configuracion en
274 .Sx ARCHIVOS DE CONFIGURACIÓN
276 y pueden ser usadas en los campos de
278 como asi tambien sustituidas por valores al momento del inicio de un
281 .Bl -tag -width "$bar_font_color" -offset indent -compact
285 .It Cm $bar_font_color
287 .It Cm $color_unfocus
291 .Bd -literal -offset indent
292 program[ff] = /usr/local/bin/firefox http://spectrwm.com.ar/
293 bind[ff] = Mod+f # Ahora Mod+F inicia firefox
296 Para deshacer lo anterior:
297 .Bd -literal -offset indent
303 provee muchas funciones (o acciones) accesibles por medio de la
304 asignación (bindings) de teclas o el mouse.
306 Las corrientes asignaciones (bindings) del mouse son:
308 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
314 Redimenciono una ventana
316 Redimenciono una ventana hasta que quede centrada
319 Las corrientes asignaciones (bindings) de teclas son:
321 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
322 .It Cm M-S- Ns Aq Cm Return
331 .It Cm M- Ns Aq Cm Space
333 .It Cm M-S- Ns Aq Cm Space
347 .It Cm M- Ns Aq Cm Return
356 .Cm M-S- Ns Aq Cm TAB
373 .It Cm M-S- Ns Aq Ar n
375 .It Cm M- Ns Aq Cm Right
377 .It Cm M- Ns Aq Cm Left
381 .It Cm M-S- Ns Aq Cm Right
383 .It Cm M-S- Ns Aq Cm Left
393 .It Cm M-S Aq Cm Delete
423 El nombre de las acciónes descripta a continuación:
425 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
427 Ejecutar una terminal
443 Disposición de las ventanas
445 Reiniciar la disposición de las ventanas
447 Achicar la region principal
449 Agrandar la region principal
451 Agregar una ventana a la region principal
453 Quitar una ventana de la region principal
455 Agregar columnas/filas a las pilas
457 Quitar columnas/filas de las pilas
459 Mover la ventana corriente a la region principal
461 Enfocar la proxima ventana en la estación de trabajo
463 Enfocar la anterior ventana en la estación de trabajo
465 Enfocar en la ventana principal de la estación de trabajo
467 Ejecutar con la siguiente ventana en la estación de trabajo
469 Ejecutar con la anterior ventana en la estación de trabajo
471 Cambiar la barra de estado en todas las estaciones de trabajo
473 Borrar la ventana corriente en la estación de trabajo
475 Destruir la ventana corriente en la estación de trabajo
477 Cambiar entre estaciones de trabajo
483 Mover la ventana corriente a una estación de trabajo
489 Cambiar a la proxima estación de trabajo con una ventana en ella
491 Cambiar a la anterior estación de trabajo con una ventana en ella
493 Mover el puntero a la proxima region
495 Mover el puntero a la anterior region
496 .It Cm screenshot_all
497 Tomar una captura de pantalla de todo la pantalla (si esta habilitado)
501 .It Cm screenshot_wind
502 Tomar una captura de pantalla de la ventana seleccionada (si esta habilitado)
507 Mostrar la version en la barra de estado
509 Mostar la ventana en foco entre las flotantes y acomodadas
516 Reiniciar la pantalla
521 Minimiza (unmap) la ventana en foco.
523 Maximiza (map) la ventana seleccionada por dmenu.
525 Cuando se establece las ventanas en cascada se esconden las
528 Falsifica el boton del medio del mouse.
530 Reducir el ancho de una ventana flotante.
532 Agranda el ancho de una ventana flotante.
534 Reducir la altura de una ventana flotante.
536 Agranda la altura de una ventana flotante.
538 Mueve la ventana flotante un paso a la izquierda.
540 Mueve la ventana flotante un paso a la derecha.
542 Mueve la ventana flotante un paso arriba.
544 Mueve la ventana flotante un paso abajo.
547 Personalizar mapeos (bindings) en el archivo de configuración:
549 .Dl bind[<accion>] = <teclas>
552 una de las acciones listadas (o ninguna) y
554 una o mas teclas modificadas (puede ser ninguna tambien)
555 (MOD, Mod1, Shift, etc.) y una o mas teclas normales
556 (b, barra espaciadora, etc.), separadas por un "+".
558 .Bd -literal -offset indent
559 bind[reset] = Mod4+q # combinación Tecla de Windows + q reinicia
560 bind[] = Mod1+q # des-hace la combinación Alt + q
563 Multiples combinaciones de teclas pueden hacer lo mismo.
566 te da "quirks" (o forzados) ventanas que tienen que ser tratas de manera especial,
567 como por ejemplo, popups, aplicaciones de pantalla completa, etc.
569 Los "quirks" (o forzados) por defecto son:
571 .Bl -tag -width "OpenOffice.org N.M:VCLSalFrame<TAB>XXX" -offset indent -compact
572 .It Firefox\-bin:firefox\-bin
580 .It OpenOffice.org 2.4:VCLSalFrame
582 .It OpenOffice.org 3.1:VCLSalFrame
590 .It xine:xine Video Fullscreen Window
600 Los "quirks" (o forzados) se describen a continuación:
602 .Bl -tag -width "XTERM_FONTADJ<TAB>XXX" -offset indent -compact
604 Esta ventana no tiene que ser acomodada, pero le permitimos flotar libremente.
606 Ajusta el tamaño de las ventanas transitorias que son demasiado pequeñas utilizando dialog_ratio
608 .Sx ARCHIVOS DE CONFIGURACIÓN ) .
610 Permite que la ventana se ponga donde quiera.
612 Ajusta las fuentes de xterm cuando se redimenciona.
614 Quita el borde para permitir las ventanas en pantalla completa.
616 El enfoque de salida fuerza la solicitud de aplicacisn que
617 anteriormente se centraba en la aplicacion anterior del stack.
620 Las configuraciones de "quirks" (o forzados) en el archivo de configuración se ven a continuación:
622 .Dl quirk[<clases>:<nombre>] = <quirk> [ + <quirk> ... ]
627 especifica la ventana en la cual el "quirk(s)" (o forzados) se aplica, y
629 es uno de los "quirks" (o forzados) de la lista.
631 .Bd -literal -offset indent
632 quirk[MPlayer:xv] = FLOAT + FULLSCREEN # dejamos que mplayer funcione libremente
633 quirk[pcb:pcb] = NONE # borramos el quirk existente
640 corriendo el programa xprop(1) y luego clickear en la ventana que quieras.
641 En el proximo ejemplo, podremos verlo en acción con una ventana de Firefox:
642 .Bd -literal -offset indent
643 $ xprop | grep WM_CLASS
644 WM_CLASS(STRING) = "Navigator", "Firefox"
648 parcialmente implementa los Consejos de ventana extendido Manager (EWMH) especificacion.
649 Esto permite el control de las ventanas, asi como
651 si a partir de scripts y programas externos. Esto se logra mediante
653 responder a ciertos eventos ClientMessage. Desde la terminal de estos eventos
654 se puede enviar facilmente el uso de herramientas tales como
659 formato real de estos eventos ClientMessage, consulte la especificacion EWMH.
661 La Identificacion de la ventana actualmente enfocada se almacena en el _NET_ACTIVE_WINDOW
662 propiedad de la ventana raiz. Esto puede ser usado por ejemplo para recuperar el
663 titulo de la ventana activa con
667 .Bd -literal -offset indent
668 $ WINDOWID=`xprop \-root _NET_ACTIVE_WINDOW | grep \-o "0x.*"`
669 $ xprop \-id $WINDOWID WM_NAME | grep \-o "\\".*\\""
672 Una ventana se puede enfocar mediante el envio de un mensaje del cliente _NET_ACTIVE_WINDOW
673 a la ventana principal. Por ejemplo, usando
675 para enviar el mensaje
676 (suponiendo que 0x4a0000b es el ID de la ventana para ser especifico):
677 .Bd -literal -offset indent
678 $ wmctrl \-i \-a 0x4a0000b
681 Ventanas se pueden cerrar mediante el envmo de un mensaje del cliente _NET_CLOSE_WINDOW
682 a la ventana principal. Por ejemplo, usando
684 para enviar el mensaje
685 (suponiendo que 0x4a0000b es el ID de la ventana se cierre):
686 .Bd -literal -offset indent
687 $ wmctrl \-i \-c 0x4a0000b
690 Las ventanas se pueden flotar y flotar sin-mediante la adicion o eliminacion de la
691 _NET_WM_STATE_ABOVE atom desde _NET_WM_STATE la propiedad de la ventana
692 Esto se puede lograr mediante el envio de un mensaje a los clientes _NET_WM_STATE
693 raiz de la ventana. Por ejemplo, el siguiente cambia el estado de la flota.
695 para enviar el mensaje (suponiendo que 0x4a0000b es el ID de la ventana flotante
697 .Bd -literal -offset indent
698 $ wmctrl \-i \-r 0x4a0000b \-b toggle,_NET_WM_STATE_ABOVE
701 Ventanas flotantes tambien se puede cambiar el tamano y movido por el envio de un
702 _NET_MOVERESIZE_WINDOW Mensaje del cliente de la ventana raiz. Por ejemplo,
705 para enviar el mensaje (suponiendo que 0x4a0000b es el ID de
706 la ventana a redimensionar / mover):
707 .Bd -literal -offset indent
708 $ wmctrl \-i \-r 0x4a0000b \-e 0,100,50,640,480
711 Esto mueve la ventana de (100,50) y cambia el tamaqo a 640x480.
713 Todos los eventos _NET_MOVERESIZE_WINDOW recibido por las ventanas apiladas se ignoran.
717 una senal de HUP reinicia spectrwm.
719 .Bl -tag -width "/etc/spectrwm.confXXX" -compact
720 .It Pa ~/.spectrwm.conf
722 archivo de configuración especifico del usuario.
723 .It Pa /etc/spectrwm.conf
725 configuraciones globales.
729 fue inspirado en xmonad y dwm.
735 .Bl -tag -width "Ryan Thomas McBride Aq mcbride@countersiege.com " -offset indent -compact
736 .It Cm Marco Peereboom Aq marco@peereboom.us
737 .It Cm Ryan Thomas McBride Aq mcbride@countersiege.com
738 .It Cm Darrin Chandler Aq dwchandler@stilyagin.com
739 .It Cm Pierre-Yves Ritschard Aq pyr@spootnik.org
740 .It Cm Tuukka Kataja Aq stuge@xor.fi
741 .It Cm Jason L. Wright Aq jason@thought.net
742 .It Cm Reginald Kennedy Aq rk@rejii.com
743 .It Cm Lawrence Teo Aq lteo@lteo.net
744 .It Cm Tiago Cunha Aq tcunha@gmx.com