# Personnalisation du Gestionnaire de l'espace de travail

Le présent chapitre décrit la procédure à suivre pour personnaliser le Gestionnaire de l'espace de travail.

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

Le Gestionnaire de l'espace de travail est le gestionnaire de fenêtres du Bureau. Comme tout gestionnaire de fenêtres, il contrôle:

- l'apparence des composants des cadres de fenêtres

- le comportement des fenêtres, dont leur ordre dans la pile et le comportement de la zone d'entrée

- les associations de fonctions aux touches et aux boutons

- l'apparence des fenêtres réduites

- les menus Espace de travail et Fenêtre

Il contrôle, en outre, les composants du Bureau ci-après.

- Espaces de travail. Le Gestionnaire de l'espace de travail contrôle le nombre d'espaces de travail et les fenêtres ouvertes dans chacun d'eux.

- Fonds des espaces de travail. L'utilisateur peut modifier les arrière-plans à l'aide du Gestionnaire de configuration. Toutefois, la gestion des arrière-plans est une fonction du Gestionnaire de l'espace de travail.

- Tableau de bord. Le Tableau de bord utilise ses propres fichiers de configuration; il est cependant créé et géré par le Gestionnaire de l'espace de travail.

Nombre de ces composants peuvent être modifiés à l'aide du Gestionnaire de configuration. Le Gestionnaire de configuration permet d'appliquer rapidement et simplement des modifications fréquemment utilisées. D'autres ressources doivent être configurées manuellement.

Le Gestionnaire de l'espace de travail est `dtwm`. Il est basé sur le Gestionnaire de fenêtres Motif.

## Informations connexes

- Pour plus de détails sur le Gestionnaire de l'espace de travail, reportez-vous aux pages de manuel `dtwm(1)` et `dtwmrc(4)`.

- Pour plus de détails sur la configuration des ressources du Gestionnaire de l'espace de travail, reportez-vous à la section SAG.FACol.mkr.2.

- Pour plus de détails sur les fichiers de configuration du Tableau de bord, reportez-vous au SAG.FrPC.mkr.1.

Pour plus de détails sur la configuration des ressources, reportez-vous à la section SAG.FACol.mkr.2.

## Fichiers de configuration du Gestionnaire de l'espace de travail

Le Gestionnaire de l'espace de travail rassemble les informations concernant les menus de fenêtres et d'espaces de travail, et les associations de fonctions aux touches et aux boutons contenues dans les fichiers de configuration.

Il fait appel à l'un des fichiers suivants:

- fichier personnel: Rép_Personnel`/.dt/dtwmrc`

- fichier de niveau système: `/etc/dt/config/`langue`/sys.dtwmrc`

- fichier intégré :`/usr/dt/config/`langue`/sys.dtwmrc.`

Le Gestionnaire de l'espace de travail recherche un fichier de configuration dans l'ordre ci-dessus et utilise le premier fichier trouvé.

Pour les utilisateurs de langues de session multiples, il est possible de créer un fichier de configuration personnel et tributaire de la langue `Rép_Personnel/.dt/langue/dtwrmc`. Ce fichier est alors prioritaire sur le fichier `Rép_Personnel/.dt/dtwmrc`.

### Création ou modification d'un fichier de configuration personnel

Le fichier personnel de configuration du Gestionnaire de l'espace de travail est Rép_Personnel`/.dt/dtwmrc`. Le cas échéant, c'est ce fichier qui est utilisé.

1. Cliquez deux fois
   sur Editer Dtwmrc dans le groupe d'applications Outils_Bureau.

   Si vous disposez déjà d'un fichier personnel `dtwmrc`, il est chargé dans l'éditeur. Si tel n'est pas le cas, le fichier `sys.dtwmrc` est copié dans Rép_Personnel`/.dt/dtwmrc`, qui est ensuite chargé dans l'éditeur.

2. Modifiez le fichier.

3. Quittez l'éditeur.

   Le fichier est enregistré comme étant votre fichier `dtwmrc` personnel, quelle que soit sa source.

### Création d'un fichier de configuration appliqué au système

Le fichier de configuration du Gestionnaire de l'espace de travail appliqué au système est `/etc/dt/config/`langue`/sys.dtwmrc`.

- Copiez `/usr/dt/config/`langue`/sys.dtwmrc`
  dans `/etc/dt/config/`langue`/sys.dtwmrc`.

Ce fichier n'est pas utilisé si Rép_Personnel`/.dt/dtwmrc` existe.

### Inclusion d'autres fichiers

- Utilisez la syntaxe:

      include
      {
         chemin
         chemin
          …
      }

