Firebox
english français
Guide
  1. Phase de préparation.
    1. La compilation.
    2. Le lancement.
      1. En utilisant la commande startx.
      2. Avec un Display Manager.
  2. Configuration.
  3. Thèmes.
    1. En-tête d'un fichier de thème.
    2. Images internes.
      1. Fond d'écran.
      2. Arrows for menus.
    3. Taille des éléments.
      1. Fenêtres d'encadrement.
      2. Menus.
      3. Panneaux de basculement.
    4. Informations relatives aux textes.
      1. Nom de police.
      2. Alignement.
      3. Position des ombres.
    5. Couleurs utilisées.
    6. Images pour les boutons des barres de titre.
    7. Briques de base pour l'affichage.
      1. Base commune.
      2. Comment fonctionne la machine ?
      3. Formes de fenêtre.
      4. Objets de rendu.
    8. Bordure de mise en évidence des fenêtres.
    9. Corps des fenêtres clientes.
    10. Poignées de client pour le redimensionnement.
    11. Menus racine et client.
      1. Planche de menu.
      2. En-tête de menu.
      3. Eléments communs.
      4. Barre de séparation.
      5. Planche du menu dynamique.
    12. Panneaux de basculement.
      1. Panneau des fenêtres.
      2. Panneau des bureaux.
      3. Cellules des bureaux.
  4. Annexes.
    1. Raccourcis clavier par défaut.
    2. Schémas de validation XML.

Phase de préparation

1.1. La compilation

Les programmes suivants seront nécessaires à la compilation de Firebox :

Une fois que toutes les dépendences sont installées, tout est prêt pour compiler. Décompressez l'archive puis, depuis le sommet de l'arborescence créée, lancez :

$ ./configure
$ make install

Compiler en utilisant les sources du dépôt Subversion peut être plus difficile. Consultez la FAQ à ce propos.

1.2. Le lancement

Dans la plupart des cas, le binaire Firebox se situe dans /usr/local/bin/.

1.2.1. En utilisant la commande startx.

La version longue est :

$ startx /usr/local/bin/firebox -- :3

... où 3 est l'indice d'un affichage libre.

Pour lancer Firebox en ne lançant que startx, vous devez éditer voter fichier $HOME/.xinitrc. Ce dernier est un script shell, dont un contenu typique pour lancer Firebox est :

# [...]

exec firebox

Ensuite assurez vous que le fichier possède les droits nécessaires :

$ chmod 700 .xinitrc

1.2.2. Avec un Display Manager.

La meilleure chose à faire est de consulter la documentation relative à votre gestionnaire d'affichage spécifique pour y ajouter des éléments.

Une alternative consite à éditer le fichier $HOME/.xsession. Ce petit fichier peut être identique au .xinitrc ci-dessus. Avec cette méthode, vous devrez choisir "defaut" comme cible dans le gestionnaire d'affichage.

Dans ce cas, aucun droit d'exécution n'est requis.


Configuration.

Pour l'instant, veuillez utiliser l'éditeur de préférences.


Thèmes.

Cette partie décrit la structure XML des fichiers de thème.

Même si elle est plutôt détaillée, le mieux sera toujours de jeter un coup d'oeil aux thèmes existants. Cette méthode permet d'apprendre les rudiments rapidement !

Pour un apprentissage plus sûr (et plus rapide), on peut suivre les étapes suivantes :

  1. commencer par lire les bases, au moins les sections 3.7.1 et 3.7.2.
  2. analyser le petit thème intitulé "Learning theme for beginners" (voir la page des téléchargements).
  3. essayer de modifier les éléments les plus visuels.

Le thème courant est chargé à partir de ~/.firebox/themes/current, qui peut être soit un répertoire soit un lien symbolique. Dans tous les cas, il doit contenir un fichier theme.xml.

3.1. En-tête d'un fichier de thème.

La première section d'un fichier de thème est une en-tête contenant des informations sur le thème lui-même.

Toutes ses balises sont situées dans :

