News | About | Get Frugalware | Packages | Documentation | Discussion Forums | Bug Tracker | Wiki | Community | Development

Xdefaults (Français)

From FrugalWiki

Jump to: navigation, search


Xresources et Xdefaults sont des fichiers de configuration, dotfiles de niveau utilisateur, situés à ~/.Xresources et ~/.Xdefaults. Ils peuvent être utilisés pour régler ou remplacer les préférences pour les applications X et X. Ils peuvent faire de nombreuses opérations, notamment:

- définir les couleurs du terminal

- configurer les préférences du terminal

- Régler le DPI, l'antialiasing, hinting and autres réglages de polices de X

- changer le thème de Xcursor

- Personnaliser xscreensaver

- Modifier les préferences de bas niveau des applications sous X (xclock, xpdf, etc.)

Lorsque ~/.Xresources est présent, il sera analysé par le programme xrdb (Xorg resource database) automatiquement quand Xorg se lance, et vous devez relancer xrdb ~/.Xresources à chaque fois que vous modifier le fichier. Si vous n'utilisez pas d'Environnements de Bureau, vous devez ajouter

xrdb -merge ~/.Xresources

à votre xinitrc. Utiliser ~/.Xresources stocke les ressources dans le serveur X, le fichier n'a pas besoin d'être relu à plusieurs reprises et il travaille pour des clients X à distance aussi. Le fichier ~/.Xdefaults est lu à chaque fois que vous lancez un programme X comme xterm — mais seulement si xrdb n'a jamais été utilisé durant la session actuelle de X. [1]

Contents

Mise en place

Créer .Xdefaults

Le fichier ~/.Xdefaults n'existe pas par défaut. Pour le créer, taper la commande suivante en tant qu'utilisateur:

User terminal 48px.png
$ touch ~/.Xdefaults

Étant un fichier texte, ~/.Xdefaults peut être édité par l'éditeur de votre choix.

Réglages par défaut

Pour voir les réglages par défaut de vos applications X installées, regardez dans /usr/share/X11/app-defaults/.

Syntaxe Xdefaults

Syntaxe basique

La syntaxe de Xdefaults est de type:

name.Class.resource: value

Voici un exemple:

