(ndt: Cette page à été traduite par un traducteur logiciel et pas relu donc il doit y avoir des énormités.  (prochainement réécrite))

8. Les Ressources De X

Nous considérerons à ce point quelques modifications plus fines pour votre système.  Jusqu'ici vous n'avez obtenu que la configuration du gestionnaire de fenêtre. Le gestionnaire de fenêtre vous laisse adapter tout aux besoins du client qui se produit en dehors des fenêtres, les cadres (frames), les bordures (borders), les boutons (buttons), le bureau (desktop)... mais que diriez vous de rendre l'intérieur des belles fenêtres?  La seule manière de faire ceci est en modifiant les ressources (Resources) de X pour votre système.

Les ressources d'X fournissent un mécanisme pour stocker des valeurs par défaut pour des ressources de programme et pour une adaptation en fonction votre environnement de fenêtrage de vos aspects et sensations préférés.  Les ressources sont spécifiées comme texte de chaîne de caractères qui sont lues à l'intérieur de divers endroits quand une application est exécutée.
  Des composants de programme sont appelés de manière hiérarchique, avec chaque objet dans la hiérarchie identifiée par une classe aussi bien qu'un nom d'instance.  Au top niveau de la hiérarchie ce trouve le nom de la classe et celui de l'instance de l'application elle-même.  Par convention, le nom de la classe de l'application est identique au nom du programme, mais avec la première lettre capitalisé (par exemple Bitmap ou Emacs) bien que quelques programmes qui commencent par la lettre ``X ' ' doivent également faire profiter la deuxième lettre pour des raisons logiques (par exemple XTerm ou XConfigurator).

8.1 X Ressources:  Les Bases

Essayons quelques exemples pour vous, préparer en douceur au monde des ressources. Commençons par ouvrir une fenêtre xterm.  Je suppose que la plupart de vous en a déjà une d'ouverte, sinon vous pouvez en ouvrir une avec un choix de menu, ou bien vous pouvez souhaiter faire un petit retour en arrière dans ce document pour comprendre votre cheminement d'idée!  Tapez quelque chose comme ça dans la fenêtre xterm:

xterm -background blue &

Cette commande devrait avoir eu comme conséquence une autre fenêtre de xterm sautant vers le haut sur votre écran, mais cette fois avec un fond bleu. "Wow," vous dites laconiquement "C'est stupéfiant!" Oui, en effet ça l'est.

Nous aurons besoin de plus de fond d'écran pour notre prochain exemple. Tapez exit dans cet xterm (qui fermera la fenêtre) et retourner de nouveau à la fenêtre originale dans laquelle vous avez tapez cette commande.
Essayer ceci:  maintenez la touche Ctrl et puis maintenez le bouton de souris gauche.
Essayer maintenant cela avec le bouton central de la souris. Maintenant la droite.  Toutes les fenêtres de xterm vous donnent des options à l'essai tandis qu'elles fonctionnent. Avec le bouton droits, par exemple, vous pouvez changer la police de la fenêtre. Noter la couleur de ces menus. Essayer maintenant cet exemple:

 xterm -xrm 'xterm*fontMenu*background: green' &

Cette fois, elle apparaît comme une fenêtre normale de xterm. Mais si vous essayez de maintenir Ctrl et le bouton droit de la souris dans cette fenêtre, vous verra que ce menu (le ``fontMenu ' ' mentionné dans l'exemple ci-dessus) est vert.  Que s'est il produit au juste?  Si vous regardez les pages du man pour xterm, vous verrez beaucoup d'options de ligne de commande, telles que -background ou -font, que vous pouvez placer quand vous lancez n'importe quelle fenêtre donnée dans X, énumérée après les options juste pour des fenêtres xterm. Ces options particulières sont appelées  X Toolkit Options (les options de la boite à outils de X), et elles s'appliquent pour et au sujet de n'importe quoi dans X.

8.2 À l'Intérieur de la Base de Données de Ressource de X Avec Editres

Pour vraiment comprendre l'intérieur des ressources de X, nous devons exécuter editres. Allez-y et lancez le (et un programme d'échantillon pour jouer avec) maintenant:
 xclock &
 editres &