<FireboxTheme>
    <Header>
    ...
    </Header>
</FireboxTheme>

La balise Header est composée de plusieurs balises qui ne peuvent avoir que des chaînes de caractères comme valeurs :

3.2. Images internes.

3.2.1. Fond d'écran.

Firebox peut gérer à la fois des écrans de veilles ou des images comme fonds d'écran. Comme des programmes ne peuvent pas être joints aux thèmes sans difficulté, seules les images sont supportées ici.

Les images de fond d'écran sont définies comme ceci :

<FireboxTheme>
    <Background>
        <Picture>mon_image.png</Picture>
    </Background>
</FireboxTheme>

3.2.2. Flèches pour les menus.

Il y a trois types de flèches pour les menus. Elles peuvent être définies comme cela :

<FireboxTheme>
    <SystemPictures>
        <SubmenusArrow>mon_image1.png</SubmenusArrow>
        <DMenuLeftArrow>mon_image2.png</DMenuLeftArrow>
        <DMenuRightArrow>mon_image3.png</DMenuRightArrow>
    </SystemPictures>
</FireboxTheme>

3.3. Taille des éléments.

Les six balises de cette section sont situées dans :

<FireboxTheme>
    <Sizes>
    ...
    </Sizes>
</FireboxTheme>

3.3.1. Fenêtres d'encadrement.

La balise Borders définit la taille des fenêtres d'encadrement ; elle a quatre attributs :

frame size
  • east : taille de la bordure droite de la fenêtre.
  • north : taille de la bordure supérieure de la fenêtre, ie. hauteur de la barre de titre.
  • west : taille de la bordure gauche de la fenêtre.
  • south : taille de la bordure inférieure de la fenêtre.

La balise TitleBar spécifie des informations à propos des icônes et des boutons de la barre de titre ; ainsi, elle a aussi quatre attributs utiles :

frame size
  • padding : espace entre le bord et le premier icône/bouton.
  • sep : espace entre boutons de barre de titre.
  • width : largeur des boutons de barre de titre.
  • height : hauteur des boutons de barre de titre.

3.3.2. Menus.

La balise Menu est utilisée pour définir la hauteur requise pour les éléments de menu. Si une taille n'est pas précisée, alors sa valeur par défaut est la hauteur de de la police de caractère avec laquelle l'étiquette est imprimée (ou 0 pour une barre de séparation).

La hauteur finale d'un élément de menu est égale à :

MAX(taille définie par l'utilisateur, taille requise pour l'impression) + 2 x compensation verticale (voir ci-dessous).

La balise Gap fournit des valeurs de compensation supplémentaires ; elle peut contenir les attributs suivants :

  • horizontal : bourrages gauche et droite pour les éléments de menu.
  • vertical : bourrages haut et bas pour les éléments de menu.
  • icon : espace entre les icônes et le texte.

La balise Icon donne la taille des icônes grâce à ses attributs :

  • menu : taille des icônes pour les menus classique.
  • dmenu : taille des icônes pour le menu dynamique.
menu size

3.3.3. Panneaux de basculement.

Comme il y a deux sortes de panneaux, la balise Panel peut contenir plus qu'une seule balise :

La balise Icon a les attributs suivants :

La balise Window and Desktop peut avoir les attributs :

  • left : bourrage à gauche pour le texte.
  • right : bourrage à droite pour le texte.
panel size

3.4. Informations relatives aux textes.

Les propriétés des textes sont situées dans :

<FireboxTheme>
    <Text>
    ...
    </Text>
</FireboxTheme>

Cinq types de police de caractères sont utilisées. Chacune est matérialisée par une balise :

Afin de définir ses propriétés, chaque balise peut avoir trois sous-balises.

3.4.1. Nom de police.

Le texte de la balise Font décrit la police à utiliser pour un texte donné.

Cette chaîne est celle produite pour des outils tels que xfontsel.

3.4.2. Alignement.

Le texte de la balise TextAlignment définit où le texte est placé dans la zone.

