3 .\" Copyright (c) 2009 Marco Peereboom <marco@peereboom.us>
4 .\" Copyright (c) 2009 Darrin Chandler <dwchandler@stilyagin.com>
6 .\" Permission to use, copy, modify, and distribute this software for any
7 .\" purpose with or without fee is hereby granted, provided that the above
8 .\" copyright notice and this permission notice appear in all copies.
10 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23 .Nd es un manejador de ventanas para X11
28 es un manejador de ventanas super minimalista para X11. Intenta no superponer
29 las ventanas para que las mismas puedan usarse de manera eficiente y para cosas mas importantes.
30 Tiene configuraciones normales y no requiere que sepas un lenguaje de
31 programacion para configurarlo. Esta escrito por hackers para hackers y apunta
32 a ser pequeño, compacto y rápido.
36 inicia, lo primero que hace es leer el archivo de configuracion,
39 .Sx ARCHIVOS DE CONFIGURACIÓN
42 La siguiente anotacion se usa a través de esta pagina:
44 .Bl -tag -width Ds -offset indent -compact
58 es muy simple de usar.
59 La mayoria de las acciones se hacen con los mapeos (bindings) de mouse
63 para las personalizaciones y configuraciones por defecto.
64 .Sh ARCHIVOS DE CONFIGURACIÓN
66 primero trata de abrir el archivo por defecto en el directorio del usuario,
68 Si ese archivo no esta disponible,
69 luego trata de abrir el archivo global de configuracion
70 .Pa /etc/scrotwm.conf .
72 El formato del archivo es \*(Lttecla\*(Gt = \*(Ltconfiguracion\*(Gt.
77 Habilitamos o deshabilitamos la opción usando 1 o 0 respectivamente.
79 El archivo soporta las siguientes palabras clave:
81 .Bl -tag -width "title_class_enabledXXX" -offset indent -compact
83 Inicia una aplicacion en un escritorio en particular al primer inicio.
84 Definido por el formato ws[<idx>]:aplicacion, ej. ws[2]:xterm lanza
85 xterm en el escritorio 2.
87 Color del borde de la ventana en foco.
89 Color del borde de la ventana fuera de foco.
91 Habilitar o deshabilitar la barra de estado.
92 .It Cm bar_border Ns Bq Ar x
93 Color del borde de la barra de estado en pantalla.
95 .It Cm bar_border_width
96 Setea el grosor de la barra de estado en pixels.
97 Deshabilitado seteando 0.
98 .It Cm bar_color Ns Bq Ar x
99 Color de la ventana de la barra de estado en pantalla.
101 .It Cm bar_font_color Ns Bq Ar x
102 Color de la fuente en la barra de estado en pantalla.
105 Fuente de la barra de estado.
107 Scripts externos con populares agregados de información para la barra
108 de estado, como la vida de la bateria.
110 Frecuencia de actualización, en segundos, de los scripts de la barra de
113 Puedes posicionar la statusbar en la parte inferior de la pantalla.
115 Habilitar o deshabilitar mostrar el algoritmo de apilamiento en la barra
118 Habilitar o deshabilitar el reloj en la barra de estado, deshabilitado
119 por defecto con un 0, para usar el reloj de la barra de estado
124 Algunas aplicaciones tienen ventanas de dialogo muy pequeñas como para
125 ser usables. Este relación (ratio) es el tamaño de la pantalla, por
126 ejemplo 0.6 es 60% del tamaño físico de la pantalla.
128 Selecciona una disposicion para usar en el primer inicio.
129 Definido con el formato
130 ws[idx]:master_grow:master_add:stack_inc:layout:always_raise:stack_mode,
132 ws[2]:-4:0:1:0:horizontal setea el escritorio 2 en horizontal, el stack
133 principal y reduce 4 puntos agregando una ventana al stack, mientras
134 mantiene el comportamiento de ventanas flotantes.
135 Modos posible de stack_mode
150 para mas informacion.
151 Tenga en cuenta que las opciones de stack son complicados y tienen
153 Uno debe familiarizarse con estos comandos antes de experimentar con la
157 Esta opcion no necesita un reinicio.
159 Acomodar una region personalizada, removiendo cualquier autodeteción de
160 regiones que ocupe el espacio en la pantalla.
161 Definiendo el formato screen[<idx>]:WIDTHxHEIGHT+X+Y,
162 e.g.\& screen[1]:800x1200+0+0.
164 Setear un ancho minimo preferido para la terminal.
165 Si el valor es mayor que 0,
167 intentará ajustar el tamaño de la fuente de la terminal para mantener
168 el ancho de la terminal por encima de este número cuando la ventana
170 Actualmente solo es soportado por
174 no debe ser un setuid o setgid, que no sea el que viene por defecto en
175 la mayoria de los sistemas.
176 Los usuarios pueden necesitar setear program[term] (ver la sección
178 ) para usar una copia alternativa del binario de
180 sin el seteo del setgid.
181 .It Cm title_class_enabled
182 Habilitar o deshabilitar la clase de ventana en la barre de estado.
183 Habilitado seteando 1
184 .It Cm title_name_enabled
185 Habilitar o deshabilita el titulo de la ventana en la barra de estado.
186 Habilitado seteando 1
187 .It Cm urgent_enabled
188 Habilitar o deshabilitar el aviso de urgencia.
189 Tenga en cuenta que muchos emuladores de terminal requieren de este
190 parametro habilitado para que funcione.
191 En xterm, por ejemplo, hay que agregar la siguiente linea
192 .Pa xterm.urgentOnBell: true
195 .It Cm window_name_enabled
196 Habilitar o deshabilita el nombre de la ventana en la barra de estado.
197 Habilitado seteando 1
198 .It Cm verbose_layout
199 Habilitar o deshabilita la notificacion del area principal y el
200 stack en la barra de estado.
201 Habilitado seteandolo a 1.
204 Mod1 generalmente es la tecla ALT y Mod4 la tecla de windows en una PC.
208 puedes hacer que el manejador de ventanas
209 se enfoque en la ventana cuando el cursor pase por arriba de las mismas o
210 bien cambiando de estacion de trabajo.
211 .It Cm disable_border
212 Remueve el borde de una sola ventana cuando la barra de estado esta desactivada.
214 Setea el grosor del borde de la ventana en pixels.
215 Deshabilitar todos los bordes seteandolo a 0.
216 .It Cm program Ns Bq Ar p
217 Definir una nueva accion para ejecutar un programa.
221 .It Cm bind Ns Bq Ar x
222 Combinación de teclas para una acción
226 .It Cm quirk Ns Bq Ar c:n
227 Agregar un "quirk" (o forzados) para ventanas con clase
235 Los colores deben ser especificados por la especificación
237 y las fuentes por la especificación
241 te permite definir acciones personales para lanzar los programas que
242 quieras y luego obligar a la misma con una función de acciones.
246 Los programas por defecto se describen acá:
248 .Bl -tag -width "screenshot_wind" -offset indent -compact
251 .It Cm screenshot_all
252 screenshot.sh completo
253 .It Cm screenshot_wind
254 screenshot.sh por ventana
260 dmenu_run \-fn $bar_font \-nb $bar_color \-nf $bar_font_color \-sb $bar_border \-sf $bar_color
263 Los programas en la configuración personal, se especifican aca:
265 .Dl program[<nombre>] = <progpath> [<arg> [... <arg>]]
268 es un identificador, no genera conflictos con ninguna accion o palabra
271 es la ruta al programa, y
273 es ninguno o mas de un argumento para el programa.
275 Las siguientes variables de configuracion en
278 .Sx ARCHIVOS DE CONFIGURACIÓN
280 y pueden ser usadas en los campos de
282 como asi tambien sustituidas por valores al momento del inicio de un
285 .Bl -tag -width "$bar_font_color" -offset indent -compact
289 .It Cm $bar_font_color
291 .It Cm $color_unfocus
295 .Bd -literal -offset indent
296 program[ff] = /usr/local/bin/firefox http://scrotwm.com.ar/
297 bind[ff] = Mod+f # Ahora Mod+F inicia firefox
300 Para deshacer lo anterior:
301 .Bd -literal -offset indent
307 provee muchas funciones (o acciones) accesibles por medio de la
308 asignación (bindings) de teclas o el mouse.
310 Las corrientes asignaciones (bindings) del mouse son:
312 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
318 Redimenciono una ventana
320 Redimenciono una ventana hasta que quede centrada
323 Las corrientes asignaciones (bindings) de teclas son:
325 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
326 .It Cm M-S- Ns Aq Cm Return
335 .It Cm M- Ns Aq Cm Space
337 .It Cm M-S- Ns Aq Cm Space
351 .It Cm M- Ns Aq Cm Return
360 .Cm M-S- Ns Aq Cm TAB
377 .It Cm M-S- Ns Aq Ar n
379 .It Cm M- Ns Aq Cm Right
381 .It Cm M- Ns Aq Cm Left
385 .It Cm M-S- Ns Aq Cm Right
387 .It Cm M-S- Ns Aq Cm Left
397 .It Cm M-S Aq Cm Delete
427 El nombre de las acciónes descripta a continuación:
429 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
431 Ejecutar una terminal
447 Disposición de las ventanas
449 Reiniciar la disposición de las ventanas
451 Achicar la region principal
453 Agrandar la region principal
455 Agregar una ventana a la region principal
457 Quitar una ventana de la region principal
459 Agregar columnas/filas a las pilas
461 Quitar columnas/filas de las pilas
463 Mover la ventana corriente a la region principal
465 Enfocar la proxima ventana en la estación de trabajo
467 Enfocar la anterior ventana en la estación de trabajo
469 Enfocar en la ventana principal de la estación de trabajo
471 Ejecutar con la siguiente ventana en la estación de trabajo
473 Ejecutar con la anterior ventana en la estación de trabajo
475 Cambiar la barra de estado en todas las estaciones de trabajo
477 Borrar la ventana corriente en la estación de trabajo
479 Destruir la ventana corriente en la estación de trabajo
481 Cambiar entre estaciones de trabajo
487 Mover la ventana corriente a una estación de trabajo
493 Cambiar a la proxima estación de trabajo con una ventana en ella
495 Cambiar a la anterior estación de trabajo con una ventana en ella
497 Mover el puntero a la proxima region
499 Mover el puntero a la anterior region
500 .It Cm screenshot_all
501 Tomar una captura de pantalla de todo la pantalla (si esta habilitado)
505 .It Cm screenshot_wind
506 Tomar una captura de pantalla de la ventana seleccionada (si esta habilitado)
511 Mostrar la version en la barra de estado
513 Mostar la ventana en foco entre las flotantes y acomodadas
520 Reiniciar la pantalla
525 Minimiza (unmap) la ventana en foco.
527 Maximiza (map) la ventana seleccionada por dmenu.
529 Cuando se establece las ventanas en cascada se esconden las
532 Falsifica el boton del medio del mouse.
534 Reducir el ancho de una ventana flotante.
536 Agranda el ancho de una ventana flotante.
538 Reducir la altura de una ventana flotante.
540 Agranda la altura de una ventana flotante.
542 Mueve la ventana flotante un paso a la izquierda.
544 Mueve la ventana flotante un paso a la derecha.
546 Mueve la ventana flotante un paso arriba.
548 Mueve la ventana flotante un paso abajo.
551 Personalizar mapeos (bindings) en el archivo de configuración:
553 .Dl bind[<accion>] = <teclas>
556 una de las acciones listadas (o ninguna) y
558 una o mas teclas modificadas (puede ser ninguna tambien)
559 (MOD, Mod1, Shift, etc.) y una o mas teclas normales
560 (b, barra espaciadora, etc.), separadas por un "+".
562 .Bd -literal -offset indent
563 bind[reset] = Mod4+q # combinación Tecla de Windows + q reinicia
564 bind[] = Mod1+q # des-hace la combinación Alt + q
567 Multiples combinaciones de teclas pueden hacer lo mismo.
570 te da "quirks" (o forzados) ventanas que tienen que ser tratas de manera especial,
571 como por ejemplo, popups, aplicaciones de pantalla completa, etc.
573 Los "quirks" (o forzados) por defecto son:
575 .Bl -tag -width "OpenOffice.org N.M:VCLSalFrame<TAB>XXX" -offset indent -compact
576 .It Firefox\-bin:firefox\-bin
584 .It OpenOffice.org 2.4:VCLSalFrame
586 .It OpenOffice.org 3.1:VCLSalFrame
594 .It xine:xine Video Fullscreen Window
604 Los "quirks" (o forzados) se describen a continuación:
606 .Bl -tag -width "XTERM_FONTADJ<TAB>XXX" -offset indent -compact
608 Esta ventana no tiene que ser acomodada, pero le permitimos flotar libremente.
610 Ajusta el tamaño de las ventanas transitorias que son demasiado pequeñas utilizando dialog_ratio
612 .Sx ARCHIVOS DE CONFIGURACIÓN ) .
614 Permite que la ventana se ponga donde quiera.
616 Ajusta las fuentes de xterm cuando se redimenciona.
618 Quita el borde para permitir las ventanas en pantalla completa.
620 El enfoque de salida fuerza la solicitud de aplicacisn que
621 anteriormente se centraba en la aplicacion anterior del stack.
624 Las configuraciones de "quirks" (o forzados) en el archivo de configuración se ven a continuación:
626 .Dl quirk[<clases>:<nombre>] = <quirk> [ + <quirk> ... ]
631 especifica la ventana en la cual el "quirk(s)" (o forzados) se aplica, y
633 es uno de los "quirks" (o forzados) de la lista.
635 .Bd -literal -offset indent
636 quirk[MPlayer:xv] = FLOAT + FULLSCREEN # dejamos que mplayer funcione libremente
637 quirk[pcb:pcb] = NONE # borramos el quirk existente
644 corriendo el programa xprop(1) y luego clickear en la ventana que quieras.
645 En el proximo ejemplo, podremos verlo en acción con una ventana de Firefox:
646 .Bd -literal -offset indent
647 $ xprop | grep WM_CLASS
648 WM_CLASS(STRING) = "Navigator", "Firefox"
652 parcialmente implementa los Consejos de ventana extendido Manager (EWMH) especificacion.
653 Esto permite el control de las ventanas, asi como
655 si a partir de scripts y programas externos. Esto se logra mediante
657 responder a ciertos eventos ClientMessage. Desde la terminal de estos eventos
658 se puede enviar facilmente el uso de herramientas tales como
663 formato real de estos eventos ClientMessage, consulte la especificacion EWMH.
665 La Identificacion de la ventana actualmente enfocada se almacena en el _NET_ACTIVE_WINDOW
666 propiedad de la ventana raiz. Esto puede ser usado por ejemplo para recuperar el
667 titulo de la ventana activa con
671 .Bd -literal -offset indent
672 $ WINDOWID=`xprop \-root _NET_ACTIVE_WINDOW | grep \-o "0x.*"`
673 $ xprop \-id $WINDOWID WM_NAME | grep \-o "\\".*\\""
676 Una ventana se puede enfocar mediante el envio de un mensaje del cliente _NET_ACTIVE_WINDOW
677 a la ventana principal. Por ejemplo, usando
679 para enviar el mensaje
680 (suponiendo que 0x4a0000b es el ID de la ventana para ser especifico):
681 .Bd -literal -offset indent
682 $ wmctrl \-i \-a 0x4a0000b
685 Ventanas se pueden cerrar mediante el envmo de un mensaje del cliente _NET_CLOSE_WINDOW
686 a la ventana principal. Por ejemplo, usando
688 para enviar el mensaje
689 (suponiendo que 0x4a0000b es el ID de la ventana se cierre):
690 .Bd -literal -offset indent
691 $ wmctrl \-i \-c 0x4a0000b
694 Las ventanas se pueden flotar y flotar sin-mediante la adicion o eliminacion de la
695 _NET_WM_STATE_ABOVE atom desde _NET_WM_STATE la propiedad de la ventana
696 Esto se puede lograr mediante el envio de un mensaje a los clientes _NET_WM_STATE
697 raiz de la ventana. Por ejemplo, el siguiente cambia el estado de la flota.
699 para enviar el mensaje (suponiendo que 0x4a0000b es el ID de la ventana flotante
701 .Bd -literal -offset indent
702 $ wmctrl \-i \-r 0x4a0000b \-b toggle,_NET_WM_STATE_ABOVE
705 Ventanas flotantes tambien se puede cambiar el tamano y movido por el envio de un
706 _NET_MOVERESIZE_WINDOW Mensaje del cliente de la ventana raiz. Por ejemplo,
709 para enviar el mensaje (suponiendo que 0x4a0000b es el ID de
710 la ventana a redimensionar / mover):
711 .Bd -literal -offset indent
712 $ wmctrl \-i \-r 0x4a0000b \-e 0,100,50,640,480
715 Esto mueve la ventana de (100,50) y cambia el tamaqo a 640x480.
717 Todos los eventos _NET_MOVERESIZE_WINDOW recibido por las ventanas apiladas se ignoran.
722 una senal de HUP reinicia scrotwm.
725 .Bl -tag -width "/etc/scrotwm.confXXX" -compact
726 .It Pa ~/.scrotwm.conf
728 archivo de configuración especifico del usuario.
729 .It Pa /etc/scrotwm.conf
731 configuraciones globales.
735 fue inspirado en xmonad y dwm.
741 .An Marco Peereboom Aq marco@peereboom.us ,
742 .An Ryan Thomas McBride Aq mcbride@countersiege.com
744 .An Darrin Chandler Aq dwchandler@stilyagin.com .
746 Actualmente el menu, se llama con