Vous verrez probablement une horloge simple, et l'apparence plutôt innocente de la fenêtre d' editres, blanche la plupart du temps.  La fenêtre principale nous montre l'arbre de ressource de n'importe quelle fenêtre donnée sur notre bureau, et par dessus le lancement de programme, il n'y a rien.  Ainsi  donnons lui en un. Maintenir le bouton gauche sur le menu de commandes, et choisir Get Tree.   Dans le haut de la fenêtre apparaîtra
Click the mouse pointer on any toolkit client
(cliquer le bouton de la souris sur n'importe quel objet de la trousse à outils).
  Ce message est plus que ce qu'il parait, et c'est un conseil pour nous que quoi pas toutes les applications de X sont des clients de toolkit (cependant la plupart des fondamentales le sont, et le programme nous indiquera habituellement s' il n'est pas dans la page du manuelle).  Le curseur de la souris se tournera vers une croix, et vous attend pour cliqueter dessus une autre fenêtre.

Pour cet exemple, cliquons d'abord dessus le xclock.  Vous verrez  un couple de choses apparaître dans la fenêtre d'editres.   Ce sont les branches configurables que la trousse à outils voit.   Cliquer sur le bas droit d'une (clock).  Elle devrait intervertir.   Choisir maintenant "Show Resource Box" à partir des "Commands" menu.  Vous verrez une autre fenêtre sauter vers le haut, avec le titre "xclock.clock.unknown".  Bingo!

D'ici vous pouvez jouet avec les options de configuration de la fenêtre principale de xclock.  D'abord, cliquer dessus "Set Save File" au fond, et mettre dedans un nom de fichier /home/votrenom/resources, pour indiquer que vous examinez certaines des ressources ici.   Cliqueter maintenant dessus le "foreground" et mettez dans "blue" ensuite pour le prompt "Enter Resource Value:". Frapper alors "Apply" au fond.  Les petites entailles des minutes autour de l'horloge devraient tourner au bleu.  Aller au "background" et entrez "navajowhite" (ou quelque couleur que vous préfériez). Appliquer alors cela.  Comme vous pouvez voir, nous pouvons configurer la fenêtre entière juste de cette façon.  Mais si vous deviez essayer de lancer un autre xclock, elle apparaîtrait juste comme celle-ci apparu avant tous les changements.  Nous devons sauver ces changements.

Cliqueter "Save" et puis "Popdown Resource Box" (un nom fantaisiste en effet pour la fonction "Close"!).  Si vous regardez le fichier vous avez juste créé (cat /home/yourname/resources peut-être) verrez toutes ces ressources définies, dans le format correct du toolkit de X, pour votre convenance.  Mais cela nous fait peu bon, pour si vous essayez de lancer un autre xclock, il s'immobilisera sur l'apparence Plain Jane. Aussi voici la dernière et finale étape dans le chargement dans vos ressources:

 xrdb -merge /home/yourname/resources
Cette commande fusionne les ressources que nous avons juste écrites dans la base de données de ressource de X (xrdb) pour votre session de X Window.  Cela signifie que pour toutes les futures invocations des applications de X que nous avons modifiées, nos changements aurons lieu, et resterons liants.  Ainsi si vous lancez un autre xclock, il regardera aussi agréable que vous  l'avez établi en ce moment, chaque fois que vous le lancez.  Faire attention à vous, le xrdb est un programme complexe, et vous pouvez vouloir avoir un regard sur les pages du man avant d'y aller, ou jouer encore plus avec lui. Si vous ajoutiez la modification au .xinitrc énuméré plus tôt dans ce document, pour charger les ressources automatiquement sur le
démarrage de X, vous aurai seulement à devoir vous inquiéter de la commande de xrdb quand vous faites des changements pendant votre session de X.

8.3 L'anatomie Des Ressources de X

Comme vous pouvez voir nous avons trébuché à travers une surabondance d'options de configuration ici.  Cette méthode de configuration X, comme l'a été énoncé, offre des possibilités presque sans limites, et une quantité équivalente de confusion.  Pour obtenir une certaine image de l'étendue des ressources dans les X Toolkit Intrinsics seule, lancer les viewres de programme, et le jouez un peu autour avec lui. Ce programme montre graphiquement l'arbre des ressources dans la bibliothèque de Xt (Xt Library).

Si vous lisez la page du manuel pour X, vous trouverez une définition plutôt obscure de la syntaxe exacte pour définir des ressources qu'elle comprend.  Nous pouvons simplifier un bout de ceci tout à fait et le détruire dans cette définition essentielle de syntaxe:

<program><binding><widget><binding><widget><...><resource>:<value>

Cela ne semble pas vraiment si simple, réellement.  Bien, définissons quelques choses au sujet de ce qui a juste été dit, et
tout commencera à sembler raisonnable après tous.  Vous pouvez jeter un coup d'oeil devant aux exemples dans la prochaine section comme vous lisez le long, si vous voulez.

Le programme dans cette définition est l'invocation d'une application dans la base de données de ressource.  Ce serait XTerm pour une invocation de xterm, des Emacs pour une invocation de l'éditeur de texte d'emacs, ou un nom défini pour l'utilisateur qui a été donné quand les applications ont été lancées avec le -name d'option de ligne de commande.  De cette façon vous pouvez définir les ressources séparées pour les xterms lesquelles seront employés dans différentes méthodes. Ce qui est assez cool, vraiment.

L'attache peut être un de deux caractères pour séparer les widgets et tels.  Si vous employez un . (point), vous obtenez une attache serrée, qui signifie qu'un widget est directement au-dessus ou au-dessous de l'autre dans la hiérarchie de widget.  Ceci a également la priorité la plus élevée des méthodes de spécifications.  Si vous employez une * (astérisque), vous obtenez une
prétendue attache lâche, et vous sauterez tout nombre de widgets dans la hiérarchie, et elle essayera d'assortir le prochain widget possible défini.

Les entrées de widget sont des articles dans l'arbre de widget, par ordre de plus spécifique à moins spécifique, qu'elles
apparaissent dans l'arbre de widget, évident avec des editres. N'importe quelle entrée de simple widget peut également être
remplacée par un ? (point d'interrogation) pour sauter une définition simple de widget, et assortir tout article possible de widget.

L'article de ressource doit être spécifié, et ne peut pas être remplacé par le caractère ? . C'est l'article plus spécifique dans la
hiérarchie, et contient habituellement des articles comme la couleur réelle pour définir, police réelle à définir, et ainsi de suite.  En fait, tout autrement avant que la ressource dans cette définition puisse être omise et remplacée par un astérisque
simple, mais la ressource réelle à définir doit être présente. Si vous mettiez juste un astérisque et le nom plus spécifique de
ressource, tel que le *background: blue, X essayera de définir cette ressource globalement, pour tous ses clients, si possible.

Après les deux points est l'entrée de valeur.  Cette entrée définit ce que la ressource sera placée pour, tel qu'un nom de police
ou une valeur de couleur.  La valeur peut être indiquée (selon le contexte) comme des données booléennes, numériques, ou des type de données textes (chaînes de caractères).  L'entrée de valeur, également, ne peut pas être omise dans une définition valide de ressource.

8.4  Rendant Vos Derniers Changements Avec .Xdefaults

Il y a un fichier magique que vous pouvez mettre dans votre répertoire local appelé Xdefaults. Si vous copiez les lignes dans
le fichier ressources à partir du dernier exemple dans les .Xdefaults dans votre répertoire local, vous n'aurez jamais plus à configurer le xclock encore!  Tandis que ceci ne pourrait pas être l'exemple le plus fin de son utilité, il fait sa remarque.  Ce dossier peut être complètement chargé et surchargé de chaque option que vous préférez pour chaque type de programme vous exécutez dans X, et si vous lui prodigué un soin approprié, vous pourrez toujours facilement y retourner et faire de légers changements quand vous en aurez besoin.  Mais la fabrication des choix des changements, et des recherches découlant des ressources subtiles employés par editres peut être un procédé extrêmement fatigant et soigneux.  En effet, parfois c'est trop de travail, et la plupart de ces ressources vous attendent déjà, au garde-à-vous, groupé par programme, sur votre système.

Dans le répértoire /var/X11R6/lib/app-defaults vous trouverez un grand nombre de fichiers, tous baptisés du nom d'un programme de la trousse à outils de X.  Si vous examinez ces fichiers vous constaterez qu'ils contiennent un grand nombre d'options de configuration pour chacun, et je veux dire un grand nombre!  Vous ne voudriez pas toutes les options de tous les fichiers dans votre fichier Xdefaults, ce serait assomant et tout à fait ennuyeux à traiter.  Ce sont les défaults, et il est de ces derniers que vous pouvez décider ce que vous voudriez voir changé pour votre configuration particulière.

Ce qui suit sont quelques échantillons provenant de mon fichier .Xdefaults. Noter quelques choses que nous n'avons pas encore mentionnées au sujet des dossiers de définition de ressource.  Si une ligne commence par!  (point d'exclamation), on le considère un commentaire, et le reste de la ligne est ignoré.  Si la ligne commence par le nom de fichier de #include filename, cette ligne est une directive d'inclusion, et à ce point dans les ressources un autre dossier sera fusionné, quand il est chargé.  Ceci peut préserver vos dossiers de ressource d'enflé aussi.  Et voici quelques exemples:
 

 ! Default resources for me@localhost xterms
 ! start with the generic, move to the specific...
 *Dialog*Text*font:     -b&h-lucida-medium-r-*-*-12-*-*-*-*-*-*-*
 *dialog*value*background: white
 *Dialog*Label*font:    -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
 *MenuButton*font:      -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
 *MenuButton*background:        grey80
 *MenuButton*foreground:        black
 *Label.font:           -adobe-helvetica-medium-r-*-*-10-*-*-*-*-*-*-*
 *Label*shadowWidth:    1
 *SmeBSB.font:          -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
 *SimpleMenu*font:      -adobe-helvetica-medium-r-*-*-10-*-*-*-*-*-*-*
 *OptionMenu*font:      -adobe-helvetica-medium-r-*-*-10-*-*-*-*-*-*-*
 *Command.font:         -linotype-helvetica-bold-r-narrow-*-12-*-*-*-*-*-*-*
 *commandBox*font:      -b&h-lucida-bold-r-*-*-12-*-*-*-*-*-*-*
 *Toggle.font:          -adobe-helvetica-bold-o-*-*-12-*-*-*-*-*-*-*
 *Form.background:      grey70
 *TransientShell*Dialog.background: grey70
 *Scrollbar.Foreground: grey80
 *Scrollbar.Background: grey50
 *Scrollbar*cursorName: top_left_arrow
 *Scrollbar*width:      16
 *shapeStyle:           Rectangle
 *XlwMenu.shadowThickness: 1
 *shadowWidth:          1
 
 ! xterm stuff
 xterm*scrollbar.background: grey40
 xterm*foreground: grey90
 xterm*background: grey25
 xterm*cursorColor: white
 xterm*visualbell: on
 ! rxvt stuff (a quicker, better xterm)
 rxvt*color12: steelblue
 rxvt*color15: white
 rxvt*color9: rgb:ff/7f/5f
 rxvt*foreground: grey90
 rxvt*background: grey10
 rxvt*cursorColor: white
 rxvt*font: lucidasanstypewriter-12
 rxvt*loginShell: false
 rxvt*saveLines: 1024
 rxvt*title: shell
 rxvt*geometry: 80x25
 ! Make Xman just a little bit more sane
 xman*topBox: false
 xman*background: lightsteelblue
 xman*foreground: black
 ! xcalc is too bland by default...
 xcalc*Command.font: -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
 xcalc*customization: -color
 ! Disallow the <blink> tag in Netscape
 Netscape*blinkingEnabled: False
 
 ! Merge other resources (example)
 # include $HOME/.otherXresources
Un mot d'avertissement en ce qui concerne des ressources de X, pour les utilisateurs de KDE.  Il y a un arrangement dans le panneau de contrôle qui provoquera, la réécriture de toutes vos ressources X, dans vos applications.  Ceci peut être un dispositif vraiment agréable, mais ce peut également être un ennui si vous avez soigneusement configuré vos ressources. Ouvrir le panneau de commande et trouver la section "Fonts etc.".  Il y a une option au modèle de "Apply du style des application non-KDE APP".  Si vous tournez ceci, tous vos programmes adopteront le look et l'ergonomie configuré par KDE (vous pouvez devoir remettre en marche X pour noter ceci).  Si vous laissez cette option arrêtée, vos ressources demeureront comme vous les avez configurées.

8.5 Votre Propre Répertoire De Ressource Utilisateur

Vous pouvez également créer un répertoire de fichiers de ressource, exactement comme le répertoire app-defaults du système étendu mentionné au-dessus, avec un fichier par programme. Créez le répertoire (pour notre exemple nous utiliserons app-defaults sous votre répertoire home) et déterminez alors votre variable d'environnement XAPPLRESDIR pour se diriger vers elle.  Un bon endroit pour placer cette variable serait dans le commencement de votre fichier .xinitrc, par exemple, mettre dans la ligne exportation XAPPLRESDIR=$HOME/app-defaults de ligne (si vos fichiers sont pour aller dans un répertoire app-defaults sous votre répertoire local).

Maintenant, toutes les fois que vous commencez un programme X, ce répertoire sera recherché par un fichier avec le même nom que le nom de ressource du programme, exactement comme répertoire de système étendu. C'est le nom de client que vous avez utilisé dans des fichiers Xdefaults.

Par exemple, un fichier appelé XTerm peut contenir la ligne  *background: gold, et tous vos xterms pourront, par défaut, se manifester avec un arrière fond couleur or.  C'est une alternative agréable pour un  simple fichier .Xdefaults, et le faire plus clairement lorsque essayant de décider quels arrangements à configurer plus tard, et pour trouver ceux pour un certain programme.  Il restent des utilisations pour les .Xdefaults, cependant.  Il est utile pour placer des ressources non liées à un
simple programme, comme les modifications que vous feriez pour tourner tout le certain genre de bleu de bouton, sans se soucier de l'application.