Il y a trois valeurs possibles :

Par défault, seul le texte de barre de titre est centré. Tous les autres sont imprimés à gauche.

3.4.3. Position des ombres.

La balise TextShadow peut avoir les attributs suivants :

3.5. Couleurs utilisées.

Comme les objets de thème sont utilisés pour le rendu, il n'y a pas besoin de beaucoup d'autres définitions de couleur supplémentaires. Seules les couleurs d'impression manquent. C'est pourquoi 2x4=8 balises ont été introduites. Tout d'abord, celles de base :

Comme des ombres peuvent être ajoutées, quatre balises supplémentaires sont aussi ajoutées :

Par défaut, la couleur des ombres est toute noire.

Toutes ces balises sont situées dans :

<FireboxTheme>
    <Colors>
    ...
    </Colors>
</FireboxTheme>

Chaque balise peut avoir quatre attributs pour raffiner les couleurs selon un état donné :

Selon la cible, utiliser toutes les couleurs n'a pas toujours du sens dans tous les cas. Par exemple, les panneaux n'ont pas d'état sélectionné.

Voici un exemple de définition de couleur :

<Colors>
    <MenuItem normal="#c0c0c0" active="#ffffff"/>
</Colors>

3.6. Images pour les boutons des barres de titre.

Toute cette section est située dans :

<FireboxTheme>
    <TitleBarButtons>
    ...
    </TitleBarButtons>
</FireboxTheme>

Il y a quatre états pour les boutons de la barre de titre :

Pour chacun de ces quatre état, quatre sortes de bouton peuvent être définis :

Selon la position de chacun de ces boutons, quatre images peuvent être fournies :

Les noms de fichier doivent être donnés sans chemin. Et tous les définitions doivent être groupées. Par exemple :

<TitleBarButtons>

    <Normal>
        <Close>
            <Default>button_close_n.png</Default>
            <LeftEnd>button_close_n_left_end.png</LeftEnd>
        </Close>
        <Maximize>
            <Default>button_max_n.png</Default>
        </Maximize>
    </Normal>

    <Pressed>
        <Close>
            <Default>button_close_s.png</Default>
        </Close>
    </Pressed>

    <FocusLess>
        <Maximize>
            <Default>button_u.png</Default>
            <Alone>button_u_alone.png</Alone>
        </Maximize>
    </FocusLess>

</TitleBarButtons>

Si une position n'est pas utilisée, alors l'image par défaut est utilisée. Si un bouton n'apparaît pas pour un état donné, alors la version en dur est utilisée.

3.7. Briques de base pour l'affichage.

3.7.1. Base commune.

Une brique fait référence à une aire à peindre Toutes les briques de base partagent des coordonnées à l'écran et une taille.

Les coordonnées sont données par la balise Position. Cette balise a deux attributs principaux :

Ces deux attributs peuvent avoir des valeurs numériques, mais aussi quelques mots clefs spéciaux :

Par défaut, une position est initialisée avec les valeurs suivantes :

<Position x="0" y="0"/>

Par ailleurs, les valeurs peuvent être combinées avec plus et moins. Par exemple :

<Position x="%SOUTH% + 23 - %RBUTTONS%"/>

Pour résumer (tous les carrés ont une taille de 20x20) :

basis position
A: par defaut ; pas besoin de définition.
B: <Position x="31" y="%MID_POSITION%"/>
C: <Position x="%MID_POSITION%" y="%MID_POSITION%"/>
D: <Position x="%MID_POSITION% + 20" y="%MID_POSITION% - 20"/>
E: <Position x="%MAX_POSITION% - 20" y="%MAX_POSITION%"/>

Pour calculer la taille d'un élément, il y a la balise Size qui fonctionne come la balise Position ; ainsi, elle a aussi deux attributs principaux :

Ces deux attributs peuvent avoir des valeurs numériques, mais aussi quelques mots clefs spéciaux :

Par défaut, une taille est initialisée avec les valeurs suivantes :

