Οπως αναφέρθηκε και στην εισαγωγή τα resources είναι δεδομένα που χρησιμοποιούνται από τις διάφορες εφαρμογές - πελάτες των X Windows για να ορίσουν την εμφάνιση και την συμπεριφορά τους. Η χρήση τους στο σύστημα των X Windows είναι πολύ διαδομένη γιατί προσφέρουν ένα εύκολο και δυνατό τρόπο μορφοποιήσης και των διαφόρων πελατών σύμφωνα με τις ανάγκες του κάθε χρήστη και της κάθε περίστασης.
Ο ορισμός των resources μπορεί να γίνει με διάφορους τρόπους. Οι σημαντικότεροι και πιο συνήθεις είναι οι εξής:
Α. Μέσω των διαφόρων παραμέτρων στην γραμμή εισαγωγής. Ολα τα προγράμματα που γράφονται για τα X Windows ακολουθούν μία κοινή τακτική όσο αφορά τον τρόπο επικοινωνίας τους με το χρήστη. Ετσι και κατά την εκκίνησή τους από το shell μπορούν να πάρουν κάποιες παραμέτρους οι οποίες αναφέρονται σε συγκεκριμένα resources. Οι παράμετροι αυτές, καθώς και η σύνταξή τους, είναι ίδιες σε όλα τα προγράμματα και μπορούν να καθορίσουν χαρακτηριστικά όπως τα χρώματα που θα χρησιμοποιεί η εφαρμογή, το μέγεθος του παραθύρου της ή άλλα ιδιαίτερα χαρακτηριστικά. Για παράδειγμα η εντολή:
xterm -bg Black -fg White -geometry 80x40 &θα ξεκινήσει ένα παράθυρο τερματικό το οποίο θα έχει μαύρο χρώμα για φόντο
(background color)
και άσπρο χρώμα για να γράφει (foreground color)
, ενώ το
παράθυρο θα έχει εκατό στήλες πλάτος και ογδόντα γραμμές ύψος. Αναλυτική
περιγραφή των τυπικών παραμέτρων των πελάτων των X Windows γίνεται στην
αντίστοιχη παράγραφο του ιδίου κεφαλαίου.
Β. Μέσω διαφόρων αρχείων που περιέχουν τις προτιμήσεις του χρήστη και φορτώνονται αυτόματα είτε κατά την εκκίνηση των X Windows είτε κατά την εκκίνηση του κάθε πελάτη ξεχωριστά.
Το βασικότερο από τα αρχεία αυτά είναι το .Xdefaults
το οποίο βρίσκεται στο
home directory
του χρήστη. Οπως είδαμε και στην παράγραφο για την εκκίνηση
των X Windows το αρχείο αυτό το αναζητούν τα αρχεία .xinitrc και .x11start
και σε περίπτωση που δεν το βρουν χρησιμοποιούν το αρχείο
/usr/lib/X11/sys.Xdefaults
. Τα στοιχεία δηλαδή, του .Xdefaults
φορτώνονται
στο σύστημα κατά την εκκίνηση των X Windows και γι' αυτό αποτελούν στη
συνέχεια σημείο αναφοράς για κάθε πελάτη τους που ξεκινά. Ετσι στο
.Xdefaults
συνήθως περιέχονται resources που θέλουμε να ισχύουν γενικά για
όλους τους πελάτες των X Windows αλλά και resources για κάθε εφαρμογή
ειδικότερα. Τα resources που αναφέρονται σε ένα συγκεκριμένο πρόγραμμα των X
Windows, όπως το xclock
, μπορούν να φυλαχτούν ξεχωριστά σε ένα αρχείο με το
όνομα .xclockrc
στο home directory του χρήστη. Ομοίως μπορούν να φυλαχτούν
σε ένα ξεχωριστό directory,το app-defaults
, με όνομα ίδιο με το όνομα του
πελάτη, δηλαδή xclock
. Το directory app-defaults
πρέπει να βρίσκεται και
αυτό στο home directory
του χρήστη.
Ο μηχανισμός που ακολουθείται για την απονομή των διαφόρων τιμών των
resources σε κάθε πελάτη των X Windows είναι ο εξής: κατά την εκκίνηση των X
Windows δημιουργείται ένας βασικός πυρήνας με resources χρησιμοποιώντας τις
εξ ορισμού τιμές που διαθέτει ο εξυπηρετητής και τις τιμές που ορίζονται στο
αρχείο .Xdefaults
. Ο πυρήνας αυτός ονομάζεται χαρακτηριστικά
RESOURCE_MANAGER
property και αποτελεί το σημείο αναφορας για κάθε νέο
πελάτη που θα ξεκινήσει στα X Windows.
Αναλυτικότερα, το κάθε πρόγραμμα που θα φορτωθεί και θα χρησιμοποιήσει για
την μορφοποίησή του τις τιμές των resources που ορίστηκαν στο αρχείο
.Xdefaults
, στη συνέχεια θα κοιτάξει αυτόματα για τα αρχεία .*rc
ή
app-defaults/*
στο home directory
του χρήστη ή στο directory
/usr/lib/X11
και θα χρησιμοποιήσει και τους ορισμούς που περιέχονται στα αρχεία αυτά.
Πρέπει να σημειωθεί ότι οι τιμές των resources στο αρχείο .Xdefaults
υπερισχύουν των αντίστοιχων τιμών που τυχόν υπάρχουν στα αρχεία .*rc
ή
app-defaults/*
.
Γ. Μέσω του προγράμματος xrdb
. To πρόγραμμα xrdb τροποποιεί τον βασικό
πυρήνα των resources (RESOURCE_MANAGER property)
. Χρησιμοποιείται κατά την
εκκίνηση των X Windows (στα .xinit
και .x11start
) για να περάσουν οι τιμές
του .Xdefaults
στο σύστημα:
xrdb ~/.Xdefaults ...Στη συνέχεια κατά την λειτουργία των X Windows το
xrdb
είναι το μόνο
πρόγραμμα που μπορεί να τροποποιήσει τις αρχικές αυτές τιμές. Η σύνταξη του
προγράμματοs είναι:
xrdb [options] [filename]Οι κυριότερες επιλογές
(options)
που προσφέρει είναι οι εξής:
(host)
και το display
του
εξυπηρετητή στον οποίο θέλουμε να αναφερθούμε.
xrdb
τυπώνει στην οθόνη τα περιεχόμενα του
RESOURCE_MANAGER property
του εξυπηρετητή. Με τον τρόπο αυτό δηλαδή,
μπορούμε να δούμε και να μελετήσουμε τις παρούσες τιμές των resources.
(filename)
στο
RESOURCE_MANAGER property
αντικαθιστώντας τις υπάρχουσες τιμές. Το αρχείο
είναι του ίδιου τύπου με το αρχείο .Xdefaults
. Η συγκεκριμένη επιλογή είναι
αυτή που χρησιμοποιεί εξ ορισμού το πρόγραμμα αν δεν του δώσουμε καμία άλλη.
RESOURCE_MANAGER property
το οποίο
επανέρχεται στις εξ ορισμού τιμές του.
RESOURCE_MANAGER property
στο
αρχείο που ορίζουμε.
.Xdefaults
και τα λοιπά του τύπου του
μπορούν να κάνουν χρήση των εντολών του προεπεξεργαστή της C, όπως είναι οι
#include
, #define, #if - #else
κτλ. Με τον τρόπο αυτό τα αρχεία με τα
resources μπορούν να γίνουν ευέλικτα και αντιμετωπίσουν καταστάσεις όπως
ποικιλία μηχανημάτων, έγχρωμων και μονόχρωμων οθονών κ.ο.κ. Εξ ορισμού το
xrdb χρησιμοποιεί τον προεπεξεργαστή cpp
.
xrdb
παίρνει ως παραμέτρους και τις παραμέτρους
ενός τυπικού προεπεξεργαστή της C (βλ. CPP). Τέτοιες είναι οι:
(symbols)
του προεπεξεργαστή που ορίζονται
στο εισαγόμενο αρχείο.
xrdb -DCOLOR_MONITOR .Xdefaultsορίζει το σύμβολο
COLOR_MONITOR
. Με κατάλληλη χρήση του συμβόλου αυτού και
των εντολών #ifdef
κτλ. στο αρχείο .Xdefaults
μπορούμε να ενεργοποιήσουμε τα
resources μόνο εκείνα που αναφέρονται σε έγχρωμες οθόνες.
#include
του προς εισαγωγή αρχείου.