xscreensaver.Dialog.headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
name
Le nom de l'application, comme xterm, xpdf, etc
class
La classification utilisée aux ressources regroupées. Les noms de classe sont généralement en majuscule
resource
Le nom de la ressource dont la valeur doit être changé. Les ressources sont généralement minuscules avec la concaténation en majuscule
value
La valeur actuelle de la ressource. Elle peut être de 1 à 3 sortes:
  • Integer (nombre entier)
  • Boolean (true/false, yes/no, on/off)
  • String (une chaine de caractères) (par exemple un mot (white), une couleur (#ffffff), ou un chemin (/usr/bin/firefox))
delimiters
Une période (.) est utilisée pour signifier les étapes -- Dans l'exemple ci-dessus, on commence par le nom, puis la classe et enfin la ressource en elle même. Deux points (:) sert à séparer la déclaration de la ressource et sa valeur.

Jokers

L'asterisque peut être utiliser comme un joker, rendant plus aisé l'écriture d'une régle qui doit s'appliquer à plusieurs applications ou éléments.

En reprenant l'exemple précédant, si vous voulez appliquer la même police pour tous les programmes ( et pas seulement xscreensaver ) qui contiennent la class name Dialog et la resource name headingFont, vous pourriez écrire :

*Dialog.headingFont:     -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1

Si vous voulez appliquer cette même règle à tous les programmes qui contiennent la resource headingFont, sans mention de sa classe, vous pourriez écrire :

*headingFont:    -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1

Commenter

Pour ajouter un commentaire à votre fichier Xdefaults, préfixez le d'un point d'exclamation (!), par exemple:

! This is a comment placed above some Xft settings
xft.dpi:       96      ! this is an inline comment
! The following rule will be ignored because it has been commented out
!xft.antialias:        true

Example d'utilisation

Les exemples suivants devraient fournir une bonne compréhension de la façon dont les paramètres d'application peuvent être modifiées en utilisant un fichier Xdefaults. Pour plus de détails, reportez-vous à la page de manuel de la demande en question.

Header du fichier

Si vous le souhaitez, vous pouvez ajouter en-tête de ~/.Xdefaults qui explique non seulement le contenu du fichier, mais aussi indiquer à vim la façon d'effectuer la coloration syntaxique et un autre formatage. Par exemple:

! ----------------------------------------------------------------------------
! 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:
! ----------------------------------------------------------------------------

Cela indique à vim d'utiliser UTF-8, de mettre les numéros de ligne d'affichage, l'indentation automatique, smart-tiret, les tabulations en espaces, définir des tabulations de 4 espaces, et régler l' autocommand File Type à "Xdefaults".

C'est une bonne habitude à prendre, surtout si vous souhaitez mettre votre dotfiles disponible au public.


Couleurs du terminal

La plupart des terminaux, incluant xterm and urxvt, supportent au moins 16 couleurs basiques. L'exemple suivant est un thème de 16 couleurs.

Les couleurs 0-7 sont les couleurs 'normales', alors que celles de 8-15 sont leur pendant 'vifs' (utiles pour le highlighting, etc.)

! 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

Pour plus d'exemples de thèmes, allez à la section #Ressources en bas de cet article.

Préférences du bureau

Réglages de Xcursor

Régler le thème et la taille de votre curseur de souris:

! Xcursor --------------------------------------------------------------------

 Xcursor.theme: Vanilla-DMZ-AA
 Xcursor.size:  22

Des thèmes sont disponibles dans /usr/share/icons et des thèmes locaux peuvent être installés dans ~/.icons.

Réglages des polices Xft

Vous pouvez définir les paramètres de police de base sans avoir besoin d'un fonts.conf ou environnement de bureau. Notez cependant, l'utilisation d'un environnement de bureau et / ou fonts.conf peut remplacer ces paramètres. Votre meilleure option est d'utiliser l'un ou l'autre, mais pas les deux.

! Xft settings ---------------------------------------------------------------

Xft.dpi:        96
Xft.antialias:  true
Xft.rgba:       rgb
Xft.hinting:    true
Xft.hintstyle:  hintslight

Préférences xterm

Cela ouvrira une fenêtre Xterm en caractères 80x25 avec un barre de défilement et faites défiler la capacité pour les 512 dernières lignes.

La police Terminus est une populaire police de terminal.

! 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*jumpScroll:         true
xterm*multiScroll:        true
xterm*toolBar:            false

Préférences urxvt

Rxvt-unicode dispose d'une longue liste d'options qui peuvent être configurées via Xdefaults. Reportez-vous à la documentation d'urxvt pour plus de détails.

! 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
!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

Préférences aterm

Exemple de paramètres pour aterm (très similaire à 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  

Préférences xpdf

Quelques réglages basiques pour xpdf, un visualisateur léger de Pdf:

! xpdf -----------------------------------------------------------------------

xpdf*enableFreetype:    yes
xpdf*antialias:         yes
xpdf*foreground:        black
xpdf*background:        white
xpdf*urlCommand:        /usr/bin/firefox %s

Pour les paramètres autre que détaillé dans ce qui précède, vous devriez le placer dans ~/.xpdfrc. Voir la page de man de xpdf pour plus d'information. Note: viKeys is deprecated.

Horloge lal

! 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

Préférences xclock

Quelques réglages basiques pour xclock. Voir la man page de xclock pour voir toutes les ressources X.

 ! 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

Thèmes xscreensaver

Un exemple de thème xscreensaver. Pour plus d'information, référez vous à la man page de xscreensaver.

! 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

Préférences xcalc

Quelques réglages pour coloriser xcalc et personnaliser les boutons.

!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

Commandes pour thèmes de couleur

Commandes BASH rapides, que vous pouvez exécuter directement dans votre shell.

Énumérer les couleurs supportées par le terminal

Cela vous permettra de découvrir tous les terminaux qui supporte terminfo, et le nombre de couleurs que chacun supporte (8, 15, 16, 52, 64, 88, 256).

 for T in `find /usr/share/terminfo -type f -printf '%f  '`;do echo "$T `tput -T $T colors`";done|sort -nk2
Eterm-88color 88
rxvt-88color 88
xterm+88color 88
xterm-88color 88
Eterm-256color 256
gnome-256color 256
konsole-256color 256
putty-256color 256
rxvt-256color 256
screen-256color 256
screen-256color-bce 256
screen-256color-bce-s 256
screen-256color-s 256
xterm+256color 256
xterm-256color 256

Commande pour énumérer les capacités du terminal

Utile pour voir ce qui est supporté par votre terminal.

  infocmp -1 | sed -nu 's/^[ \000\t]*//;s/[  \000\t]*$//;/[^ \t\000]\{1,\}/!d;/acsc/d;s/=.*,//p'|column  -c80
bel    cuu    ich    kb2    kf15    kf3    kf44    kf59    mc0    rmso    smul
blink    cuu1    il    kbs    kf16    kf30    kf45    kf6    mc4    rmul    tbc
bold    cvvis    il1    kcbt    kf17    kf31    kf46    kf60    mc5    rs1    u6
cbt    dch    ind    kcub1    kf18    kf32    kf47    kf61    meml    rs2    u7
civis    dch1    indn    kcud1    kf19    kf33    kf48    kf62    memu    sc    u8
clear    dl    initc    kcuf1    kf2    kf34    kf49    kf63    op    setab    u9
cnorm    dl1    invis    kcuu1    kf20    kf35    kf5    kf7    rc    setaf    vpa

Commande pour montrer les 256 couleurs

Imprime toutes les 256 couleurs sur l'écran, très rapide.

  (x=`tput op` y=`printf %80s`;for i in {0..256};do  o=00$i;echo -e ${o:${#o}-3:3} `tput setaf $i;tput setab $i`${y//  /=}$x;done)

Commande Lister les échappement tput

Remplacer 'tput op' avec ce vous voulez tracer. opest le premier plan par défaut et la couleur de fond.

  ( strace -s5000 -e write tput op 2>&2 2>&1  ) | tee -a /dev/stderr | grep -o '"[^"]*"'
033[\033[1;34m"\33[39;49m"\033[00m


Scripts de thème de couleur

N'importe lequel des scripts suivants afficher un graphique du système de votre couleur actuelle de terminal. Pratique pour les tests et autres joyeusetés.

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 {0..8}; do
  ((b>0)) && bg=$((b+39))

  echo -en "\033[0m ${BGNAMES[b]} │ "
  
  for f in {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 {0..7}; do
    echo -en "\033[${bg}m\033[1;$((f+30))m ${FGNAMES[f]} "
  done

  echo -en "\033[0m │"
  echo -e "\033[0m"

  ((b<8)) &&
  echo "     ├──────────────────────────────────────────────────────────────────────────┤"
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 "     ----------------------------------------------------------------------------"

Script #4

#!/usr/bin/env lua

function cl(e)
    return string.format('\27[%sm', e)
end

function print_fg(bg, pre)
    for fg = 30,37 do
        fg = pre..fg
        io.write(cl(bg), cl(fg), string.format(' %6s ', fg), cl(0))
    end
end

for bg = 40,47 do
    io.write(cl(0), ' ', bg, ' ')
    print_fg(bg, '')
    io.write('\n    ')
    print_fg(bg, '1;')
    io.write('\n\n')
end

-- Andres P

Contributions de .Xdefaults

Consultez ces liens pour des exemples concrets de Xdefaults, offerts par des membres de la communauté:

Un bon endroit pour commencer à faire vos propres couleurs par défaut :

*color0: black
*color1: red3
*color2: green3
*color3: yellow3
*color4: blue2
*color5: magenta3
*color6: cyan3
*color7: gray90
*color8: gray50
*color9: red
*color10: green
*color11: yellow
*color12: rgb:5c/5c/ff
*color13: magenta
*color14: cyan
*color15: white

Ressources

Personal tools
Namespaces
Variants
Actions