Les lignes suivantes, par exemple, proviennent du fichier `/users/ellen/mymenu`:

    include
    {
       /users/ellen/mymenu
    }

Les instructions d'inclusion offrent des possibilités supplémentaires sans nécessiter la copie du fichier de configuration dans sa totalité. Un utilisateur peut, par exemple, créer une nouvelle association de touches sans avoir à gérer l'ensemble du fichier de configuration. L'utilisateur peut créer un fichier Rép_Personnel`/.dt/dtwmrc` contenant:

    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"
       …
    }

### Relance du Gestionnaire de l'espace de travail

Le Gestionnaire de l'espace de travail doit être relancé pour que les modifications effectuées dans le fichier de configuration prennent effet.

- Sélectionnez l'option Relancer Gestionnaire de l'esp. de travail du menu Espace de travail (positionnez le pointeur sur le fond et appuyez sur le bouton 3 de la souris).

## Personnalisation d'un espace de travail

La plupart des personnalisations d'espaces de travail, telles que la modification de leurs noms et de leur nombre, peuvent être effectuées par l'utilisateur à l'aide de l'interface du Bureau. Toutefois, le Gestionnaire de l'espace de travail fournit les ressources nécessaires à la configuration de paramètres par défaut appliqués au système.

### Modification du nombre d'espaces de travail appliqués au système

La configuration par défaut du Bureau comporte quatre espaces de travail. L'utilisateur peut en ajouter ou en supprimer à l'aide du menu instantané associé au sélecteur d'espace de travail (zone de commutation).

Le Gestionnaire de l'espace de travail permet de modifier le nombre d'espaces de travail par défaut.

- Utilisez la ressource `workspaceCount` pour définir un nombre:

  `Dtwm*workspaceCount`: nombre

Pour plus de détails sur la configuration des ressources du Gestionnaire de l'espace de travail, reportez-vous à la section SAG.FACol.mkr.2.

Par exemple, la ressource suivante permet de définir six espaces de travail:

`Dtwm*workspaceCount`: 6

### Désignation des espaces de travail de niveau système

Le nombre d'espaces de travail est défini par la convention `ws` n, où n correspond à 0, 1, 2, etc. Par exemple, les quatre espaces de travail par défaut sont numérotés de `ws0` à `ws3`.

- Utilisez la ressource `title`
  pour modifier le nom d'un espace de travail donné:

  `Dtwm*ws` n: nom

  `Dtwm*ws` n.title: name

Pour plus de détails sur la définition des ressources du Gestionnaire de l'espace de travail, reportez-vous à la section SAG.FACol.mkr.2.

Par exemple, les ressources suivantes permettent d'affecter aux quatre espaces de travail par défaut des noms donnés:

    Dtwm*ws0*title:  Anne
    Dtwm*ws1*title:  Daniel
    Dtwm*ws2*title:  Julie
    Dtwm*ws3*title:  Patrick

### Création de fonds supplémentaires

1. Créez les images des fonds. Il peut s'agir de fichiers bitmap ou de mappe de pixels.

2. Copiez les fonds dans l'un des répertoires suivants. Au besoin, créez ce répertoire.

   - Fonds appliqués au système: `/etc/dt/backdrops`

   - Fonds personnels: Rép_Personnel`/.dt/backdrops`

3. Sélectionnez l'option Relancer Gestionnaire de l'esp. de travail du menu Espace de travail.

Les fonds personnels et de niveau système sont ajoutés aux fonds intégrés dans `/usr/dt/backdrops`.

Vous pouvez remplacer un fond intégré par un fond personnel ou de niveau système que vous aurez créé.

### Remplacement d'un fond par une image graphique

Les fonds apparaissent en couches
sur la fenêtre racine. La boîte de dialogue Fond du Gestionnaire de configuration comporte un paramètre
NoBackdrop pour lequel le fond est transparent.

Une seule fenêtre racine se trouve derrière les fonds de l'espace de travail. Ainsi, une image graphique placée dans la fenêtre racine est conservée dans tous les espaces de travail. Vous pouvez indiquer les espaces de travail qui couvrent la fenêtre racine avec un fond. L'image visible lorsque le paramètre NoBackdrop est sélectionné sera toutefois commune à l'ensemble des espaces de travail.

1. Créez l'image graphique. Son format doit être compatible avec vos outils et permettre son affichage dans la fenêtre racine. Par exemple, pour utiliser `xsetroot`, vous devez créer un fichier de bitmap.

2. S'il n'existe pas, créez un fichier exécutable Rép_Personnel`/.dt/sessions/sessionetc`. Le fichier `sessionetc` est exécuté chaque fois que l'utilisateur se connecte.

