# Personalización del Gestor de espacios de trabajo

Este capítulo describe cómo personalizar el Gestor de espacios de trabajo del escritorio.

SAG.WMCnf.mkr.2
SAG.WMCnf.mkr.5
SAG.WMCnf.mkr.8
SAG.WMCnf.mkr.12
SAG.WMCnf.mkr.15
SAG.WMCnf.mkr.18

El Gestor de espacios de trabajo es el gestor de ventanas proporcionado por el escritorio. Al igual que otros gestores de ventanas, controla:

- El aspecto de los componentes del marco de la ventana

- El comportamiento de las ventanas, incluido el orden de colocación y el comportamiento del foco

- Las asignaciones a teclas y las asignaciones a botones

- El aspecto de las ventanas minimizadas

- Los menús Espacio de trabajo y Ventana

Además, el Gestor de espacios de trabajo controla estos componentes del escritorio:

- Espacios de trabajo. El Gestor de espacios de trabajo controla el número de espacios de trabajo y realiza un seguimiento de las ventanas que se abren en cada espacio de trabajo.

- Fondos de espacios de trabajo. El usuario cambia los fondos utilizando el Gestor de estilos. Sin embargo, la gestión de fondos es una función del Gestor de espacios de trabajo.

- El Panel Frontal. A pesar de que el Panel Frontal utiliza sus propios archivos de configuración, el Gestor de espacios de trabajo lo crea y lo gestiona.

Muchos de estos componentes pueden cambiarse con el Gestor de estilos. El Gestor de estilos es capaz de realizar con rapidez cambios de uso frecuente, con poco esfuerzo por parte del usuario. Otros recursos deben establecerse manualmente.

El Gestor de espacios de trabajo es `dtwm`. Se basa en el Gestor de ventanas Motif.

## Consultas adicionales

- Para obtener información de consulta sobre el Gestor de espacios de trabajo, consulte las páginas de manual `dtwm(1)` y `dtwmrc(4)`.

- Para obtener información sobre cómo establecer los recursos del Gestor de espacios de trabajo, consulte la sección SAG.FACol.mkr.2.

- Para obtener información sobre los archivos de configuración del Panel Frontal, consulte el SAG.FrPC.mkr.1.

Para obtener información adicional sobre cómo establecer recursos, consulte la sección SAG.FACol.mkr.2.

## Archivos de configuración del Gestor de espacios de trabajo

El Gestor de espacios de trabajo obtiene la información sobre los menús de las ventanas, los menús del espacio de trabajo, las asignaciones a botones y las asignaciones a teclas de un archivo de configuración.

Utiliza uno de los siguientes archivos:

- Archivo personal: DirectorioInicio`/.dt/dtwmrc`

- Archivo personalizado del sistema: `/etc/dt/config/`idioma`/sys.dtwmrc`

- Archivo incorporado: `/usr/dt/config/idioma/sys.dtwmrc`

El Gestor de espacios de trabajo busca un archivo de configuración en el orden mostrado anteriormente y utiliza el primero que encuentra.

Para los usuarios que utilizan más de un idioma de sesión, se puede crear un archivo de configuración personal dependiente del idioma `DirectorioInicio/.dt/idioma/dtwrmc` que tiene prioridad sobre DirectorioInicio`/.dt/dtwmrc`.

### Crear o modificar un archivo de configuración personal

El archivo de configuración personal del Gestor de espacios de trabajo es DirectorioInicio`/.dt/dtwmrc`. Si existe dicho archivo, es el archivo que se utiliza.

1. Pulse dos veces
   Editar Dtwmrc en el grupo de aplicaciones Herramientas_Escritorio.

   Si ya tiene un archivo personal `dtwmrc`, éste se cargará en el editor. Si no lo tiene, `sys.dtwmrc` se copia en DirectorioInicio`/.dt/dtwmrc`, que luego se carga en el editor.

2. Edite el archivo.

