# Manual de K Window Manager

El Equipo KDE
Versión 0.19.15, 29 Noviembre 1998

Este documento fué actualizado por última vez para la versión 0.19.15 de KWM. Por favor, hazle los comentarios y ampliaciones al autor.

El Manual de KWM

KDE
Spanish
kwm
gestor
ventana

## Introducción

Este documento contiene información general sobre kwm, una referencia de características, e información técnica útil para los desarrolladores del módulo de control de kwm y el módulo del sistema de sonido.

Para ampliar información sobre como personalizar kwm a bajo nivel (solo interesante para los desarrolladores de kwinconfig), por favor échale un vistazo al kwmrc generado y al código fuente.

Para todos los programadores: Comprobad `kwm.h` en libkdecore para obtener información sobre como usar kwm para tus propósitos. Para módulos, la clase `KWMModuleApplication` es un buen ejemplo sobre como escribirlos.

### Características

kwm es el gestor de ventanas elegido para el KDE. Entre otras cosas, ofrece:

- Completa integración en el KDE.

- Completo control por teclado.

- Moderno "look and feel" con ventana de título única e iconos que no necesitan estar definidos en crípticos ficheros de recursos.

- Una conveniente mini ventana de linea de comandos con historial para un rápido acceso a la linea de comandos del shell.

- Posibilidad de ser reconfigurado en tiempo de ejecución sin reiniciar. Esto incluye temas de diseño así como atalos de teclado.

- Gestor de ventanas de segunda generación. KWM usa un moderno kit de herramientas GUI para sus elementos (botones, menús, cajas, etc.) a instancias de engordar el código con una propietaria o clara implementación Xlib.

- Excelente trato focal, incluso si trabajas en diferentes escritorios virtuales (no mas cambio-de-escritorio-y-pérdida-de-foco, que es el estandar de otros gestores de ventanas).

- Utilidad `kstart` para lanzar aplicaciones legadas con propiedades especiales de las ventanas de KDE tales como iconizado, maximizado, un determinado escritorio virtual, una decoración especial o pegado. Simplemente ejecuta `kstart -help` para más información.

- Incluye gestor de sesiones y un proxy de gestor de sesiones para aplicaciones legadas. Este proxy es capaz de restaurar tus aplicaciones al estado previo, incluyendo propiedades de ventana (maximizado, pegado, iconizado, etc.) y en el escritorio virtual correcto.

- Moderno concepto de módulos que usa el Servidor X donde sea posible. Los módulos de KWM también son muy independientes: pueden ser iniciados antes o después de kwm. KWM puede ser reiniciado mientras los módulos están ejecutándose todavía, y estos reconectarán automáticamente.

- Algunos módulos potentes, tales como el panel de escritorio KDE (que también incluye una barra de tareas) y un paginador de escritorios extramadamente vistoso.

- Ofrece variadas extensiones al Servidor X en `kwm.h`: Ahora las aplicaciones pueden incluso maximizarse ellas mismas (o pegarse, o adornarse/desadornarse o lo que quieras) y definir mini iconos. Esto funciona también para ventanas mapeadas (visibles).

## Usando kwm

### Opciones de la linea de comandos

kwm proporciona las siguientes opciones en la linea de comandos:

-version

  Muestra el número de versión incluyendo el nivel de parche; no inicia kwm

-nosession

  Inicia kwm sin restaurar la sesión previa

### Atajos de teclado

Los atajos globales son configurables en el centro de control. Esta es la lista de los atajos definidos por defecto, aunque otros son posibles.

Alt-Esc o Control-Esc

  Gestiona la "Sesión Actual", con botón de Salir

Alt-Tab y Alt-Shift-Tab

  Intercambia ventanas del escritorio actual

Ctrl-Tab y Ctrl-Shift-Tab

  Intercambia entre escritorios virtuales (puede ser desactivado en kwmrc)

Alt-F2

  Abrir mini ventana de linea de comandos

Alt-F3

  Menú de operaciones con ventana

Alt-F4

  Cerrar ventana

Ctrl-F&lsqb;1..8&rsqb;

  Cambia al escritorio virtual

Ctrl-Alt-Esc

  Destruir ventana (el cursor cambia de forma)

### Control de Ratón