3. Entrez la commande d'affichage de l'image dans le fichier `sessionetc`.

   La commande suivante, par exemple, juxtapose le fichier bitmap sur la fenêtre racine:

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

## Menus du Gestionnaire de l'espace de travail

Le Gestionnaire de l'espace de travail comporte trois menus par défaut:

Menu Espace de travail | (Ou menu racine). Il s'affiche lorsque l'utilisateur positionne le pointeur sur le fond et appuie sur le bouton 3 de la souris et ce grâce à une association de touches.
Menu Fenêtre | Il s'affiche lorsque l'utilisateur positionne le pointeur sur le bouton du menu Fenêtre (angle supérieur gauche de la fenêtre) et appuie sur le bouton 1 ou 3 de la souris et ce grâce à la ressource `windowMenu`.
Menu Tableau de bord | Il s'affiche lorsque l'utilisateur positionne le pointeur sur le bouton du menu Fenêtre du Tableau de bord et appuie sur le bouton 1 ou 3 de la souris

### Syntaxe des menus du Gestionnaire de l'espace de travail

La syntaxe des menus du Gestionnaire de l'espace de travail est la suivante:

    MenuNom_menu
    {
       sélection1 [mnémonique] [accélérateur] fonction [argument]
       sélection2 [mnémonique] [accélérateur] fonction [argument]
       …
    }

Où:

sélection | Texte ou bitmap qui apparaît dans le menu. Si le texte comporte des espaces, délimitez-le par des guillemets. Pour les bitmaps, utilisez la syntaxe @/chemin.
mnémonique | Caractère unique qui agit comme un raccourci-clavier lorsque le menu est affiché. Ce caractère apparaît dans le format `_`caractère.
accélérateur | Raccourci-clavier actif, que le menu soit affiché ou non. La syntaxe des accélérateurs est modificateur`<Key>` touche où le modificateur est `Ctrl`, `Maj`, `Alt` (Caractère étendu) ou `Lock`. Pour une liste de toutes les touches mnémoniques possibles, reportez-vous au fichier `keysymdef.h` du répertoire "X11 include".
f onction | Fonction exécutée lors de cette sélection. Pour consulter la liste des fonctions, reportez-vous à la page de manuel `dtwmrc(4)`.
argument | Arguments de fonction. Pour plus de détails, reportez-vous à la page de manuel `dtwmrc(4)`.

L'option de menu Restaurer, par exemple, rétablit la fenêtre. Ainsi, lorsque le menu est affiché, vous pouvez rétablir la fenêtre en appuyant sur la touche “R” ou sur F5.

    Restore   _R   Alt<Key> F5  f.normalize

Pour plus de détails sur la syntaxe des menus du Gestionnaire de l'espace de travail, reportez-vous à la page de manuel `dtwmrc(4)`.

### Modification du menu racine Espace de travail

1. Ouvrez le fichier correspondant pour le modifier:

   - personnel: Rép_Personnel`/.dt/dtwmrc`

   - fichier système: `/etc/dt/config/` langue`/sys.dtwmrc`

     Pour plus de détails sur la création de ces fichiers, reportez-vous à la section SAG.WMCnf.mkr.2.

2. Modifiez la description du menu Espace de travail.

   Son nom par défaut est
   DtRootMenu.

       Menu DtRootMenu
       {
          “Workspace Menu”                     f.title
          “Shuffle Up”                         f.circle_up
          “Shuffle Down”                       f.circle_down
          …
       }

### Création d'un nouveau menu racine Espace de travail

1. Ouvrez le fichier correspondant pour le modifier:

   - personnel: Rép_Personnel`/.dt/dtwmrc`

   - fichier système: `/etc/dt/config/` langue`/sys.dtwmrc`

     Pour plus de détails sur la création de ces fichiers, reportez-vous à la section sag.wmcnf.mkr.2.

2. Création du nouveau menu:

       Menu nom_menu
       {
          …
       }

   Reportez-vous à la section sag.wmcnf.mkr.9.

3. Créez ou modifiez l'association de fonction au bouton permettant d'afficher le nouveau menu.

   Si ce dernier remplace le menu existant, modifiez l'association de fonction au bouton permettant d'afficher le menu Espace de travail.

       <Btn3Down> root f.menu nom_menu

   S'il s'agit d'un menu supplémentaire, créez une nouvelle association. L'association suivante, par exemple, permet d'afficher le menu lorsque vous appuyez simultanément sur la touche Maj et sur le bouton 3 de la souris après avoir positionné le pointeur sur le fond:

       Maj<Btn3Down> root f.menu nom_menu