<Size width="%MAX_SIZE%" height="%MAX_SIZE%"/>

Pour continuer avec le panneau d'exemple (en considérant que %APPICON% est égal à 28 pixels) :

basis position
A: <Size width="50" height="20"/>
B: <Size width="20"/>
C: <Size width="20" height="%MAX_SIZE% - %APPICON%"/>
D: <Size height="20"/>
E: <Size width="20" height="20"/>

La seule exception pour les tailles par défaut est avec les images (voir plus bas) : les valeurs par défaut sont égales aux dimensions de l'image.

3.7.2. Comment fonctionne la machine ?

Les formes de fenêtres et les objets de rendu partagent bon nombre de points communs. C'est pourquoi ils sont manipulés d'une manière similaire.

Tous les deux sont définis par une position et une taille. Donc tous les deux peuvent avoir une balise Position et une balise Size comme propriétés de base. ag as basic properties. Les formes de fenêtres et les objets de rendu vont ensuite étendre ces propriétés avec leurs propres balises.

Un autre point majeur est que toute forme ou tout objet de rendu peut contenir d'autres formes ou d'autre objets.

Ainsi, les éléments sont manipulés comme ceci : le père d'abord, les enfants ensuite. Et, à chaque fois qu'un élément est traité, sa zone de travail est restreinte à celle de son père.

Par exemple :

<ThemeObject type="rect">
    <Colors bg="#ffffff"/>

    <ThemeObject type="rect">
        <Colors bg="#ffff00"/>
        <Size height="55"/>

        <ThemeObject type="rect">
            <Colors bg="#ff0000"/>
            <Position x="%MID_POSITION%" y="10"/>
            <Size width="20"/>
        </ThemeObject>

    </ThemeObject>

    <ThemeObject type="rect">
        <Colors bg="#ffff00"/>
        <Position y="%MAX_POSITION%"/>
        <Size width="60" height="120"/>

        <ThemeObject type="rect">
            <Colors bg="#ff0000"/>
            <Position x="%MID_POSITION%" y="10"/>
            <Size width="20"/>
        </ThemeObject>

    </ThemeObject>

</ThemeObject>
basis position

Les zones rouges ne sont pas les mêmes, même si elles ont la même définition. Cela vient de leur aire parente jaune, à partir de laquelle leur taille et leur position sont calulées.

3.7.3. Formes de fenêtre.

Les formes définissent des régions qui sont soustraites de la surface d'origine de la cible. Basiquement, leur principal office est de produire des fenêtres non rectangulaires.

Ainsi, la balise Shape peut avoir deux attributs :

Par défaut, la attribut operation n'est pas utilisé.

Quatre types de formes sont supportés.

Le type placebo_shape est une forme de thème vide. Son unique fonction est de contenir d'autres formes de thème.

Le type rect_shape définit une forme rectangulaire. Il n'y a pas besoin de balise supplémentaire autre que les balises Position and Size (si nécessaires).

Par exemple :

<Shape xsi:type="rect_shape">
    <Position x="5" y="5"/>
    <Size width="%MAX_SIZE% - 5" height="%MAX_SIZE% - 5"/>
</Shape>

Le type poly_shape crée une forme polygonale. Il utilise autant de balises Point qu'il le faut, lesquelles sont simplement des balises Position renomées.

Par exemple :

<Shape xsi:type="rect_shape">
    <Size width="66" height="77"/>
    <Point x="5" y="5"/>
    <Point x="15" y="25"/>
    <Point x="45" y="33"/>
</Shape>

Enfin, le type img_shape charge le canal alpha d'une image pour construire une forme. Comme pour l'objet de thème, il conduit à deux balises de plus :

Les valeurs correctes pour cette dernière balise sont :

Par exemple :

<Shape xsi:type="img_shape">
    <Source>picture.png</Source>
    <Scale>tiled</Scale>
</Shape>

3.7.4. Objets de rendu.