El Control de Ratón se configura, como los atajos de teclado, en el centro de control. Esta es la lista de la configuración por defecto.

Haga click en el borde o en la barra de título

- botón izquierdo activa y levanta la ventana

- botón central activa y baja la ventana

- botón derecho muestra el menú de operaciones con ventanas si la ventana está activada, en otro caso la activa sin levantarla

Doble pulsación en la barra de título la maximiza

Arrastre de la barra de título

- botón izquierdo mueve la ventana y la levanta

- botón central mueve la ventana sin levantarla

Arrastre de esquinas o bordes

- botón izquierdo reescala la ventana y la levanta

- botón central reescala la ventana sin levantarla

La ventana entera

- Alt-botón izquierdo mueve la ventana

- Alt-botón central baja la ventana si esta está levantada

- Alt-botón derecho reescala la ventana

Botones de la Barra de Título (configurable)

- Menú muestra una lista de operaciones con ventanas

- Pegar cambia entre modo Pegado/Despegado (la ventana permanece en la pantalla mientras la mueves de un escritorio a otro)

- Iconizar iconiza la ventana

- Maximizar

  - botón izquierdo maximiza

  - botón central maximiza verticálmente

  - botón derecho maximiza horizontálmente

- Cerrar cierra la ventana (la aplicación puede preguntar si tiene algo que salvar)

### Mini Ventana de Linea de Comandos

Presione `Alt-F2` para mostrar una pequeña ventana de linea de comandos. Entre un comando shell de Unix (la variable de entorno SHELL es usada para determinar que shell ejecutará el comando), o uno de los siguientes:

- Entre una URL a abrir en una ventana kfm con la URL especificada. Puedes omitir el http:// o ftp:// si el nombre del servidor comienza con www. o ftp., respectívamente.

- Entre `man:comando` para abrir una ventana kfm mostrando la página de manual Unix del comando.

Puedes usar la tecla subir-bajar para rellamar comandos entrados anteriórmente. Tambien puedes usar la tecla tab para completar los comandos parciálmente entrados, como en muchas shells.

### Comandos

Puedes enviar comandos a kwm con cualquiera de ambos:

`KWM::sendKWMCommand(QString)` (en aplicaciones KDE) o `kwmcom comando kwmcom` (desde la linea de comandos)

Esto es de especial interés para los desarrolladores de kglobalshortcut.

El actual kwm comprende los comandos siguientes:

- refreshScreen refresca la pantalla

- darkenScreen oscurece la pantalla. Ten cuidado: esto hace que es escritorio no responda a entradas de ratón/teclado.

- logout muestra el diálogo de salida.

- commandLine abre la mini ventana de linea de comandos

- taskManager muestra el administrador de la "Sesion Actual".

- configure reinicia la configuración de kwmrc.

- winMove winResize winRestore winIconify winClose winShade winSticky winOperations Estos comandos afectan a la ventana activa actual (`winOperations` muestra la ventana de menú de operaciones.)

- deskUnclutter deskCascade Estos comandos reorganizan las ventanas en el escritorio.

- desktop&lsqb;1-8&rsqb; cambia al escritorio especificado

- desktop+1 desktop+2 desktop-1 desktop-2 desktop&percnt;2 Estos comandos cambian entre escritorios. `desktop&percnt;2` cambia entre un escritorio impar y el siguiente número par. Lo que significa entre 1 y 2 o entre 3 y 4. Esto es de utilidad para emular "Arriba" o "Abajo" en una matriz virtual n*2, que es usada por el paginador del KDE. Similármente, `desktop+2` significa "Derecha"; `desktop-1` significa "Izquierda".

- go:other El comando go finaliza kwm y todos sus módulos y lanzamientos en lugar de other. other puede por ejemplo ser el nombre de otro gestor de ventanas tal como fvwm. Nota: no puede pasar una ruta al comando go, solo el nombre del ejecutable, desde que `kwmcom` está limitado a 20 caracteres.

## Configuración

kwm puede ser configurado usando el Centro de Control (Iniciador de Aplicaciones > Centro de Control KDE). Expande el árbol de ventanas para trabajar con varias opciones de configuración. Los atajos de teclado pueden configurarse en la sección de Teclas Globales.