3. Salga del editor.

   El archivo se guardar como `dtwmrc` personal, independientemente de su fuente original.

### Crear un archivo de configuración accesible en el sistema

El archivo de configuración accesible en el sistema del Gestor de espacios de trabajo es `/etc/dt/config/`idioma`/sys.dtwmrc`.

- Copie `/usr/dt/config/`idioma`/sys.dtwmrc`
  en `/etc/dt/config/`idioma idioma`/sys.dtwmrc`.

Este archivo no se utiliza si existe DirectorioInicio`/.dt/dtwmrc`.

### Incluir (Tomar como fuente) otros archivos

- Utilice la sintaxis:

      include
      {
         ruta
         ruta
         …
      }

Por ejemplo, las siguientes líneas toman como fuente el archivo `/users/ellen/mymenu`:

    include
    {
       /users/ellen/mymenu
    }

Las sentencias incluidas son útiles para proporcionar más funciones sin copiar el archivo de configuración entero. Por ejemplo, puede que le interese crear una nueva asignación a tecla sin tener que administrar el archivo de configuración entero. El usuario puede crear un archivo DirectorioInicio`/.dt/dtwmrc` con este contenido:

    include
    {
       /etc/dt/config/C/sys.dtwmrc
    }

    Keys DtKeyBindings
    {
       Alt<Key>F5 root f.menu Applications
    }
    Menu Applications
    {
       GraphicsApp f.exec /usr/bin/GraphicsApp/GApp
       …
    }

### Reiniciar el Gestor de espacios de trabajo

El Gestor de espacios de trabajo debe reiniciarse para que entren en vigor los cambios efectuados en el archivo de configuración.

- Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo (pulse el botón 3 del ratón cuando el puntero esté en el fondo).

## Personalización de los espacios de trabajo

La mayor parte de la personalización de los espacios de trabajo, como por ejemplo cambiar los nombres de los espacios de trabajo y el número de espacios de trabajo, puede realizarla el usuario utilizando la interfaz del escritorio. Sin embargo, el Gestor de espacios de trabajo proporciona recursos para establecer valores predeterminados accesibles en el sistema.

### Cambiar el número de espacios de trabajo para que sean accesibles en el sistema

La configuración predeterminada del escritorio proporciona cuatro espacios de trabajo. El usuario puede añadir y suprimir espacios de trabajo utilizando el menú emergente asociado con el conmutador del Espacio de trabajo.

El Gestor de espacios de trabajo proporciona un recurso para cambiar el número predeterminado de espacios de trabajo.

- Utilice el recurso `workspaceCount` para establecer el número de espacios de trabajo:

      Dtwm* workspaceCount: número

Para obtener información sobre cómo establecer los recursos del Gestor de espacios de trabajo, consulte la sección SAG.FACol.mkr.2.

Por ejemplo, el siguiente recurso establece el número de espacios de trabajo en seis:

    Dtwm*workspaceCount: 6

### Proporcionar nombres de espacios de trabajo accesibles en el sistema

Internamente, los espacios de trabajo se numeran mediante el convenio de numeración `ws` n, donde n es 0, 1, 2, etc. Por ejemplo, los cuatro espacios de trabajo predeterminados se numeran internamente de `ws0` a `ws3`.

1. Utilice el recurso `title`
   para cambiar el nombre de un espacio de trabajo especificado:

   `Dtwm*ws` n: nombre

   `Dtwm*ws` n.title: name

Para obtener información sobre cómo establecer los recursos del Gestor de espacios de trabajo, consulte la sección SAG.FACol.mkr.2.

Por ejemplo, los siguientes recursos establecen los cuatro espacios de trabajo predeterminados en los nombres especificados:

    Dtwm*ws0*title: Anna
    Dtwm*ws1*title: Don
    Dtwm*ws2*title: Julia
    Dtwm*ws3*title: Patti

### Crear fondos adicionales