Les objets de thème sont de petites briques pour le rendu. La balise ThemeObject peut avoir seulement un attribut :

Quatre types d'objets sont supportés.

Le type placebo est un objet de thème vide. Son seul office est de contenir d'autres objets de thème, ou de marquer certaines zones pour un traitement ultérieur avec sa balise Area, qui doit avoir l'une des valeurs suivantes :

Le type line dessine des lignes ou des polygones. Il utilise autant de balises Point que nécessaire, ces dernière étant simplement des balises Position renomées. La couleur de rendu est fournie par l'attribut border d'une balise Colors.

Par exemple :

<ThemeObject xsi:type="line">
    <Colors border="#000000"/>
    <Point x="2" y="2"/>
    <Point x="%MAX_POSITION%" y="10"/>
</ThemeObject>

Le type rect dessine un rectangle, rempli ou non. Il utilise les attributs bg et border d'une balise Colors pour le rendu. Si l'un de ces attributs est manquant, alors le fond ou la bordure (selon l'attribut en question) est ignoré.

Par exemple :

<ThemeObject xsi:type="rect">
    <Colors bg="#000000" border="#00ff00"/>
    <Position x="1" y="1"/>
    <Size width="%MAX_SIZE% - 1" height="%MAX_SIZE% - 1"/>
</ThemeObject>

Le type img dessines des images. Comme pour les formes de thème, il conduit à deux balises de plus :

Les valeurs correctes pour cette dernière balise sont :

Par exemple :

<ThemeObject xsi:type="img">
    <Source>picture.png</Source>
</ThemeObject>

Enfin, le type gradient définit des dégradés. Un tel objet s'appuie sur plusieurs balises Point, qui contiennent toutes les propriétés de la balise Position, plus un attribut supplémentaire nomé color qui donne la couleur courante pour le point courant.

Par exemple :

<ThemeObject xsi:type="gradient">
    <Position x="1" y="1"/>
    <Size width="%MAX_SIZE% - 1" height="%MAX_SIZE% - 1"/>
    <Point color="#ff0000"/>
    <Point color="#0000ff" x="%MAX_POSITION%" y="%MAX_POSITION%"/>
</ThemeObject>

3.8. Bordure de mise en évidence des fenêtres.

Les définitions des bordures de mise en évidences sont situées ici :

<FireboxTheme>
    <HighlightBorder>
        <Normal>
        ...
        </Normal>
        <Emergency>
        ...
        </Emergency>
    </HighlightBorder>
</FireboxTheme>
highlight borders

La balise Normal est utilisée lors du basculement entre fenêtre, l'autre avec une urgence.

Toutes les deux peuvent avoir des forme et de objets de thème.

3.9. Corps des fenêtres clientes.

Tout d'abord, un forme de fenêtre pour les clients non rectangulaires peut être définie dans la balise Client, située dans :

<FireboxTheme>
    <Client>
    ...
    </Client>
</FireboxTheme>

Le rendu des corps client est divisé en quatre parties :

  • TitleBar : la zone contenant l'icône, l'intitulé du client et les boutons.
  • Title : la chaîne fournie par l'application lancée.
  • Body : bordures entourant le client utilisateur.
  • Border : bordures internes propres au client (souvent larges de 2 pixels).

Les balises Border et Body sont des cas exceptionnels : elles sont dessinées sur la même zone. La première est dessinée d'abord, la seconde ensuite. Alors, les sept poignées sont ajoutées.

Ainsi, même si les bordures sont des fonctionnalités requises par les fenêtres utilisateurs, il n'y a pas besoin d'avoir recours à des objets de thème pour les dessiner car la balise Body peut s'en charger.

Firebox ne vérifie pas si elles se superposent ou non.

client

Comme les parties dépendent de l'état de leur fenêtre d'encadrement, chaque balise peut avoir deux balises supplémentaires :

Ces deux états peuvent contenir des objets de thème pour le rendu.

Si l'état sans focus n'a pas été défini, alors celui avec focus est utilisé.

Par exemple, un échantillon de corps de fenêtre pourrait être :

<FireboxTheme>
    <Client>
    ...
        <TitleBar>
            <Focused>
            ...
            </Focused>
        </TitleBar>
    </Client>
</FireboxTheme>

3.10. Poignées de client pour le redimensionnement.

Afin de permettre un redimensionnement avec la souris, de petites zones sont attachées à chaque fenêtre d'encadrement. Pour chacune de ces zones, une balise est définie : TopLeft, TopRight, MidLeft, MidRight, BottomLeft, BottomMid, et BottomRight.

Toutes celles-ci sont situées dans :

<FireboxTheme>
    <ClientHandlers>
    ...
    </ClientHandlers>
</FireboxTheme>

Comme les zones dépendent de l'état de leur fenêtre d'encadrement, chaque balise contient deux balises supplémentaires :

Ces deux balises d'état peuvent contenir des objets de thème pour le rendu.

Si l'état sans focus n'a pas été défini, alors celui avec focus est utilisé.

3.11. Menus racine et client.

Menus sont composés de quelques éléments :

menus
  1. Planche principale (balise Board).
  2. En-tête (principalement dans Head/Base).
  3. Elément par défaut (balise Item/Normal).
  4. Séparation (balise Separator).
  5. Elément actif (balise Item/Selected).
  6. Premier menu de la liste (balise FirstItem).
  7. Dernier élément de la liste (balise LastItem).
  8. Flèche (voir la section section 3.2.2).

3.11.1. Planche de menu.

Si nécessaire, une forme de thème globale et un objet de thème global peuvent être définis dans la balise Board :

<FireboxTheme>
    <Menu>
        <Board>
        ...
        </Board>
    </Menu>
</FireboxTheme>

3.11.2. En-tête de menu.

Une en-tête peut être définie avec une forme de thème et un objet de thème. Tous sont situés dans une balise appelée Base :

<FireboxTheme>
    <Menu>
        <Head>
            <Base>
            ...
            </Base>
        </Head>
    </Menu>
</FireboxTheme>

Comme le texte d'un élément peut être entouré par un rendu particulier, il est aussi possible d'ajouter un objet de thème supplémentaire dans la balise Caption :

<FireboxTheme>
    <Menu>
        <Head>
            <Caption>
            ...
            </Caption>
        </Head>
    </Menu>
</FireboxTheme>

3.11.3. Eléments communs.

Selon la position de l'élément à rendre, il existe une définition raffinée. Ainsi trois balises (FirstItem, Item et LastItem) sont utilisées pour dessiner des éléments de menu.

Ces définitions sont situées dans :

<FireboxTheme>
    <Menu>
        <FirstItem>
        ...
        </FirstItem>
        <Item>
        ...
        </Item>
        <LastItem>
        ...
        </LastItem>
    </Menu>
</FireboxTheme>

NB: la balise FirstItem n'est pas utilisée si une en-tête de menu a déjà été dessinée dans le même menu.

NB2: pour le menu dynamique, seule la balise Item est utilisée.

Selon l'état à dessiner, ces balises peuvent avoir des sous-balises appelées Selected et Normal. Chacune peut contenir à la fois une forme de thème et un objet de thème.

Comme le texte de ces éléments peut être entouré par un rendu particulier, il est aussi possible d'ajouter un objet de thème supplémentaire dans la balise ItemCaption :

<FireboxTheme>
    <Menu>
        <Head>
            <ItemCaption>
            ...
            </ItemCaption>
        </Head>
    </Menu>
</FireboxTheme>

3.11.4. Barre de séparation.

La barre de séparation peut ne pas toujours être une simple barre. Parce que sa disposition est impliquée dans le rendu global du menu, sa forme doit être prise en considération.

C'est pourquoi une forme de thème et un objet de thème peuvent se trouver dans la balise Separator :

<FireboxTheme>
    <Menu>
        <Separator>
        ...
        </Separator>
    </Menu>
</FireboxTheme>

3.11.5. Planche du menu dynamique.

Comme le menu dynamique partage beaucoup de choses avec les menus communs, il n'a pas besoin d'une partie spéciale pour son rendu.

Son fond de panneau est le seul élément qui peut être personnalisé. Ainsi, la balise DMenuBoard permet de le définir grâce à un objet de thème spécial.

Cette définition est située dans :

<FireboxTheme>
    <Menu>
        <DMenuBoard>
        ...
        </DMenuBoard>
    </Menu>
</FireboxTheme>

3.12. Panneaux de basculement.

3.12.1. Panneau des fenêtres.

.La balise WindowPanel décrit l'apparence du panneau montré lors du basculement de fenêtres.

Elle peut contenir a forme de thème et un objet de thème ; tous les deux sont enregistrés dans :

<FireboxTheme>
    <WindowPanel>
    ...
    </WindowPanel>
</FireboxTheme>
window panel

3.12.2. Panneau des bureaux.

La balise WindowPanel décrit l'apparence du panneau affiché lors d'un basculement de bureaux.

Elle peut contenir a forme de thème et un objet de thème ; tous les deux sont enregistrés dans :

<FireboxTheme>
    <DesktopPanel>
    ...
    </DesktopPanel>
</FireboxTheme>
desktop panel

3.12.3. Cellules des bureaux.

Pour personnaliser les petites cellules du panneau des bureaux, deux objets de thème de plus peuvent être utilisés.

Ils sont situés dans :

<FireboxTheme>
    <DesktopPanel>
        <SelectedDeskCell>
        ...
        </SelectedDeskCell>
        <DeskCell>
        ...
        </DeskCell>
    </DesktopPanel>
</FireboxTheme>

Annexes.

4.1. Raccourcis clavier par défaut.

Les combinaisons de touches ont la syntaxe suivante : Modificateur[Modificateur[Modificateur...]]-Touche. Les modificateurs disponibles sont :

Voici les raccourcis clavier de base par défaut :

AS-Tab Montre la fenêtre cliente précédente.
A-Tab Montre la fenêtre cliente précédente.
CA-Left Déplace au bureau virtuel précédent.
CA-Up Déplace au bureau virtuel supérieur.
CA-Right Déplace au bureau virtuel suivant.
CA-Down Déplace au bureau virtuel inférieur.
A-S Affiche le menu dynamique personnalisé.
A-P Affiche le menu dynamique contenant tous les programmes de $PATH.
A-Return Lance un terminal en utilisant la variable d'environnement $TERM.

Quand un menu normal se montre, les raccourcis suivant sont utilisés par défaut :

Left Sélectionne le menu parent, s'il existe.
Up Sélectionne l'élément précédent, ou le premier si aucun.
Right Sélectionne le premier sous-menu, s'il existe
Down Sélectionne l'élément suivant, ou le premier si aucun.
Return Exécute l'élément de menu sélectionné.
Escape Cache le menu courant.

Voici les raccourcis clavier utilisés par défaut avec les menus dynamiques :

End Sélectionne le dernier élément du menu dynamique.
Right Sélectionne l'élément suivant, ou le premier si aucun.
C-Right Sélectionne le premier élément de la rangée d'éléments suivante.
Left Sélectionne l'élément précédent, ou le premier si aucun.
C-Left Sélectionne le premier élément de la rangée d'éléments précédente.
Home Sélectionne le premier élément du menu dynamique.
BackSpace Supprime le dernier caractère tapé.
Return Exécute l'élément de menu sélectionné.
Escape Cache le menu dynamique.

4.2. Schémas de validation XML.

Les fichiers se trouvent dans le répertoire schemas/ du paquet principal.

La commande typique pour valider un schéma XML est exécuter :

$ xmllint --schema schema_de_référence.xsd mon_fichier_à_valider.xml > /dev/null

Pour les définitions de thème, le bon schéma est theme.xsd.

HTML 4.01 Intuxication CSS