Para configurar los escritorios virtuales, expande el árbol de Aplicaciones y elige Panel.

Para aquellos que prefieran editar un fichero de configuración, esta sección explica las opciones del fichero `kwmrc`, ubicado en ˜/.kde/share/config.

### kwmrc

El fichero de configuración kwmrc está dividido en las secciones siguientes:

- Botones

- General

- Sesión

- Escritorio

- Decoración

- Foco

- Pegado

#### &lsqb;Botones&rsqb;

Esta sección controla el emplazamiento de los botones de la ventana de control en la barra de título. Contiene lineas de la forma ButtonX=nombre-botón donde X es una letra de A hasta F, y nombre-botón es uno de los siguientes: `Menu, Sticky, Iconify, Maximize, Close, Off`. Los botones A, B, y C aparecen al lado izquierdo de la ventana de título, y D, E, y F aparecen en el lado derecho.

#### &lsqb;General&rsqb;

Esta sección define un variado número de elementos de configuración:

- AltTabStyle=`KDE&verbar;CDE` (por defecto es KDE) Característica AltTab al estilo CDE para usarse con las políticas focales clásicas. El estilo CDE está por defecto en las políticas focales clásicas desde que el estilo KDE no tiene mucho sentido bajo estas circunstancias. Para las demás políticas focales debería elegir el estilo.

- AutoRaise=valor (en milisegundos) Si `FocusPolicy` es `FocusFollowMouse`, este elemento determina el retardo entre el tiempo en que una ventana obtiene el foco cuando el ratón penetra en ella y el tiempo en que la ventana es levantada.

- BorderSnapZone=valor (en píxeles) Cuando el usuario está posicionando una ventana, y uno de los bordes se aproxima al borde del escritorio, la ventana se pegará al borde. valor determina como de cerca debe estar la ventana al borde del escritorio para pegarse a el.

- Button3Grab=`on&verbar;off` Cuando está en `off`, las operaciones de ventana asociadas al botón derecho del ratón estarán desabilitadas, así la ventana de aplicación podrá recibir eventos del botón derecho.

- ControlTab=`on&verbar;off` Cuando está en `on`, permite al usuario presionar `Ctrl+Tab` para cambiar entre escritorios virtuales.

- ElectricBorder=valor (en milisegundos) Cuando tienes más de un escritorio, la característica ElectricBorder te permite moverte entre ellos moviendo el ratón al filo de la pantalla. valor especifica la cantidad de tiempo que debes dejar el puntero del ratón posicionado en el borde antes del cambio de escritorio. Un valor de -1 desactiva esta característica.

- ElectricBorderPointerWarp=`NoWarp&verbar;MiddleWarp&verbar;FullWarp` Si la opción `ElectricBorder` es `on`, cambia esto a `on` para tener movido el ratón a la posición correspondiente cuando cambie el escritorio.

- ElectricBorderNumberOfPushes=valor (por defecto son 5 pulsaciones) El número de pulsaciones sin el marco de tiempo dado por la propiedad `ElectricBorder` para cambia a otro escritorio virtual sin arrastrar una ventana.

- FocusPolicy=`ClickToFocus&verbar;FocusFollowMouse&verbar;ClassicFocusFollowsMouse&verbar;ClassicSloppyFocus` `ClickToFocus` requiere el click del ratón en una ventana para darle foco. `FocusFollowMouse` siempre da foco a la ventana que haya bajo el ratón. `ClassicFocusFollowsMouse` ninguna ventana obtiene el foco sin el ratón. FocusFollowMouse de Kwm es usado para poner el foco a la nueva ventana o Alt-tab para permitir mejor control por teclado.

- MaximizeOnlyVertically=`off&verbar;on` Cuando está en `on`, esta opción restringe el maximizado solo en dirección vertical.

- ResizeAnimation=`1..10 (maxima velocidad)` Cuando está en `on`, minimiza y maximiza las ventanas envolviéndolas en una animación gráfica. (por defecto es 1)

- RstartProtocol=`... (por defecto es "`rstart -v`")`

- ShapeMode=`off&verbar;on` Cuando está en `on`, kwm usa los pixmaps definidos por el usuario para los bordes de las ventanas a instancias de los usados por defecto (ver abajo).

