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.
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 cosas mas importantes.
28 Tiene configuraciones normales y no requiere que sepas un lenguaje de
29 programacion para configurarlo. Esta escrito por hackers para hackers y apunta
30 a ser pequeño, compacto y rápido.
34 inicia, lo primero que hace es leer el archivo de configuracion,
37 .Sx ARCHIVOS DE CONFIGURACIÓN
40 La siguiente anotacion se usa a través de esta pagina:
42 .Bl -tag -width Ds -offset indent -compact
56 es muy simple de usar.
57 La mayoria de las acciones se hacen con los mapeos (bindings) de mouse
61 para las personalizaciones y configuraciones por defecto.
62 .Sh ARCHIVOS DE CONFIGURACIÓN
64 primero trata de abrir el archivo por defecto en el directorio del usuario,
66 Si ese archivo no esta disponible,
67 luego trata de abrir el archivo global de configuracion
68 .Pa /etc/scrotwm.conf .
70 El formato del archivo es \*(Lttecla\*(Gt = \*(Ltconfiguracion\*(Gt.
75 Habilitamos o deshabilitamos la opción usando 1 o 0 respectivamente.
77 El archivo soporta las siguientes palabras clave:
79 .Bl -tag -width "title_class_enabledXXX" -offset indent -compact
81 Inicia una aplicacion en un escritorio en particular al primer inicio.
82 Definido por el formato ws[<idx>]:aplicacion, ej. ws[2]:xterm lanza
83 xterm en el escritorio 2.
85 Color del borde de la ventana en foco.
87 Color del borde de la ventana fuera de foco.
89 Habilitar o deshabilitar la barra de estado.
90 .It Cm bar_border Ns Bq Ar x
91 Color del borde de la barra de estado en pantalla.
93 .It Cm bar_border_width
94 Setea el grosor de la barra de estado en pixels.
95 Deshabilitado seteando 0.
96 .It Cm bar_color Ns Bq Ar x
97 Color de la ventana de la barra de estado en pantalla.
99 .It Cm bar_font_color Ns Bq Ar x
100 Color de la fuente en la barra de estado en pantalla.
103 Fuente de la barra de estado.
105 Scripts externos con populares agregados de información para la barra
106 de estado, como la vida de la bateria.
108 Frecuencia de actualización, en segundos, de los scripts de la barra de
111 Puedes posicionar la statusbar en la parte inferior de la pantalla.
113 Habilitar o deshabilitar mostrar el algoritmo de apilamiento en la barra
116 Habilitar o deshabilitar el reloj en la barra de estado, deshabilitado
117 por defecto con un 0, para usar el reloj de la barra de estado
122 Algunas aplicaciones tienen ventanas de dialogo muy pequeñas como para
123 ser usables. Este relación (ratio) es el tamaño de la pantalla, por
124 ejemplo 0.6 es 60% del tamaño físico de la pantalla.
126 Selecciona una disposicion para usar en el primer inicio.
127 Definido con el formato
128 ws[idx]:master_grow:master_add:stack_inc:layout:always_raise:stack_mode,
130 ws[2]:-4:0:1:0:horizontal setea el escritorio 2 en horizontal, el stack
131 principal y reduce 4 puntos agregando una ventana al stack, mientras
132 mantiene el comportamiento de ventanas flotantes.
133 Modos posible de stack_mode
148 para mas informacion.
149 Tenga en cuenta que las opciones de stack son complicados y tienen
151 Uno debe familiarizarse con estos comandos antes de experimentar con la
155 Esta opcion no necesita un reinicio.
157 Acomodar una region personalizada, removiendo cualquier autodeteción de
158 regiones que ocupe el espacio en la pantalla.
159 Definiendo el formato screen[<idx>]:WIDTHxHEIGHT+X+Y,
160 e.g.\& screen[1]:800x1200+0+0.
162 Setear un ancho minimo preferido para la terminal.
163 Si el valor es mayor que 0,
165 intentará ajustar el tamaño de la fuente de la terminal para mantener
166 el ancho de la terminal por encima de este número cuando la ventana
168 Actualmente solo es soportado por
172 no debe ser un setuid o setgid, que no sea el que viene por defecto en
173 la mayoria de los sistemas.
174 Los usuarios pueden necesitar setear program[term] (ver la sección
176 ) para usar una copia alternativa del binario de
178 sin el seteo del setgid.
179 .It Cm title_class_enabled
180 Habilitar o deshabilitar la clase de ventana en la barre de estado.
181 Habilitado seteando 1
182 .It Cm title_name_enabled
183 Habilitar o deshabilita el titulo de la ventana en la barra de estado.
184 Habilitado seteando 1
185 .It Cm urgent_enabled
186 Habilitar o deshabilitar el aviso de urgencia.
187 Tenga en cuenta que muchos emuladores de terminal requieren de este
188 parametro habilitado para que funcione.
189 En xterm, por ejemplo, hay que agregar la siguiente linea
190 .Pa xterm.urgentOnBell: true
193 .It Cm window_name_enabled
194 Habilitar o deshabilita el nombre de la ventana en la barra de estado.
195 Habilitado seteando 1
196 .It Cm verbose_layout
197 Habilitar o deshabilita la notificacion del area principal y el
198 stack en la barra de estado.
199 Habilitado seteandolo a 1.
202 Mod1 generalmente es la tecla ALT y Mod4 la tecla de windows en una PC.
206 puedes hacer que el manejador de ventanas
207 se enfoque en la ventana cuando el cursor pase por arriba de las mismas o
208 bien cambiando de estacion de trabajo.
209 .It Cm disable_border
210 Remueve el borde de una sola ventana cuando la barra de estado esta desactivada.
212 Setea el grosor del borde de la ventana en pixels.
213 Deshabilitar todos los bordes seteandolo a 0.
214 .It Cm program Ns Bq Ar p
215 Definir una nueva accion para ejecutar un programa.
219 .It Cm bind Ns Bq Ar x
220 Combinación de teclas para una acción
224 .It Cm quirk Ns Bq Ar c:n
225 Agregar un "quirk" (o forzados) para ventanas con clase
233 Los colores deben ser especificados por la especificación
235 y las fuentes por la especificación
239 te permite definir acciones personales para lanzar los programas que
240 quieras y luego obligar a la misma con una función de acciones.
244 Los programas por defecto se describen acá:
246 .Bl -tag -width "screenshot_wind" -offset indent -compact
249 .It Cm screenshot_all
250 screenshot.sh completo
251 .It Cm screenshot_wind
252 screenshot.sh por ventana
258 dmenu_run \-fn $bar_font \-nb $bar_color \-nf $bar_font_color \-sb $bar_border \-sf $bar_color
261 Los programas en la configuración personal, se especifican aca:
263 .Dl program[<nombre>] = <progpath> [<arg> [... <arg>]]
266 es un identificador, no genera conflictos con ninguna accion o palabra
269 es la ruta al programa, y
271 es ninguno o mas de un argumento para el programa.
273 Las siguientes variables de configuracion en
276 .Sx ARCHIVOS DE CONFIGURACIÓN
278 y pueden ser usadas en los campos de
280 como asi tambien sustituidas por valores al momento del inicio de un
283 .Bl -tag -width "$bar_font_color" -offset indent -compact
287 .It Cm $bar_font_color
289 .It Cm $color_unfocus
293 .Bd -literal -offset indent
294 program[ff] = /usr/local/bin/firefox http://scrotwm.com.ar/
295 bind[ff] = Mod+f # Ahora Mod+F inicia firefox
298 Para deshacer lo anterior:
299 .Bd -literal -offset indent
305 provee muchas funciones (o acciones) accesibles por medio de la
306 asignación (bindings) de teclas o el mouse.
308 Las corrientes asignaciones (bindings) del mouse son:
310 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
316 Redimenciono una ventana
318 Redimenciono una ventana hasta que quede centrada
321 Las corrientes asignaciones (bindings) de teclas son:
323 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
324 .It Cm M-S- Ns Aq Cm Return
333 .It Cm M- Ns Aq Cm Space
335 .It Cm M-S- Ns Aq Cm Space
349 .It Cm M- Ns Aq Cm Return
358 .Cm M-S- Ns Aq Cm TAB
375 .It Cm M-S- Ns Aq Ar n
377 .It Cm M- Ns Aq Cm Right
379 .It Cm M- Ns Aq Cm Left
383 .It Cm M-S- Ns Aq Cm Right
385 .It Cm M-S- Ns Aq Cm Left
395 .It Cm M-S Aq Cm Delete
425 El nombre de las acciónes descripta a continuación:
427 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
429 Ejecutar una terminal
445 Disposición de las ventanas
447 Reiniciar la disposición de las ventanas
449 Achicar la region principal
451 Agrandar la region principal
453 Agregar una ventana a la region principal
455 Quitar una ventana de la region principal
457 Agregar columnas/filas a las pilas
459 Quitar columnas/filas de las pilas
461 Mover la ventana corriente a la region principal
463 Enfocar la proxima ventana en la estación de trabajo
465 Enfocar la anterior ventana en la estación de trabajo
467 Enfocar en la ventana principal de la estación de trabajo
469 Ejecutar con la siguiente ventana en la estación de trabajo
471 Ejecutar con la anterior ventana en la estación de trabajo
473 Cambiar la barra de estado en todas las estaciones de trabajo
475 Borrar la ventana corriente en la estación de trabajo
477 Destruir la ventana corriente en la estación de trabajo
479 Cambiar entre estaciones de trabajo
485 Mover la ventana corriente a una estación de trabajo
491 Cambiar a la proxima estación de trabajo con una ventana en ella
493 Cambiar a la anterior estación de trabajo con una ventana en ella
495 Mover el puntero a la proxima region
497 Mover el puntero a la anterior region
498 .It Cm screenshot_all
499 Tomar una captura de pantalla de todo la pantalla (si esta habilitado)
503 .It Cm screenshot_wind
504 Tomar una captura de pantalla de la ventana seleccionada (si esta habilitado)
509 Mostrar la version en la barra de estado
511 Mostar la ventana en foco entre las flotantes y acomodadas
518 Reiniciar la pantalla
523 Minimiza (unmap) la ventana en foco.
525 Maximiza (map) la ventana seleccionada por dmenu.
527 Cuando se establece las ventanas en cascada se esconden las
530 Falsifica el boton del medio del mouse.
532 Reducir el ancho de una ventana flotante.
534 Agranda el ancho de una ventana flotante.
536 Reducir la altura de una ventana flotante.
538 Agranda la altura de una ventana flotante.
540 Mueve la ventana flotante un paso a la izquierda.
542 Mueve la ventana flotante un paso a la derecha.
544 Mueve la ventana flotante un paso arriba.
546 Mueve la ventana flotante un paso abajo.
549 Personalizar mapeos (bindings) en el archivo de configuración:
551 .Dl bind[<accion>] = <teclas>
554 una de las acciones listadas (o ninguna) y
556 una o mas teclas modificadas (puede ser ninguna tambien)
557 (MOD, Mod1, Shift, etc.) y una o mas teclas normales
558 (b, barra espaciadora, etc.), separadas por un "+".
560 .Bd -literal -offset indent
561 bind[reset] = Mod4+q # combinación Tecla de Windows + q reinicia
562 bind[] = Mod1+q # des-hace la combinación Alt + q
565 Multiples combinaciones de teclas pueden hacer lo mismo.
568 te da "quirks" (o forzados) ventanas que tienen que ser tratas de manera especial,
569 como por ejemplo, popups, aplicaciones de pantalla completa, etc.
571 Los "quirks" (o forzados) por defecto son:
573 .Bl -tag -width "OpenOffice.org N.M:VCLSalFrame<TAB>XXX" -offset indent -compact
574 .It Firefox\-bin:firefox\-bin
582 .It OpenOffice.org 2.4:VCLSalFrame
584 .It OpenOffice.org 3.1:VCLSalFrame
592 .It xine:xine Video Fullscreen Window
602 Los "quirks" (o forzados) se describen a continuación:
604 .Bl -tag -width "XTERM_FONTADJ<TAB>XXX" -offset indent -compact
606 Esta ventana no tiene que ser acomodada, pero le permitimos flotar libremente.
608 Ajusta el tamaño de las ventanas transitorias que son demasiado pequeñas utilizando dialog_ratio
610 .Sx ARCHIVOS DE CONFIGURACIÓN ) .
612 Permite que la ventana se ponga donde quiera.
614 Ajusta las fuentes de xterm cuando se redimenciona.
616 Quita el borde para permitir las ventanas en pantalla completa.
618 El enfoque de salida fuerza la solicitud de aplicacisn que
619 anteriormente se centraba en la aplicacion anterior del stack.
622 Las configuraciones de "quirks" (o forzados) en el archivo de configuración se ven a continuación:
624 .Dl quirk[<clases>:<nombre>] = <quirk> [ + <quirk> ... ]
629 especifica la ventana en la cual el "quirk(s)" (o forzados) se aplica, y
631 es uno de los "quirks" (o forzados) de la lista.
633 .Bd -literal -offset indent
634 quirk[MPlayer:xv] = FLOAT + FULLSCREEN # dejamos que mplayer funcione libremente
635 quirk[pcb:pcb] = NONE # borramos el quirk existente
642 corriendo el programa xprop(1) y luego clickear en la ventana que quieras.
643 En el proximo ejemplo, podremos verlo en acción con una ventana de Firefox:
644 .Bd -literal -offset indent
645 $ xprop | grep WM_CLASS
646 WM_CLASS(STRING) = "Navigator", "Firefox"
650 parcialmente implementa los Consejos de ventana extendido Manager (EWMH) especificacion.
651 Esto permite el control de las ventanas, asi como
653 si a partir de scripts y programas externos. Esto se logra mediante
655 responder a ciertos eventos ClientMessage. Desde la terminal de estos eventos
656 se puede enviar facilmente el uso de herramientas tales como
661 formato real de estos eventos ClientMessage, consulte la especificacion EWMH.
663 La Identificacion de la ventana actualmente enfocada se almacena en el _NET_ACTIVE_WINDOW
664 propiedad de la ventana raiz. Esto puede ser usado por ejemplo para recuperar el
665 titulo de la ventana activa con
669 .Bd -literal -offset indent
670 $ WINDOWID=`xprop \-root _NET_ACTIVE_WINDOW | grep \-o "0x.*"`
671 $ xprop \-id $WINDOWID WM_NAME | grep \-o "\\".*\\""
674 Una ventana se puede enfocar mediante el envio de un mensaje del cliente _NET_ACTIVE_WINDOW
675 a la ventana principal. Por ejemplo, usando
677 para enviar el mensaje
678 (suponiendo que 0x4a0000b es el ID de la ventana para ser especifico):
679 .Bd -literal -offset indent
680 $ wmctrl \-i \-a 0x4a0000b
683 Ventanas se pueden cerrar mediante el envmo de un mensaje del cliente _NET_CLOSE_WINDOW
684 a la ventana principal. Por ejemplo, usando
686 para enviar el mensaje
687 (suponiendo que 0x4a0000b es el ID de la ventana se cierre):
688 .Bd -literal -offset indent
689 $ wmctrl \-i \-c 0x4a0000b
692 Las ventanas se pueden flotar y flotar sin-mediante la adicion o eliminacion de la
693 _NET_WM_STATE_ABOVE atom desde _NET_WM_STATE la propiedad de la ventana
694 Esto se puede lograr mediante el envio de un mensaje a los clientes _NET_WM_STATE
695 raiz de la ventana. Por ejemplo, el siguiente cambia el estado de la flota.
697 para enviar el mensaje (suponiendo que 0x4a0000b es el ID de la ventana flotante
699 .Bd -literal -offset indent
700 $ wmctrl \-i \-r 0x4a0000b \-b toggle,_NET_WM_STATE_ABOVE
703 Ventanas flotantes tambien se puede cambiar el tamano y movido por el envio de un
704 _NET_MOVERESIZE_WINDOW Mensaje del cliente de la ventana raiz. Por ejemplo,
707 para enviar el mensaje (suponiendo que 0x4a0000b es el ID de
708 la ventana a redimensionar / mover):
709 .Bd -literal -offset indent
710 $ wmctrl \-i \-r 0x4a0000b \-e 0,100,50,640,480
713 Esto mueve la ventana de (100,50) y cambia el tamaqo a 640x480.
715 Todos los eventos _NET_MOVERESIZE_WINDOW recibido por las ventanas apiladas se ignoran.
720 una senal de HUP reinicia scrotwm.
723 .Bl -tag -width "/etc/scrotwm.confXXX" -compact
724 .It Pa ~/.scrotwm.conf
726 archivo de configuración especifico del usuario.
727 .It Pa /etc/scrotwm.conf
729 configuraciones globales.
733 fue inspirado en xmonad y dwm.
739 .An Marco Peereboom Aq marco@peereboom.us ,
740 .An Ryan Thomas McBride Aq mcbride@countersiege.com
742 .An Darrin Chandler Aq dwchandler@stilyagin.com .
744 Actualmente el menu, se llama con