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).
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.
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îtraxclock &
editres &
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:
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 lexrdb -merge /home/yourname/resources
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.
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:
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.! 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
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.