Un client X a-t-il nécessairement besoin d'un gestionnaire de fenêtres pour fonctionner?

32

Un client X a-t-il nécessairement besoin d'un gestionnaire de fenêtres pour fonctionner? Un client X peut-il fonctionner uniquement avec le serveur X?

Si un client X n'a ​​pas de fenêtre , son fonctionnement nécessite-t-il un gestionnaire de fenêtres?

Si un client X peut fonctionner sans gestionnaire de fenêtres, le client X n'a-t-il pas nécessairement de fenêtre?

Merci.

Tim
la source
4
Lorsque j'ai rencontré X pour la première fois, c'est-à-dire il y a très longtemps, le fait de ne pas avoir besoin d'un gestionnaire de fenêtres a été abordé dans la plupart des documents d'introduction. Cela ne semble pas être le cas ces jours-ci, mais je suppose que quelqu'un pourrait penser que ce soit évident ou un exemple de paresse.
dmckee
11
@ Tim: Vous semblez avoir été assez longtemps autour de vous pour savoir qu'un vote négatif n'a pas pour but de communiquer "haine", "pervers", "cruauté", "discrimination" ou quelque chose du genre. Un vote négatif est simplement un système d'évaluation du contenu , et certains contenus ont moins de valeur que d'autres. (Pour mémoire, je n'ai pas retenu cette question: je pense que cette question est excellente.) Voir aussi: Pouvons-nous rendre plus évident pour les nouveaux utilisateurs que les votes négatifs sur le site principal ne sont pas des insultes et peuvent en fait les aider à s'aider eux-mêmes ? sur débordement de pile méta.
Daniel Pryden
5
@ Tim Certaines de vos questions dont le vote a été réduit ne me semblent pas utiles. L'interface utilisateur (le texte alternatif du bouton) encourage les utilisateurs à réduire les questions "inutiles". La haine n'est pas un élément nécessaire. Ajouter un petit indice / affirmation qu'une question pourrait être potentiellement utilisée dans certains cas de figure (même si très marginal / improbable) empêcherait la plupart du temps cette réaction instinctive. Vos questions que j'ai vues sont remarquablement similaires en ce qu'elles manquent d'un tel indice / affirmation.
Kubanczyk
3
Tim, les modérateurs en losange ont accès à certains outils permettant de détecter les votes de type. Marquez-les et demandez-leur de se renseigner. / mod sur
physics.se
1
Certaines parties de votre question semblent non grammaticales. Le pire délinquant semble être "est-ce que cela fonctionne sans avoir besoin d'un gestionnaire de fenêtres?".
hkBst

Réponses:

26

Non, les applications bien écrites n'ont pas besoin d'un gestionnaire de fenêtres.

Mais certaines applications cassées "modernes" ne fonctionneront pas correctement sans un gestionnaire de fenêtres (par exemple, Firefox et ses suggestions de barre d'adresse qui ne tomberont pas [1]).

De nombreuses autres applications de qualité inférieure supposent non seulement un gestionnaire de fenêtres, mais, pour ajouter une insulte à une blessure, un clic permet de mettre en évidence le gestionnaire de fenêtres. Par exemple, jadis, toute application java volait simplement le focus au démarrage.

Si vous souhaitez tester, installez Xephyr(un serveur X11 "imbriqué"), exécutez-le avec Xephyr :1, puis démarrez vos applications DISPLAY=:1dans leur environnement.

[1] La "barre géniale" de Firefox n'ouvre pas son volet de suggestions lorsque vous tapez ou cliquez sur le bouton d'historique à moins qu'un gestionnaire de fenêtres ne soit en cours d'exécution. Le menu de masquage automatique ne fonctionnera pas non plus.

Mosvy
la source
Existe-t-il un bogue ouvert dans Firefox pour le problème que vous avez mentionné? Je pense que la nature open source de firefox serait disposée à prendre en charge une correction de bug pour ce problème.
t3dodson
4
@ t3dodson Vous pouvez essayer d'en envoyer un, mais il est fort douteux que quelqu'un veuille bien examiner un correctif qui corrige cela. L'exécution de firefox n'est pas vraiment prise en charge sans un gestionnaire de fenêtres, un gestionnaire de sessions et, plus récemment, un serveur pulseaudio en cours d'exécution. Bien sûr, vous pouvez le payer, mais devoir garder une fourche en firefox n'est pas quelque chose que je souhaiterais à mon pire ennemi ;-)
mardi
Aucune réponse sur ce thème n’est complète sans mentionner Xephyr. +1
Rui F Ribeiro
38

Non, il n'est pas nécessaire que vous utilisiez un gestionnaire de fenêtres pour permettre à un client X de fonctionner. Certains systèmes offrent une option permettant d’exécuter simplement un terminal au démarrage, à partir duquel vous pouvez démarrer des programmes supplémentaires, notamment des gestionnaires de fenêtres. Certaines configurations de kiosque qui ne souhaitent exécuter qu'une seule application n'ont pas besoin d'un gestionnaire de fenêtres. Certaines implémentations de X pour Microsoft Windows évitent un gestionnaire de fenêtres X en laissant le système d'exploitation gérer les fenêtres.

Sans gestionnaire de fenêtres, vous devez généralement spécifier la géométrie aux programmes afin de ne pas tout placer dans le coin supérieur gauche.

Dans X, le gestionnaire de fenêtres n’est qu’un autre client X. C'était inhabituel à l'époque, mais il était facile d'avoir différents gestionnaires de fenêtres.

Une autre façon d’envisager la question est d’observer que vous pouvez changer de gestionnaire de fenêtre à la volée. Il doit donc rester un laps de temps entre le premier arrêt et le second qui prend le contrôle, mais toutes vos applications ne tombent pas en panne, elles doivent pouvoir travailler sans.

icarus
la source
2
Astuce: il existe un outil appelé xwit qui aide vraiment lors de l'expérimentation de configurations sans-wm.
rackandboneman
7

Un gestionnaire de fenêtres est une commodité pour les utilisateurs.

Au bon vieux temps, j’avais un ~/.Xclientsfichier qui se lisait comme suit:

#!/bin/sh

HOST=`uname -n | sed 's/\..*$//'`

xv -root -rmode 5 $HOME/misc/millennium/theme/Wallpaper.gif -quit &

xterm -geometry 80x24+0+85 \#52x71-104+0 -n $HOST -T $HOST &
xterm -geometry 80x24+510+429 \#52x71-52+0  -n $HOST -T $HOST &
xclock -digital -update 1 -geometry +1059+982 &
xscreensaver -nosplash &
exec /usr/local/lib/X11/fvwm/fvwm

Ce fichier serait exécuté lorsque j'ai démarré X avec startx. Une fois ce script terminé, le serveur X sera arrêté.

Notez la dernière ligne: exec .../fvwm. C'est la ligne qui a démarré mon gestionnaire de fenêtres (fvwm). Toutes les applications précédentes ( xv, xterm, xclock, xscreensaver) étaient en cours d' exécution avant que le gestionnaire de fenêtres a commencé. Comme l'appel à fvwmétait la dernière ligne et n'était pas mis en arrière-plan, cela signifiait que, une fois fvwmterminé, X se fermerait.

Le démarrage de X avait même un défaut de "repli" ... s'il n'y avait pas de fichiers de configuration, démarrez X avec un seul en xtermcours d'exécution. La fermeture xtermmettrait fin à la session X.

Stephen Harris
la source
Quel était l’avantage de ne pas laisser fvwm en arrière plan?
Alex Hajnal
1
Nous avons besoin que le script ne se termine pas car s'il le fait, le serveur X se termine; en ne mettant pas en arrière-plan fvwm(et en l'exécutant exec), nous nous assurons qu'il existe encore un processus empêchant le serveur X de s'arrêter. En effectuant ce dernier processus, fvwmun élément de menu "exit" fonctionne comme prévu.
Stephen Harris
Je l'ai. Cela fait longtemps que je n'ai pas fait beaucoup de bas niveau avec X. Je dois dire cependant que fvwm 2 est l'un de mes deux gestionnaires de fenêtres préférés (l'autre étant kwin 3).
Alex Hajnal
Dans mon cas, fvwm-1.24rmon gestionnaire de fenêtres préféré était :-)
Stephen Harris
Je vous entends là-dessus. Il me semble cependant que v2 était plus personnalisable que v1 (avec toutes les options de configuration dans un seul fichier texte et rechargeable à la volée?). Assez léger aussi, surtout par rapport aux normes d'aujourd'hui. Je l'ai utilisé pour la dernière fois tous les jours au IIRC de l'époque P-II.
Alex Hajnal
6