1. Cree las imágenes de fondo. Pueden ser archivos de mapas de bits o de mapas de pixels.

2. Coloque los fondos en uno de los siguientes directorios. (Puede que tenga que crear el directorio).

   - Fondos accesibles en el sistema: `/etc/dt/backdrops`

   - Fondos personales: DirectorioInicio`/.dt/backdrops`

3. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo.

Los fondos accesibles en el sistema y personales se añaden a los fondos incorporados en `/usr/dt/backdrops`.

Se puede sustituir un fondo incorporado existente creando un fondo personal o accesible en el sistema que tenga el mismo nombre.

### Sustituir el fondo por una imagen de gráficos

Los fondos se colocan sobre la ventana raíz de la pantalla
. El cuadro de diálogo Fondo del Gestor de estilos proporciona un
valor SinFondo en el que el fondo es transparente.

Existe sólo una ventana raíz detrás de todos los fondos de los espacios de trabajo. De este modo, una imagen de gráficos colocada en la ventana raíz continúa existiendo en todos los espacios de trabajo. Se puede especificar qué espacios de trabajo deben cubrir la ventana raíz con un fondo. Sin embargo, la imagen que está visible cuando SinFondo está activado será la misma para cada espacio de trabajo.

1. Cree la imagen de gráficos. Tiene que estar en un formato para el que exista una herramienta para mostrar la imagen en la ventana raíz. Por ejemplo, si tiene la intención de utilizar `xsetroot`, deberá crear un archivo de mapas de bits.

2. Si todavía no existe, cree un archivo ejecutable DirectorioInicio`/.dt/sessions/sessionetc`. El archivo `sessionetc` se ejecuta cada vez que el usuario inicia la sesión.

3. Ponga el mandato para mostrar la imagen en el archivo `sessionetc`.

   Por ejemplo, el siguiente mandato establece un mosaico en la ventana raíz con el mapa de bits especificado:

   `xsetroot -bitmap `/users/ellen/.dt/icons/root.bm``

## Menús del Gestor de espacios de trabajo

El Gestor de espacios de trabajo tiene tres menús predeterminados:

Menú Espacio de trabajo | También se denomina menú raíz. Se muestra si el usuario pulsa el botón 3 del ratón cuando el puntero está sobre el fondo. Este menú está asociado con el botón del ratón por medio de una asignación a botón.
Menú Ventana | Menú mostrado si el usuario pulsa los botones 1 y 3 del ratón cuando el puntero está sobre el botón del menú Ventana (esquina superior izquierda del marco de la ventana). Este menú está asociado con botón por medio del recurso `windowMenu`.
Menú Panel Frontal | Menú mostrado si el usuario pulsa los botones 1 y 3 del ratón cuando el puntero está sobre el botón del menú Ventana del Panel Frontal.

### Sintaxis de los menús del Gestor de espacios de trabajo

Los menús del Gestor de espacios de trabajo tienen la sintaxis:

    MenuNombreMenú
    {
       selección1 [mnemotécnico] [tecla de método abreviado] función [argumento]
       selección2 [mnemotécnico] [tecla de método abreviado] función [argumento]
        …
    }

donde:

selección | Texto o mapa de bits que aparece en el menú. Si el texto incluye espacios, encierre el texto entre comillas. Para los mapas de bits, utilice la sintaxis @/ruta.
mnemotécnico | Carácter individual que actúa como método abreviado del teclado cuando se muestra el menú. Se especifica con el formato `_`carácter.
tecla de método abreviado | Método abreviado del teclado que está activo tanto si se muestra como si no se muestra el menú. Las teclas de método abreviado tienen la sintaxis modificador`<Key>` Nombretecla donde modificador es `Ctrl`, `Shift`, `Alt` (Carácter ampliado) o `Lock`. Para obtener una lista de todos los nombres de tecla posibles, consulte el archivo `keysymdef.h` en el directorio de “inclusión de X11”.
función | Función que se debe realizar cuando se efectúe esta selección. Consulte la página de manual `dtwmrc(4)` para obtener una lista de funciones.
argumento | Argumentos de la función. Para obtener más detalles, consulte la página de manual `dtwmrc(4)`.

