Xdefaults
Der richtige Titel für diesen Artikel lautet .Xdefaults. Dies ist aus technischen Gründen derzeit jedoch nicht möglich.
Xdefaults ist eine versteckte Datei auf Benutzerebene, die sich üblicherweise in ~/.Xdefaults befindet. Wenn sie existiert wird sie vom xrdb (X Resource Database) Programm automatisch, wenn Xorg gestartet wird, analysiert. Sie kann benutzt werden um Einstellungen für X und X Anwendungen zu setzen oder zu überschreiben. Sie kann vieles, u.a.:
- Terminal Farben definieren
- Terminal Einstellungen konfigurieren
- DPI, Antialiasing, Hinting und ander X Schrift Einstellungen definieren
- Das Xcursor-Motiv setzen
- Xscreensaver-Motiv setzen
- Die Einstellungen für Tief-Level X Anwendungen (xclock, xpdf etc.) setzen
Erste Schritte
.Xdefaults erstellen
Die Datei ~/.Xdefaults existiert nicht von Anfang an. Um sie zu erstellen muss man das Terminal öffnen und das Folgende als normaler Benutzer tippen:
$ touch ~/.Xdefaults
Die leere Textdatei kann man nun mit dem Text Editor der Wahl editieren.
Voreinstellungen
Um die Voreinstellungen für die installierten X11 Anwendungen zu sehen kann man in /usr/share/X11/app-defaults/ reinschauen.
Xdefaults Syntax
Die grundlegende Syntax
Die grundlegende Syntax von einer Xdefaults Datei ist folgende:
name.Class.resource: value
...und ein Beispiel aus der echten Welt:
xscreensaver.Dialog.headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
name: Der Name der Anwendung, z.b. xterm, xpdf, etc.
class: Die Klassifikation um Ressourcen zusammen zu gruppieren. Klassifikationen sind normalerweise groß geschrieben.
resource: Der Name von der Ressource, deren Wert geändert wird. Ressourcen sind normalerweise klein geschrieben mit groß geschriebenen Verkettungen.
value: Der Wert der Ressource. Das ist eines von dreien:
- Ganze Zahl
- Wahr oder Falsch (true/false, yes/no, on/off)
- String (zum Beispiel das Wort (white), die Farbe (#ffffff), oder ein Pfad (/usr/bin/firefox))
delimiters: Eine Periode (.) wird benutzt um jeden Schritt welchen man die Hierarchie runter geht anzudeuten -- im oberen Beispiel haben wir mit name gestartet, sind dann weiter runter in class und schlussendlich in die resource selbst gelangt. Ein Doppelpunkt hält die Deklaration der Ressource vom eigentlichen Wert auseinander.
Wildcards einsetzen
Sternchen können als Wildcard benutzt werden, um es einfacher zu machen eine Regel für verschiedene Anwendungen oder Elemente gelten zu lassen.
Mit dem vorherigen Beispiel, wenn man die gleiche Schrift für alle Programme (nicht nur xscreensaver), die einen class name Dialog mit einem resource name headingFont enthalten, haben will, dann würde man schreiben:
*Dialog.headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
Wenn man die gleiche Regeln für alle Programme, welche die Resource headingFond unabhängig von Klasse anwenden will, dann würde man schreiben:
*headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
Auskommentieren
Um einen Kommentar in eine Xdefaults Datei einzufügen muss man ihn einfach mit einem (!) am Anfang versehen, z.B.:
! Das ist ein Kommentar über irgendwelche Xft Einstellungen xft.dpi: 96 ! Das ist ein Kommentar in der Linie
! Die folgende Regel wird nicht beachtet werden, da sie auskommentiert ist: !xft.antialias: true
Benutzungs-Beispiele
Die folgenden Beispiele sollen ein gutes Verständnis geben wie Einstellungen für Anwendungen mit Xdefaults modifiziert werden können. Mehr Details gibt die man Seite von der betreffenden Anwendung.
Datei Kopf
Falls man will kann man der ~./Xdefaults Datei einen Kopf hinzufügen, der nicht nur die Inhalte erklärt, sondern auch vim erklärt, wie der Text zu färben und zu formatieren ist. Zum Beispiel:
! ---------------------------------------------------------------------------- ! file: ~/.Xdefaults ! author: Thayer Williams - http://cinderwick.ca ! modified: November 2008 ! vim:enc=utf-8:nu:ai:si:et:ts=4:sw=4:ft=xdefaults: ! ----------------------------------------------------------------------------
Das instruiert vim UTF-8 zu benutzen, Liniennummer anzuzeigen, automatisch Einzurücken, tabs zu Leerschlägen auszudehnen, tabs mit 4 Leerschlägen gleichzusetzen und den autocommand Dateityp auf "xdefaults" zu setzen.
Es ist eine gute Gewohnheit, besonders wenn man seine verstecken Dateien öffentlich zugänglich machen will.
Terminal Farben
Die meisten Terminals, auch xterm unbd uxrvtm unterstützen mindestens 16 Grundfarben. Das folgende Schema ist ein solches aus 16 Farben.
Die Farben 0-7 sind die 'normalen' Farben, währen die Farben 8-15 ihre 'aufgehellten' Versionen sind (für Highlighten u.s.w.)
! terminal colors ------------------------------------------------------------ ! tangoesque scheme *background: #111111 *foreground: #babdb6 ! Black (not tango) + DarkGrey *color0: #000000 *color8: #555753 ! DarkRed + Red *color1: #ff6565 *color9: #ff8d8d ! DarkGreen + Green *color2: #93d44f *color10: #c8e7a8 ! DarkYellow + Yellow *color3: #eab93d *color11: #ffc123 ! DarkBlue + Blue *color4: #204a87 *color12: #3465a4 ! DarkMangenta + Mangenta *color5: #ce5c00 *color13: #f57900 !DarkCyan + Cyan (both not tango) *color6: #89b6e2 *color14: #46a4ff ! LightGrey + White *color7: #cccccc *color15: #ffffff
Für mehr Beilspiele von Farbschemen kann man sich die Other Resources Sektion am Ende dieses Artikels anschauen.
Desktop Einstellungen
Xcursor Einstellungen
Setze das Motiv und die Größe des Mauszeigers:
! Xcursor -------------------------------------------------------------------- Xcursor*theme: Vanilla-DMZ-AA Xcursor.size: 22
Mögliche Motive sind in /usr/share/icons und Motive vom Benutzer können in ~/.icons kopiert werden.
Xft Schrift Einstellungen
Man kann grundlegende Schrift Einstellungen ohne eine font.conf Datei oder eine Desktopumgebung machen. Aber, die Benutzung von einer Desktopumgebung und/oder fonts.conf kann diese Einstellungen überschreiben. Die beste Option ist das eine oder das andere zu benutzen, aber nicht beides gleichzeitig.
! Xft settings --------------------------------------------------------------- Xft.dpi: 96 Xft.antialias: true Xft.rgba: rgb Xft.hinting: true Xft.hintstyle: hintslight
xterm Einstellungen
Dies wird Xterm in einem 80x25 Zeichen großen Fenster mit einer Scroll-Leiste und einer Scroll-Möglichkeit für die letzten 512 Zeilen öffnen.
Der spezifizierte Terminus facename ist eine verbreitete Terminal Schriftart.
! xterm ---------------------------------------------------------------------- xterm*geometry: 80x25 xterm*faceName: terminusbold:pixelsize=14 !xterm*font: -*-dina-medium-r-*-*-16-*-*-*-*-*-*-* xterm*dynamicColors: true xterm*utf8: 2 xterm*eightBitInput: true xterm*saveLines: 512 xterm*scrollTtyKeypress: true xterm*scrollTtyOutput: false xterm*scrollBar: true xterm*rightScrollBar: true xterm*loginShell: true xterm*jumpScroll: true xterm*multiScroll: true xterm*toolBar: false
urxvt Einstellungen
Rxvt-unicode enthält eine ausgiebige Liste von Optionen, welche vie Xdefaults konfiguriert werden können. Für Details die urxvt man Seite anschauen.
! rxvt-unicode --------------------------------------------------------------- ! font preference urxvt*font: -*-terminus-*-*-*-*-*-*-*-*-*-*-*-* urxvt*boldFont: -*-terminus-*-*-*-*-*-*-*-*-*-*-*-* !initial size urxvt*geometry: 120x35 !internal whitespace urxvt*internalBorder: 5 !fade text n% upon unfocus urxvt*fading: 20 !darken=(0 to 100) lighten=(-1 to -100) urxvt*shading: 30 !tint background with this color urxvt*tintColor: black !set to 32-bit for real transparency (compositing required) !urxvt*depth: 24 !save n lines of scrollback buffer urxvt*saveLines: 32767 !flash screen for attention urxvt*visualBell: true !jump to bottom (prompt) on keypress urxvt*scrollTtyKeypress: true !jump to bottom (prompt) when tty gets new lines urxvt*scrollWithBuffer: false !jump to bottom (prompt) on tty output urxvt*scrollTtyOutput: false !toggle scrollbar urxvt*scrollBar: false !scrollbar styles: rxvt, plain, next or xterm urxvt*scrollstyle: plain !scrollbar alignment urxvt*scrollBar_right: true urxvt*scrollColor: #777777 urxvt*cursorColor: #ffcc00 !is this a login shell? urxvt*loginShell: true !set the TERM environment variable urxvt*termName: rxvt-unicode !enable pseudo-transparency (requires depth: 24 (see above)) urxvt*inheritPixmap: true !delimiters for double-click mouse selection urxvt*cutchars: "()*,<>[]{}|' !screen dump settings urxvt*print-pipe: cat > $(echo urxvt.dump.$(date +'%Y%M%d%H%m%S')) !secondary screen scroll (default enabled) urxvt*secondaryScroll: true !de-iconify (map) on receipt of a bell character urxvt*mapAlert: true !inhibit writing record into the system log file utmp urxvt*utmpInhibit: true !! BEGIN urlLauncher settings !! urxvt*perl-lib: /usr/lib/urxvt/perl/ urxvt*perl-ext-common: default,matcher urxvt*urlLauncher: /usr/bin/firefox urxvt*matcher.button: 1 !! END urlLauncher settings !! !transparent=0000 opaque=ffff urxvt*background: rgba:1111/1111/1111/dddd
aterm Einstellungen
Beispielseinstellungen für aterm (sehr ähnlich wie urxvt)
!aterm settings------------------------------------------------------------- aterm*background: black aterm*foreground: white aterm*transparent: true aterm*shading: 30 aterm*cursorColor: gray aterm*saveLines: 2000 !aterm*tinting: gray aterm*scrollBar: false !aterm*scrollBar_right: true aterm*transpscrollbar: true aterm*borderwidth: 0 aterm*font: -*-terminus-*-*-*-*-*-*-*-*-*-*-*-* aterm*geometry: 80x25 !aterm*fading: 70
xpdf Einstellungen
Einige Grundeinstellungen für Xpdf, einen leichtes PDF Betrachtungsprogramm:
! xpdf ----------------------------------------------------------------------- xpdf*enableFreetype: yes xpdf*antialias: yes xpdf*foreground: black xpdf*background: white xpdf*urlCommand: /usr/bin/firefox %s
Detailiertere Anweisungen sollte man in ~/.xpdfrc reinschreiben. Die xpdf man Seite hilft weiter. Bemerkung: viKeys ist veraltet. Anything more detailed than the above you should be putting in ~/.xpdfrc instead. See xpdf man page for more info.
lal Uhr
! lal clock ------------------------------------------------------------------ lal*font: Arial lal*fontsize: 12 lal*bold: true lal*color: #ffffff lal*width: 150 lal*format: %a %b %d %l:%M%P
xclock Einstellungen
Grundlegende xclock Einstellungen. Die xclock man Seite hilft für alle X sachen weiter.
! xclock --------------------------------------------------------------------- xclock*update: 1 xclock*analog: false xclock*Foreground: white xclock*background: black
x11-ssh-askpass
! x11-ssh-askpass ------------------------------------------------------------ x11-ssh-askpass*font: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* x11-ssh-askpass*background: #000000 x11-ssh-askpass*foreground: #ffffff x11-ssh-askpass.Button*background: #000000 x11-ssh-askpass.Indicator*foreground: #ff9900 x11-ssh-askpass.Indicator*background: #090909 x11-ssh-askpass*topShadowColor: #000000 x11-ssh-askpass*bottomShadowColor: #000000 x11-ssh-askpass.*borderWidth: 1
xscreensaver Aussehen
Ein Beispiel eines Xscreensaver Motivs. Für mehr Information kann man die xscreensaver man Seite anschauen.
! xscreensaver --------------------------------------------------------------- !font settings xscreensaver.Dialog.headingFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* xscreensaver.Dialog.bodyFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* xscreensaver.Dialog.labelFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* xscreensaver.Dialog.unameFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* xscreensaver.Dialog.buttonFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* xscreensaver.Dialog.dateFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* xscreensaver.passwd.passwdFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* !general dialog box (affects main hostname, username, password text) xscreensaver.Dialog.foreground: #ffffff xscreensaver.Dialog.background: #111111 xscreensaver.Dialog.topShadowColor: #111111 xscreensaver.Dialog.bottomShadowColor: #111111 xscreensaver.Dialog.Button.foreground: #666666 xscreensaver.Dialog.Button.background: #ffffff !username/password input box and date text colour xscreensaver.Dialog.text.foreground: #666666 xscreensaver.Dialog.text.background: #ffffff xscreensaver.Dialog.internalBorderWidth:24 xscreensaver.Dialog.borderWidth: 20 xscreensaver.Dialog.shadowThickness: 2 !timeout bar (background is actually determined by Dialog.text.background) xscreensaver.passwd.thermometer.foreground: #ff0000 xscreensaver.passwd.thermometer.background: #000000 xscreensaver.passwd.thermometer.width: 8 !datestamp format--see the strftime(3) manual page for details xscreensaver.dateFormat: %I:%M%P %a %b %d, %Y
xcalc Einstellungen
Gewisse xcalc Einstellungen, um Knöpfe zu färben und anzupassen.
!xcalc----------------------------------------------------------------------- xcalc*geometry: 200x275 xcalc.ti.bevel.background: #111111 xcalc.ti.bevel.screen.background: #000000 xcalc.ti.bevel.screen.DEG.background: #000000 xcalc.ti.bevel.screen.DEG.foreground: LightSeaGreen xcalc.ti.bevel.screen.GRAD.background: #000000 xcalc.ti.bevel.screen.GRAD.foreground: LightSeaGreen xcalc.ti.bevel.screen.RAD.background: #000000 xcalc.ti.bevel.screen.RAD.foreground: LightSeaGreen xcalc.ti.bevel.screen.INV.background: #000000 xcalc.ti.bevel.screen.INV.foreground: Red xcalc.ti.bevel.screen.LCD.background: #000000 xcalc.ti.bevel.screen.LCD.foreground: LightSeaGreen xcalc.ti.bevel.screen.LCD.shadowWidth: 0 xcalc.ti.bevel.screen.M.background: #000000 xcalc.ti.bevel.screen.M.foreground: LightSeaGreen xcalc.ti.bevel.screen.P.background: #000000 xcalc.ti.bevel.screen.P.foreground: Yellow xcalc.ti.Command.foreground: White xcalc.ti.Command.background: #777777 xcalc.ti.button5.background: Orange3 xcalc.ti.button19.background: #611161 xcalc.ti.button18.background: #611161 xcalc.ti.button20.background: #611111 !uncomment to change label on division button !xcalc.ti.button20.label: / xcalc.ti.button25.background: #722222 xcalc.ti.button30.background: #833333 xcalc.ti.button35.background: #944444 xcalc.ti.button40.background: #a55555 xcalc.ti.button22.background: #222262 xcalc.ti.button23.background: #222262 xcalc.ti.button24.background: #222272 xcalc.ti.button27.background: #333373 xcalc.ti.button28.background: #333373 xcalc.ti.button29.background: #333373 xcalc.ti.button32.background: #444484 xcalc.ti.button33.background: #444484 xcalc.ti.button34.background: #444484 xcalc.ti.button37.background: #555595 xcalc.ti.button38.background: #555595 xcalc.ti.button39.background: #555595 XCalc*Cursor: hand2 XCalc*ShapeStyle: rectangle
Farb-Schema Scripte
Alle folgenden Scripte werden ein Diagramm mit den momentan gesetzten Terminal Farben zeigen. Gut zum testen und ähnliches.
Script #1
#!/bin/bash # # This file echoes a bunch of color codes to the # terminal to demonstrate what's available. Each # line is the color code of one forground color, # out of 17 (default + 16 escapes), followed by a # test use of that color on all nine background # colors (default + 8 escapes). # T='gYw' # The test text echo -e "\n 40m 41m 42m 43m\ 44m 45m 46m 47m"; for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \ '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \ ' 36m' '1;36m' ' 37m' '1;37m'; do FG=${FGs// /} echo -en " $FGs \033[$FG $T " for BG in 40m 41m 42m 43m 44m 45m 46m 47m; do echo -en "$EINS \033[$FG\033[$BG $T \033[0m"; done echo; done echo
Script #2
#!/bin/bash # Original: http://frexx.de/xterm-256-notes/ # http://frexx.de/xterm-256-notes/data/colortable16.sh # Modified by Aaron Griffin # and further by Kazuo Teramoto FGNAMES=(' black ' ' red ' ' green ' ' yellow' ' blue ' 'magenta' ' cyan ' ' white ') BGNAMES=('DFT' 'BLK' 'RED' 'GRN' 'YEL' 'BLU' 'MAG' 'CYN' 'WHT') echo " ┌──────────────────────────────────────────────────────────────────────────┐" for b in $(seq 0 8); do if [ "$b" -gt 0 ]; then bg=$(($b+39)) fi echo -en "\033[0m ${BGNAMES[$b]} │ " for f in $(seq 0 7); do echo -en "\033[${bg}m\033[$(($f+30))m ${FGNAMES[$f]} " done echo -en "\033[0m │" echo -en "\033[0m\n\033[0m │ " for f in $(seq 0 7); do echo -en "\033[${bg}m\033[1;$(($f+30))m ${FGNAMES[$f]} " done echo -en "\033[0m │" echo -e "\033[0m" if [ "$b" -lt 8 ]; then echo " ├──────────────────────────────────────────────────────────────────────────┤" fi done echo " └──────────────────────────────────────────────────────────────────────────┘"
Script #3
#!/bin/bash # Original: http://frexx.de/xterm-256-notes/ # http://frexx.de/xterm-256-notes/data/colortable16.sh # Modified by Aaron Griffin # and further by Kazuo Teramoto FGNAMES=(' black ' ' red ' ' green ' ' yellow' ' blue ' 'magenta' ' cyan ' ' white ') BGNAMES=('DFT' 'BLK' 'RED' 'GRN' 'YEL' 'BLU' 'MAG' 'CYN' 'WHT') echo " ----------------------------------------------------------------------------" for b in $(seq 0 8); do if [ "$b" -gt 0 ]; then bg=$(($b+39)) fi echo -en "\033[0m ${BGNAMES[$b]} : " for f in $(seq 0 7); do echo -en "\033[${bg}m\033[$(($f+30))m ${FGNAMES[$f]} " done echo -en "\033[0m :" echo -en "\033[0m\n\033[0m : " for f in $(seq 0 7); do echo -en "\033[${bg}m\033[1;$(($f+30))m ${FGNAMES[$f]} " done echo -en "\033[0m :" echo -e "\033[0m" if [ "$b" -lt 8 ]; then echo " ----------------------------------------------------------------------------" fi done echo " ----------------------------------------------------------------------------"
Andere .Xdefaults
Einige Beispiele (bereitgestellt von verschiedenen Communitymitgliedern).
- http://dotfiles.org/~buttons/.Xdefaults
- http://code.suckless.org/hg/dextra/file/513faba2591f/dolby/Xdefaults
- http://github.com/stxza/arch-linux-configs/tree/master/.Xdefaults
- http://dotfiles.org/~wraith/.Xdefaults
- http://dotfiles.org/~tdy/.Xdefaults
- http://github.com/jelly/dotfiles/tree/master/.Xdefaults
Andere Ressourcen
- Terminal Color Schemes – eine Galerie von Terminal-Farbschemen von Aaron Griffin
- TIP Linux Colors in Aterm/rxvt – Ein Gentoo-Wiki-Artikel mit vielen Information
- Using the Xdefaults File – Ein tiefgründiger Artikel darüber wie X die Xdefaults-Datei interpretiert
- Rxvt-unicode Configuration Tutorial – Viele Information für urxvt-Benutzer
- Available Colors and their names – Eine Auflistung von vorhandenen Farben und ihren Farbnamen für xterm und andere X-Anwendungen