- ShapePixmapTop=pixmap ShapePixmapBottom=pixmap ShapePixmapLeft=pixmap ShapePixmapRight=pixmap ShapePixmapTopLeft=pixmap ShapePixmapTopRight=pixmap ShapePixmapBottomLeft=pixmap ShapePixmapBottomRight=pixmap Estas opciones especifican qué imágenes son mostradas es sus respectivos lados/esquinas de las ventanas cuando `ShapeMode` está en `on`. pixmap sería el nombre de un fichero pixmap (.xpm) que debe estar ubicado en share/apps/kwm/pics.

  Los fuentes del kwm incluyen una subcarpeta llamada "images", que contiene un ejemplo para las extensiones Shape.

- TitlebarLook=`shaded&verbar;plain&verbar;pixmap` Esta opción determina la apariencia de las barras de título de la ventana. Elige un `pixmap` para hacer que kwm muestre una imagen definida por el usuario en la barra de título, que es especificada por los siguientes elementos.

- TitlebarPixmapActive=pixmap TitlebarPixmapInactive=pixmap Estas opciones especifican qué imágenes son mostradas en las barras de título de las ventanas activas e inactivas respectivamente, cuando TitleBarLook es `pixmap`.

- TitleAnimation=valor (en milisegundos) Activando TitleAnimation le dice a kwm que a causa de largos títulos de ventana (demasiado largo para caber en la zona coloreada de la barra de título) se produzca un desplazamiento hacia detrás y hacia delante para ser visible. valor especifica la velocidad de la animación. Dejar a 0 para desactivar la animación.

- TitlebarDoubleClickCommand=`winMaximize&verbar;winShade&verbar;winMove&verbar; winResize&verbar;winRestore&verbar;winIconify&verbar;winClose&verbar;winSticky&verbar;winOperations` Esta opción te permite especificar que comportamiento ocurrirá en la ventana cuando el usuario pulse dos veces con su ratón en la barra de título.

- TraverseAll=`on&verbar;off` Cuando está en `on`, la operación `Alt-tab` rotará a traves de todas las ventanas en todos los escritorios. Cuando esté en `off`, `Alt-tab` rotará a traves de todas las ventanas solo del escritorio actual.

- WindowMoveType=`Opaque&verbar;Transparent` Esta opción controla la regeneración visual que ocurre mientras el usuario arrastra una ventana de un lugar a otro del escritorio. `Transparent` muestra solo el borde de una ventana durante el arrastre, mientras que `Opaque` muestra la ventana completa.

- WindowsPlacement=`cascade&verbar;interactive&verbar;manual&verbar;random&verbar;smart` Esta opción determina como kwm emplaza las ventanas en el escritorio cuando son abiertas por primera vez. `manual` permite que el usuario emplace las ventanas. `interactive` toma un valor de porcentaje adicional, como: `WindowsPlacement=interactive,25` Con emplazamiento `interactive`, kwm usa el `ingenioso` algoritmo de emplazamiento para colocar la ventana a menos que la colocación se sobrepusiera a las ventanas existentes más que el porcentaje especificado, en cuyo caso se usará emplazamiento `manual` para permitir que el usuario coloque la ventana. El percentaje puede ser mayor que 100.

  Las otras opciones dejan a kwm colocar la ventana.

- WindowSnapZone=valor (en píxeles) Cuando el usuario está posicionando una ventana, y uno de los bordes de ésta se aproxima al borde de otra ventana, el borde de la ventana que está siendo posicionada se atraerá al borde de la otra ventana. valor determina como de cerca debe estar la ventana para atraerse al borde de la otra ventana.

#### &lsqb;Sesión&rsqb;

- proxyignore=`xemacs,xterm,...,` Lista delimitada por comas de aplicaciones (no-KDE) cuyo estado (propiedades de ventana) no serían guardados cuando el usuario saliese. Lista el nombre de las aplicaciones con cualquier argumento de la linea de comando.

#### &lsqb;Escritorio&rsqb;

Esta sección define el número de escritorios virtuales, sus nombres y posiciones. Contiene lineas como las siguientes:

- NumberOfDesktops=valor Especifica el número de escritorios virtuales. Hasta ahora, kwm soporta 8 escritorios.