Por ejemplo, el siguiente elemento de menú etiquetado Restaurar normaliza la ventana. Cuando se muestra el menú, si se escribe “R” también se restaurará la ventana. Si se pulsa Carácter ampliado F5 también se restaurará la ventana.

    Restaurar _R Alt<Key> F5  f.normalize

Para obtener información completa sobre la sintaxis de los menús del Gestor de espacios de trabajo, consulte la página de manual `dtwmrc(4)`.

### Modificar el menú (raíz) Espacio de trabajo existente

1. Abra el archivo apropiado para editarlo:

   - Personal: DirectorioInicio`/.dt/dtwmrc`

   - Accesible en el sistema: `/etc/dt/config/`idioma`/sys.dtwmrc`

     Para obtener información sobre cómo crear estos archivos, consulte la sección SAG.WMCnf.mkr.2.

2. Edite la descripción del menú Espacio de trabajo.

   El menú Espacio de trabajo predeterminado se llama
   DtRootMenu.

       Menu DtRootMenu
       {
          Menú Espacio de trabajo   f.title
          Mostrar anterior          f.circle_up
          Mostrar siguiente         f.circle_down
          …
       }

### Crear un nuevo menú (raíz) Espacio de trabajo

1. Abra el archivo apropiado para editarlo:

   - Personal: DirectorioInicio`/.dt/dtwmrc`

   - Accesible en el sistema: `/etc/dt/config/`idioma`/sys.dtwmrc`

     Para obtener información sobre cómo crear estos archivos, consulte la sección sag.wmcnf.mkr.2.

2. Cree el nuevo menú:

       Menu nombre_menú
       {
          …
       }

   Consulte la sección sag.wmcnf.mkr.9.

3. Cree o edite la asignación a botón para mostrar el nuevo menú.

   Si el menú sustituye el menú existente, edite la asignación a botón que muestra el menú Espacio de trabajo.

       <Btn3Down> root f.menu nombre_menú

   Si el menú es un menú adicional, cree una nueva asignación a botón del ratón. Por ejemplo, la siguiente asignación a botón muestra el menú cuando se pulsa Despl-botón 3 del ratón sobre el fondo:

       Despl<Btn3Down> root f.menu nombre_menú

4. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo.

### Crear un nuevo menú Ventana

El menú Ventana se crea en el Gestor de espacios de trabajo y normalmente no se personaliza. Para que el comportamiento de las ventanas sea coherente entre las aplicaciones, se deberá evitar realizar muchas modificaciones en el menú Ventana.

1. Abra el archivo apropiado para editarlo:

   - Personal: DirectorioInicio`/.dt/dtwmrc`

   - Accesible en el sistema: `/etc/dt/config/`idioma`/sys.dtwmrc`

     Para obtener información sobre cómo crear estos archivos, consulte la sección SAG.WMCnf.mkr.2.

2. Cree el nuevo menú:

       Menu nombre_menú
       {
          …
       }

3. Utilice el recurso `windowMenu` para especificar el nuevo menú:

   `Dtwm*windowMenu:` nombre_menú

4. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo.

## Personalización de las asignaciones a botones

Una asignación a botón asocia una operación de botón del ratón y una posible tecla modificadora del teclado con una función del gestor de ventanas. Las asignaciones a botones son aplicables a todos los espacios de trabajo.

Las asignaciones a botones predeterminadas del escritorio están definidas en el archivo de configuración del Gestor de espacios de trabajo en un conjunto de asignaciones a botones denominado `
DtButtonBindings`:

    Buttons DtButtonBindings
    {
       …
    }

### Sintaxis de la asignación a botón

