Question Configuration des polices pour xterm, urxvt, emacs et autres


J'ai récemment commencé à utiliser xmonad comme mon gestionnaire de fenêtres. J'ai aussi décidé d'utiliser urxvt comme terminal par défaut, car il est supposé être léger.

La plupart des applications qui offrent une option de configuration des polices me permettent de choisir une police (Arial, Consolas, FreeMono, Dejavu Sans, etc.) et de définir la taille en pixels (11px, 12px ou autre). C'est facile à comprendre.

Maintenant, lorsque vous essayez de configurer les polices pour des applications telles que xterm, urxvt et emacs, entre autres, je dois créer une chaîne plutôt étrange qui ressemble à quelque chose comme: "-*-Fixed-Bold-R-Normal-*-13-*-*-*-*-*-*-*" ou "-unknown-DejaVu Sans Mono-normal-normal-normal-*-14-*-*-*-m-0-iso10646-1"

J'ai utilisé le xfontsel programme pour générer cela pour moi, en utilisant des essais et des erreurs. Mais je ne comprends pas vraiment ce que cela signifie, ou pourquoi c'est nécessaire.

De plus, j'ai aussi utilisé des choses comme ça: URxvt.font: 9x15bold.

Mes questions:

  • Quelle est la longue chaîne étrange pour la configuration des polices?
  • Qu'est-ce que les choses comme 9x15bold signifier? Comment ça se passe?
  • Pourquoi ne pas s'en tenir à la méthode conventionnelle de définition des polices, comme la plupart des autres applications utilisent?
  • Pourquoi les polices xterm et urxvt ne sont-elles pas aussi performantes que, par exemple, les polices gnome-terminal? Y a-t-il un moyen d'y parvenir?

4
2018-03-27 11:51


origine




Réponses:


  1. C'est un Description de la police logique X, principalement utilisé par les programmes pure-Xlib.

  2. "9x15bold"est un alias de commodité pour un police bitmap cela vient avec X.org. Cela ne signifie rien de spécifique, il y a simplement une table "fonts.alias" qui la traduit en XLFD:

    ! $Xorg: fonts.alias,v 1.3 2000/08/21 16:42:31 coskrey Exp $
    fixed        -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
    variable     -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-1
    5x7          -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1
    ...
    8x16         -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1
    9x15         -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1
    9x15bold     -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1
    10x20        -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
    ...
    
  3. Xresources  est la manière conventionnelle. Ou du moins, l'habitude d'être. Par exemple, on pourrait définir la police pour un programme avec URxvt.font, ou pour tout avec *font, et cela affecterait tous les programmes - y compris ceux exécutés sur un serveur distant. (X11 est un protocole réseau.)

    La plupart des programmes récemment écrits utilisent des systèmes tels que dconf dans GNOME, ce qui est bien, car ils ont été écrits spécifiquement pour GNOME. Xterm, cependant, est indépendant de l'environnement de bureau car, plus important encore, il a été créé bien avant KDE et GNOME et Qt et GTK; il fait partie de la suite logicielle principale X11. Ainsi, il reste fidèle à Xresources car il est simple et standard, sans aucune dépendance par rapport aux bibliothèques ou services tiers. (Il a bien sûr des inconvénients tels que l’absence de reconfiguration en temps réel.)

  4. Xterm est un programme Xlib pur et utilise le rendu de police fourni par X11, tandis que GNOME Terminal, écrit avec GTK, utilise Freetype (via Pango).

    Cependant, les versions récentes de Xterm et d'URxvt incluent la prise en charge du rendu de base de la police Freetype via Xft (possède moins de fonctionnalités que Pango, par exemple, il n'y a pas de repli de police, mais il est souvent suffisant). Vous pouvez l'utiliser en ajoutant ces ressources:

    URxvt.font: xft:DejaVu Sans Mono:size=9
    
    XTerm*faceName: DejaVu Sans Mono
    XTerm*faceSize: 9
    

    La taille de la police est en points (pas en pixels).


10
2018-03-27 12:24