- Desktop&num;&lsqb;C&rsqb;=nombre Especifica el nombre del Escritorio &num;, por ejemplo, `Desktop1[C]=Uno` Los escritorios están numerados de 1 a 8.

- Desktop&num;Region=geometría Especifica la geometría del Escritorio &num;; por ejemplo, `Desktop1Region=101+0+923+722`

Note que sebreescribiendo las regiones en el archivo de configuración tendrá muchos efectos pequeños, desde que kpanel le dirá a kwm valores razonables para el escritorio actual tan pronto como se inicie. Cuando termine la sesión, kwm almacenará esas nuevas configuraciones.

#### &lsqb;Decoración&rsqb;

- noDecorationTitles=,

- tinyDecorationTitles=,

- noDecorationClasses=,

- tinyDecorationClasses=,

#### &lsqb;Foco&rsqb;

- noFocusTitles=,

- noFocusClasses=,

#### &lsqb;Pegado&rsqb;

- stickyTitles=,

- stickyClasses=,

Cada propiedad le permite especificar una lista separada por comas de expresiones regulares. Se decorará apropiadamente una ventana cuyo título o clase muestra una expresión especificada.

Nota: Estas opciones solo afectan a ventanas NUEVAS. No olvide llamar `kwmcom configurar` o reiniciar `kwm` después de haber cambiado el archivo kwmrc.

A instancias de hacker el archivo de configuración, probablemente desee usar la utilidad `kstart`.

## Eventos Sonoros

KWM contiene parejas de eventos sonoros, los cuales pueden ser usados por un módulo de sistema de sonido. Hasta ahora se han implementado los eventos sonoros siguientes:

- Iconizar Ventana

- Desiconizar Ventana

- Maximizar Ventana

- Desmaximizar Ventana

- Pegar Ventana

- Despegar Ventana

- Nueva Ventana

- Borrar Ventana

- Window New Trans

- Window Delete Trans

- Sombrear Ventana

- Iluminar Ventnana

- Salir

- Mensaje Salida

## Preguntas Mas Comunes

### ¿Porqué deberia usar kwm?

He gastado muchos dias aprendiendo a configurar 10 gestores de ventanas diferentes. Ahora que tengo 678 lineas de archivos de fuentes haciendo exactamente lo que quiero, llegas y quieres echar mi gestor de ventanas!

Respuesta: No deberías, es solamente un ofrecimiento libre. KDE soporta todos los gestores de ventanas actuales, pero para obtener un rendimiento óptimo se recomienda que use kwm. Mire la lista de Características.

### ¿Porqué no puedo definir nuevos atajos de teclado para lanzar aplicaciones?

Respuesta: Porque esta no es tarea de un gestor de ventanas. Sin embargo, podría escribir una pequeña aplicación que haga esto. Usando la clase KGlobalAccel de libkdecore, cada aplicación KDE tiene facil acceso al amplio sistema de atajos.

### ¿Porqué kwm se parece mucho a Windows 95?

Respuesta: Ooops, eso parece? Dejame ver.... (Matthias intenta encontrar a alguien que tenga Windows 95 instalado, porque él no lo tiene en ninguna de sus computadoras. Ummm nadie tiene Windows 95 por aquí. Bien, déjame instalar fvwm95-2 de una vieja distribución.....) No, no puedo verificar que eso sea cierto. KWM parece más bonito y ofrece más nucleo funcional de gestión de ventanas.

### ¿Es posible añadir extensiones KDE a otros gestores de ventanas?

Respuesta: Sí, es posible. Simplemente tienes que ir a traves de `kwm.h` y de `kwm.C` de la `libkdecore` y ampliar su gestor de ventanas favorito para responder correctamente a esas peticiones. Hemos recibido notocias de que algunos otros gestores de ventanas soportan ya algunas de estas funciones.

### ¿Soporta kwm ventanas sombreadas al estilo OpenStep?

Respuesta: Sí.

## Epílogo

### Developer

`Matthias Ettrich`

### Autores

`Matthias Ettrich`

`Stephen Schaub` - Editor

`Kalle Dalheimer` - Editor

`Robert Williams` - Editor

`Alonso Lara` - Traductor