La sintaxis para las asignaciones a botones es:

    Buttons ButtonBindingSetName
    {
       [modificador]<nombre_botónAcción_ratón> contexto función [argumento]
       [modificador]<nombre_botónAcción_ratón> contexto función [argumento]
    }

donde:

nombre_botón | `Btn1—`Botón izquierdo del ratón `` Btn2—Botón central (ratón de 3 botones) o ambos botones (ratón de 2 botones `Btn3—`Botón derecho `Btn4—`Botones 1 y 2 juntos en un ratón de 3 botones `Btn5—`Botones 2 y 3 juntos en un ratón de 3 botones
modificador | `Ctrl,` `Shift,` `Alt,` `Lock`
acción_ratón | `Down`—Mantener pulsado un botón del ratón `Up`—Soltar un botón del ratón `Click`—Pulsar y solar un botón del ratón `Click2`—Pulsar dos veces un botón del ratón `Drag`—Arrastrar el ratón mientras se mantiene pulsado el botón del ratón
contexto | Indica dónde debe estar el puntero para que la asignación entre en vigor. Si es necesario, separe varios contenidos con el carácter `|`. `root`—Ventana del espacio de trabajo `window`—Ventana del cliente o marco de la ventana `frame—`Marco de la ventana, excluido el contenido `icon—`Icono `title—`Barra de título `app—`Ventana del cliente (excluido el marco)
función | Una de las funciones del gestor de ventanas. Consulte la página de manual `dtwmrc(4)` para obtener una lista de las funciones válidas.
argumento | Argumentos de la función del gestor de ventanas que son necesarios. Para obtener más detalles, consulte la página de manual `dtwmrc(4)`.

Por ejemplo, la siguiente línea hace que se muestre el menú descrito en `DtRootMenu` cuando se pulsa el botón 3 del ratón mientras el puntero está en la ventana del espacio de trabajo (pero no en las ventanas del cliente).

    <Btn3Down> root  f.menu  DtRootMenu

Para obtener información completa sobre la sintaxis de asignación a botones, consulte la página de manual `dtwmrc(4)`.

### Añadir una asignación a botón

1. Abra el archivo apropiado para editarlo:

   - Personal: DirectorioInicio`/.dt/dtwmrc`

   - Accesible en el sistema: `/etc/dt/config/`idioma`/sys.dtwmrc`

     Para obtener información sobre cómo crear estos archivos, consulte la sección SAG.WMCnf.mkr.2.

2. Añada la asignación a botón a la definición `DtButtonBindings`.

   No asigne el mismo botón a funciones diferentes para las operaciones de pulsar botón y pulsar tecla y no asigne más de una función al mismo botón y contexto.

3. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo.

### Crear un nuevo conjunto de asignaciones a botones

1. Abra el archivo apropiado para editarlo:

   - Personal: DirectorioInicio`/.dt/dtwmrc`

   - Accesible en el sistema: `/etc/dt/config/`idioma`/sys.dtwmrc`

     Para obtener información sobre cómo crear estos archivos, consulte la sección SAG.WMCnf.mkr.2.

2. Cree el nuevo conjunto de asignaciones a botones. Consulte la sección SAG.WMCnf.mkr.13.

3. Establezca el recurso `buttonBindings`
   en el nuevo nombre:

   `Dtwm*buttonBindings`: NombreConjuntoAsignacionesBotones

4. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo.

Las nuevas asignaciones a botones sustituyen las asignaciones a botones existentes. Copie las asignaciones a botones que desee conservar de `DtButtonBindings`.

## Personalización de las asignaciones a teclas

Una asignación a teclado, que también se conoce como asignación a tecla, asocia combinaciones de teclas con funciones del Gestor de espacios de trabajo. Las asignaciones a teclas son aplicables a todos los espacios de trabajo.

Tenga cuidado de no utilizar una combinación de teclas común como una asignación a teclado. Por ejemplo, Despl-A pone normalmente la letra “A” en la ventana actual. Si asigna Despl-A a una función, se perderá su uso normal.

### Asignaciones a teclas predeterminadas del escritorio

Las asignaciones a teclas predeterminadas del escritorio están definidas en el archivo de configuración del Gestor de espacios de trabajo en un conjunto de asignaciones a teclas denominado `DtKeyBindings`:

    Keys DtKeyBindings
    {
       …
    }

### Sintaxis de la asignación a tecla

La sintaxis para las asignaciones a teclas es:

    Keys NombreConjuntoAsignacionesTeclas
    {
       [Modificadores]<Key>nombre_tecla contexto función [argumento]
       [Modificadores]<Key>nombre_tecla contexto función [argumento]
       …
    }

donde:

Modificadores | `Ctrl`, `Shift`, `Alt` y `Lock`. Se permiten varios modificadores; sepárelos con espacios.
nombre_tecla | Tecla con la que la función ha establecido una correspondencia. Para teclas con letras o números, el nombre nombre_tecla está normalmente impreso en la tecla. Por ejemplo, el nombre de la tecla “a” es “a” y la tecla “2” se denomina “2”. La tecla “Tabulador” se denomina “Tab”. La tecla “F3” se denomina “F3”.

Para otras teclas, se deletrea el nombre (por ejemplo, `plus` para la tecla “+”). El archivo `keysymdef.h`, ubicado en un directorio dependiente del sistema, contiene información adicional sobre los nombres de tecla.

contexto | Elemento que debe tener el foco de teclado para que su acción entre en vigor. Se pueden concatenar contextos si la asignación se aplica a más un contexto. Varios contextos se separan mediante el carácter `|`. `root—`Fondo de espacio de trabajo `window—` Ventana de cliente `icon—`Icono
función | Una función del gestor de ventanas. Para obtener una lista de funciones válidas, consulte la página de manual `dtwmrc(4)`.
argumento | Argumentos de la función del gestor de ventanas que son necesarios. Para obtener más detalles, consulte la página de manual `dtwmrc(4)`.

Por ejemplo, la siguiente asignación a tecla permite al usuario conmutar el foco de teclado a la siguiente ventana transitoria de una aplicación pulsando Alt+F6.

    Alt<Key>F6  window  f.next_key  transient

Para obtener información completa sobre la sintaxis de la asignación a tecla, consulte la página de manual `dtwmrc(4)`.

### Crear un conjunto personalizado de asignaciones a teclas

1. Abra el archivo apropiado para editarlo:

   - Personal: DirectorioInicio`/.dt/dtwmrc`

   - Accesible en el sistema: `/etc/dt/config/`idioma`/sys.dtwmrc`

     Para obtener información sobre cómo crear estos archivos, consulte la sección SAG.WMCnf.mkr.2.

2. Cree un nuevo conjunto de asignaciones a teclas con un NombreConjuntoAsignacionesTeclas exclusivo. Utilice el conjunto de asignaciones a teclas predeterminado del escritorio `DtKeyBindings`, como guía.

3. Establezca el recurso `keyBindings`
   en el nuevo nombre de conjunto:

   `Dtwm*keyBindings`: NombreConjuntoAsignacionesTeclas

4. Elija Reiniciar el Gestor de espacios de trabajo en el menú Espacio de trabajo.

Las nuevas asignaciones a teclas sustituyen las asignaciones a teclas existentes. Copie las asignaciones a teclas que desee conservar de `DtKeyBindings` al nuevo conjunto.

## Conmutación entre el comportamiento predeterminado y el personalizado

Para conmutar entre el comportamiento de ventana del escritorio de CDE y el de Motif 1.2 predeterminado:

1. Pulse Alt+Despl+Control+!

2. Pulse OK en el cuadro de diálogo.

Al conmutar al comportamiento predeterminado, se eliminan el Panel Frontal y las asignaciones personalizadas a botones y teclas.