4. Sélectionnez l'option Relancer le Gestionnaire de l'esp. de travail du menu Espace de travail.

### Création d'un nouveau menu Fenêtre

Le menu Fenêtre est intégré au Gestionnaire de l'espace de travail et n'est généralement pas personnalisé. Pour conserver une certaine cohérence dans le comportement des fenêtres d'une application à une autre, il est préférable de ne pas effectuer de grandes modifications dans le menu Fenêtre.

1. Ouvrez le fichier correspondant pour le modifier:

   - personnel: Rép_Personnel`/.dt/dtwmrc`

   - fichier système: `/etc/dt/config/` langue`/sys.dtwmrc`.

     Pour plus de détails sur la création de ces fichiers, reportez-vous à la section SAG.WMCnf.mkr.2.

2. Création du nouveau menu:

       Menu nom_menu
       {
          …
       }

3. Utilisez la ressource `windowMenu` pour préciser le nouveau menu:

   `Dtwm*windowMenu`: nom_menu

4. Sélectionnez l'option Relancer Gestionnaire de l'esp. de travail du menu Espace de travail.

## Personnalisation des associations de fonctions aux boutons

Une association de fonction au bouton permet l'exécution d'une fonction du gestionnaire de fenêtres par l'utilisation simultanée d'un bouton de la souris et d'une touche du clavier. Ces associations s'appliquent à tous les espaces de travail.

Les associations par défaut sont définies dans le fichier de configuration du Gestionnaire de l'espace de travail en un jeu d'associations appelé `
DtButtonBindings`:

    Buttons DtButtonBindings
    {
       …
    }

### Syntaxe des associations de fonctions aux boutons

Cette syntaxe est la suivante:

    Buttons Nom_jeu_associations_boutons
    {
       [modificateur]<nom_bouton Action_souris> contexte fonction  [argument]
       [modificateur]<nom_bouton Action_souris> contexte fonction  [argument]
    }

Où:

nom_bouton | Btn1 - Bouton gauche de la souris. Btn2 - Bouton du milieu (souris à trois boutons) ou les deux boutons (souris à deux boutons). Btn3 - Bouton droit de la souris. Btn4 - Boutons 1 et 2 (ensemble) d'une souris à 3 boutons. Btn5 - Boutons 2 et 3 (ensemble) d'une souris à 3 boutons.
modificateur | Ctrl, Maj, Alt, Lock
action_souris | Down - Appuyez sur un bouton de souris. Up - Relâchez le bouton. Click- Appuyez sur le bouton et relâchez-le. Click2 - Cliquez deux fois. Drag - Déplacez la souris tout en maintenant le bouton enfoncé.
contexte | Indique l'emplacement du pointeur pour que l'association prenne effet. Au besoin, séparez les éléments par le signe " | ". root - Fenêtre de l'espace de travail window - Fenêtre cliente ou cadre de la fenêtre frameCadre de la fenêtre, sans le contenu icon -Icône title<-Barre de titre app- Fenêtre cliente, sans le cadre
function | L'une des fonctions du gestionnaire de fenêtres. Pour consulter la liste des fonctions valides, reportez-vous à la page de manuel `dtwmrc(4)`.
argument | Argument de fonction du gestionnaire de fenêtres requis. Pour plus de détails, reportez-vous à la page de manuel `dtwmrc(4)`.

La ligne suivante, par exemple, permet d'afficher le menu décrit dans `DtRootMenu` lorsque vous appuyez sur le bouton 3 de la souris alors que le pointeur se trouve dans la fenêtre de l'espace de travail (mais pas dans une fenêtre cliente).

    <Btn3Down>    root    f.menu    DtRootMenu

Pour plus de détails sur la syntaxe des associations de fonctions aux boutons, reportez-vous à la page de manuel `dtwmrc(4)`.

### Ajout d'une association de fonction au bouton

1. Ouvrez le fichier correspondant pour le modifier:

   - personnel: Rép_Personnel`/.dt/dtwmrc`

   - fichier système: `/etc/dt/config/` langue`/sys.dtwmrc`

     Pour plus de détails sur la création de ces fichiers, reportez-vous à la section SAG.WMCnf.mkr.2.

2. Ajoutez l'association à la définition `DtButtonBindings`.

   Attribuez une seule fonction à un même bouton.

3. Sélectionnez l'option Relancer Gestionnaire de l'esp. de travail du menu Espace de travail.

### Création d'un nouveau jeu d'associations de fonctions aux boutons

1. Ouvrez le fichier correspondant pour le modifier:

   - personnel: Rép_Personnel`/.dt/dtwmrc`

   - fichier système: `/etc/dt/config/` langue`/sys.dtwmrc`

     Pour plus de détails sur la création de ces fichiers, reportez-vous à la section SAG.WMCnf.mkr.2.