Pour ajouter d'autres réponses, j'ai développé et publié une application open source qui fonctionne sans gestionnaire de fenêtres (ce qui signifie que vous pouvez la démarrer directement à partir de xinitrc). Outre la gestion de la géométrie et de l'ordre des Z de ses dialogues, l'application doit effectuer certaines étapes supplémentaires dans ce cas, mais cela est tout à fait gérable.

George Y.
la source
1

Il y a beaucoup de bonnes réponses détaillées ici. Voici la réponse simple et claire.

Un client X a-t-il nécessairement besoin d'un gestionnaire de fenêtres pour fonctionner?

Non: Mais sans si vous aurez du mal à gérer vos fenêtres (déplacer, redimensionner, baisser, lever, etc.). Il existe un autre outil qui peut le faire, si vous en avez besoin.

Un client X peut-il fonctionner uniquement avec le serveur X?

Oui

Si un client X n'a ​​pas de fenêtre, son fonctionnement nécessite-t-il un gestionnaire de fenêtres?

S'il n'a pas de fenêtre, il ne devrait y avoir aucun inconvénient à ne pas avoir de gestionnaire de fenêtres.

Si un client X peut fonctionner sans gestionnaire de fenêtres, le client X n'a-t-il pas nécessairement de fenêtre?

Non: il peut y avoir des fenêtres.

Essaye ça.

DISPLAY=:21
vncserver -localhost -geometry 1920x1080  -SecurityTypes None $DISPLAY &
ssvnc $DISPLAY
xterm &

puis dans le nouveau xtermtype fvwm.

Vous devrez peut - être installer vncserver, ssvncet fvwm, tout d' abord.

ctrl-alt-delor
la source
1

Oui, un client X ne peut fonctionner qu'avec le serveur X. À titre d'exemple, je donne à mes machines virtuelles leur propre console virtuelle sur l'hôte, comme ceci.

# Press CTRL-ALT-F5, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system CentOS -- :4

# Press CTRL-ALT-F6, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system Windows -- :5

La commande "startx" démarre le serveur Xorg X sur les écrans: 4 et: 5 avec virt-viewer uniquement en tant que client.

"CentOS" et "Windows" sont les noms que j'ai donnés à mes machines virtuelles lors de leur installation. Le commutateur -k pour virt-viewer le fait en plein écran avec un minimum de contrôles. Ainsi, chaque machine virtuelle semble appartenir à la machine jusqu'à ce que j'appuie sur CTRL-ALT-Fn pour passer à une console virtuelle différente.

Bien sûr, CentOS exécute un gestionnaire d’affichage et un gestionnaire de fenêtres à l’intérieur de la machine virtuelle, mais n’a aucune connexion avec le serveur X exécuté sur l’hôte.

Ken Jackson
la source