Comment configurer les polices sur une connexion X distante (XDMCP ou ssh)?

4

Connexion à un système Solaris 10 distant via X11 J'observe un comportement incohérent concernant les polices utilisées. Je me connecte à partir d' un Cygwin / X système.

Quand je me connecte en utilisant le transfert ssh comme ceci

$ ssh -Y mymachine.example.org

les polices fonctionnent comme prévu, c’est-à-dire que le rendu est très agréable et que les programmes semblent trouver toutes sortes de polices différentes (par exemple, gvim ou emacs).

Lorsque je me connecte à la même machine via XDMCP (sur l’écran de gestionnaire de connexion Solaris 10 bleu stock) et que je me connecte, il semble qu’une seule police de taille fixe soit disponible. Un Emacs d'OpenCSW ne parvient même pas à s'exécuter car il ne trouve pas les polices dont il a besoin.

Il indique qu’il ne trouve pas de police à l’aide des spécifications suivantes:

-dt-interface user-medium-r-normal-m

J'établis la connexion XDMCP comme ceci:

$ XWin -query mymachine.example.org -from mywindowsclient.example.org

Mon objectif est de ne pas obtenir également les polices appropriées pour le cas d'utilisation XDMCP.

Comment puis-je enquêter sur ce problème? Puis-je dupliquer une configuration implicitement utilisée ssh -Ypour le cas XDMCP?

Comment l'installation de la police de caractères est-elle généralement effectuée lors du transfert ssh-X11?

maxschlepzig
la source
Je ne sais pas ce qui se XWinpasse, mais cela semble être un problème pour votre environnement. À quel serveur X vous connectez-vous lorsque vous utilisez l'approche SSH? Est-ce différent du cas d'utilisation de XWin? Je suppose que lorsque vous démarrez, tous les trucs Cygwin sont configurés de manière à ce que toutes les polices puissent être trouvées. Si vous ne le faites pas, ce ne sera pas le cas. Les polices sont une chose locale ... au moins dans la vanille X.
Bananguin
@Bananguin, lors de l'utilisation, ssh -Yje le fais à partir d'un stock Cygwin xtermqui est lancé au démarrage de l'application Cygwin / X. Les appels Cygwin / X startxwin.exequ’il semble à son tour lancer également XWin.exe. XWin.exeest comme un Xserveur X normal plus quelques autres options.
maxschlepzig
1
XWin est le serveur X fourni avec Cygwin. Il existe également XMing, par exemple, un serveur X autonome pour Windows.
slm

Réponses:

1

Je pense que XDMCP utilise les polices locales du système Solaris. Lorsque vous utilisez SSH, vous utilisez des polices locales, car dans ce scénario, vous êtes le serveur X et le serveur Solaris, le client X. Vous pouvez utiliser la commande xlsfontspour voir quelles polices vous sont accessibles sur un système donné.

EDIT # 1 - Chemin de la police

Vous pouvez connaître le chemin d'accès aux polices de votre système à l'aide de la commande xset.

Exemple

$ xset q | sed -n '/Font/,/DPM/p'
Font Path:
  catalogue:/etc/X11/fontpath.d,built-ins
DPMS (Energy Star):

Ce chemin peut inclure des chemins vers des répertoires locaux ainsi que des "chemins" vers d'autres serveurs de polices. Celles-ci apparaîtront sous la forme d'entrées de type port @ hôte.

Exemple

$ xset +fp tcp/<IP or name of font server>:7100

Références

slm
la source
D'accord, j'ai également testé un autre client propriétaire Windows-XDMCP. Avec cela, je reçois quelques polices (toutes les bitmaps, semble-t-il) - au moins plus d’une - et assez pour rendre emacs heureux. Existe-t-il une commande X à rechercher si cette session utilise un type de serveur de polices X (adresse / port) ou active un autre paramètre pertinent pour la session?
maxschlepzig
Les xset qrésultats ne montraient aucune différence et a xset fp rehashne les aidait pas non plus. La différence entre mes deux configurations réside dans le fait qu’avec XDMCP, un fichier xinitrc / xdefaults distant à l’échelle du système est exécuté après la connexion à XDM. Et ce mécanisme définit des ressources X liées aux polices ... Vous pouvez le vérifier via quelque chose comme xrdb -query | grep -- -dtet supprimer ces entrées via xrdb -remove. En faisant ssh X-forwarding, ces X-ressources ne sont pas chargées, bien sûr.
maxschlepzig
1

La première chose à faire est de comparer les chemins de polices via xset q, par exemple:

$ xset q
Font Path:
  /usr/share/fonts/misc/,/usr/share/fonts/100dpi/,/usr/share/fonts/75dpi/,built-ins

(l'URL d'un serveur de polices X (XFS) peut également faire partie d'un chemin de polices)

Si nécessaire, vous pouvez ajouter des chemins de polices via xset +fp path. Après avoir manipulé les chemins de polices, vous devez appeler xset rehash.

La prochaine chose est de comparer la sortie de xlsfonts.

S'il génère beaucoup de polices mais que vos programmes X se plaignent toujours de polices manquantes ou utilisent simplement une police standard laide pour tout: cela peut être causé par les ressources X liées aux polices pointant vers des polices non disponibles.

Un test simple consiste à démarrer emacs - qui peut se plaindre de ne pas trouver un objet trouvé comme:

-dt-interface user-medium-r-normal-m*-*-*-*-*-*-*-*-*

Vous pouvez vérifier si de telles ressources X sont définies via quelque chose comme:

$ xrdb -query | grep -- -dt
$ xrdb -query | grep -i font

Si tel est le cas, vous obtenez une sortie du type:

*Font:  -dt-interface user-medium-r-normal-m*-*-*-*-*-*-*-*-*
*userFont:      -dt-interface user-medium-r-normal-m*-*-*-*-*-*-*-*-*:

Vous pouvez supprimer ces entrées via xrdb -remove- de telle sorte que les paramètres de police par défaut soient utilisés.

Vous pouvez également charger vos propres paramètres de ressources X liés aux polices.

Contexte

Les ressources X sont généralement définies via des fichiers de configuration tels que:

/$SYS_PATH/Xresources
/$SYS_PATH/xinitrc
/$SYS_PATH/Xdefaults
$HOME/.xinitrc
$HOME/.Xresources
...

Ou une variation à ce sujet - par exemple un x minuscule.

Ces fichiers peuvent être exécutés lors de la connexion via un gestionnaire d’affichage X (XDM). Lors de l'utilisation de XDMCP, XDM s'exécute sur le système distant et exécute donc ces fichiers à distance.

Mais ils ne sont pas exécutés lors de l'utilisation du transfert X via ssh.

Le nom de police obscure ( -dt-interface) provient de CDE (qui semble avoir été l’environnement de bureau par défaut sous Solaris à un moment donné) et n’est pas inclus dans le serveur Cygwin X.

maxschlepzig
la source