2. Créez le nouveau jeu d'associations. Reportez-vous à la section SAG.WMCnf.mkr.13.

3. Définissez le nouveau nom de la ressource `buttonBindings`:

   `Dtwm*buttonBindings`: Nom_jeu_associations_boutons

4. Sélectionnez l'option Relancer Gestionnaire de l'esp. de travail du menu Espace de travail.

Les nouvelles associations remplacent les associations qui existaient déjà. Copiez celles que vous souhaitez conserver à partir de `DtButtonBindings`.

## Personnalisation des associations de fonctions aux touches

Les associations de fonctions aux touches attribuent des fonctions du Gestionnaire de l'espace de travail à des touches du clavier. Ces associations s'appliquent à tous les espaces de travail.

Choisissez les associations avec précaution. Maj-A permet normalement d'entrer la mettre “A”. Si vous associez une autre fonction à cette combinaison de touches, la fonction d'origine devient inactive.

### Associations par défaut de fonctions aux touches

Les associations par défaut sont définies dans le fichier de configuration du Gestionnaire de l'espace de travail en un jeu d'associations appelé `DtKeyBindings`.

    Keys DtKeyBindings
    {
       …
    }

### Syntaxe des associations de fonctions aux touches

Cette syntaxe est la suivante:

    Keys Nom_jeu_associations_touches
    {
       [Modificateurs]<Key>nom_touche contexte fonction  [argument]
       [Modificateurs]<Key>nom_touche contexte fonction  [argument]
        …
    }

Où:

Modificateurs | `Ctrl`, `Maj`, `Alt` et `Lock`. Des modificateurs multiples, séparés par des espaces, sont acceptés.
nom_touche | Touche correspondant à la fonction. Le nom_touche des touches portant des lettres ou des chiffres (par exemple, "a", "2", "Tab", "F3") correspond au caractère inscrit sur la touche.

Le libellé des autres touches doit être explicite, par exemple, `plus` pour la touche “+”. Le fichier `keysymdef.h`, figurant dans un répertoire système contient des informations supplémentaires sur le nom des touches.

contexte | Eléments qui deviennent effectifs par l'activation du clavier. Ils peuvent être concaténés si l'association s'applique à plusieurs contextes. Les contextes sont séparés par le signe "|". root - Fond de l'espace de travail `window -` Fenêtre cliente icon - Icône
fonction | Fonction du gestionnaire de fenêtres. Pour consulter la liste des fonctions valides, reportez-vous à la page de manuel `dtwmrc(4)`.
argument | Argument de fonction du gestionnaire de fenêtres requis. Pour plus de détails, reportez-vous à la page de manuel `dtwmrc(4)`.

L'association suivante, par exemple, permet à l'utilisateur de transmettre l'activation du clavier à la fenêtre transitoire d'une application en appuyant sur Alt+F6.

    Alt<Key>F6    window   f.next_key   transient

Pour plus de détails sur la syntaxe des associations de fonctions aux touches, reportez-vous à la page de manuel `dtwmrc(4)`.

### Création d'un jeu d'associations personnalisées

1. Ouvrez le fichier correspondant pour le modifier:

   - personnel: Rép_Personnel`/.dt/dtwmrc`

   - fichier système: `/etc/dt/config/` langue`/sys.dtwmrc`

     Pour plus de détails sur la création de ces fichiers, reportez-vous à la section sag.wmcnf.mkr.2.

1. Créez un nouveau jeu d'associations de fonctions à des touches portant un nom unique: Nom_jeu_associations_touches. Prenez modèle sur le jeu d'associations de fonctions aux touches par défaut, `DtKeyBindings`.

2. Définissez le nouveau nom de la ressource `keyBindings` :

   `Dtwm*keyBindings`: Nom_jeu_associations_touches

3. Sélectionnez l'option “Relancer Gestionnaire de l'esp. de travail” du menu Espace de travail.

Les nouvelles associations remplacent celles qui existaient déjà. Copiez celles que vous souhaitez conserver à partir du nouveau jeu `DtKeyBindings`.

## Commutation entre comportement par défaut et comportement personnalisé

Pour basculer du comportement d'Motif 1.2 par défaut et celui de la fenêtre du Bureau CDE:

1. Appuyez sur Alt+Maj+Ctrl+!

2. Cliquez sur OK dans la boîte de dialogue.

Le rappel du comportement par défaut supprime le Tableau de bord ainsi que toutes les associations personnalisées de fonctions aux boutons et aux touches.