Aller au contenu

Linux Attitude

Le libre est un état d'esprit

Archive

Tag : Interface graphique

Niveau : Star Star Star Empty Empty
Résumé : Xvnc

Supposons une machine sur laquelle vous n'avez pas d'écran. Vous voudriez tout de même pouvoir y accéder en mode graphique. Pour ma part, il s'agit de mettre en place une machine autonome, qui servirait à diffuser la musique sur mon ampli. Pas de place pour l'écran, le problème, il faut bien la commander un peu de temps en temps.

Pour cela il y a plusieurs solutions

Solution A

Dans le cas de diffusion de musique, il est possible de trouver un système purement serveur permettant d'être commandé par une interface web ou un client en ligne de commande. Je pense à des plugins spécifiques à des client habituels ou à des serveurs comme mpd sans interface graphique.

Inconvénient, l'interface est assez peu intuitive et nécessite une certaine bidouille pour être accessible par tous. De plus on passe du temps pour finalement ne faire que de la musique (si on veut que la machine fasse aussi alarme, il faut repartir dans la bidouille.

Solution B

Un solution très unixienne avec interface graphique serait de mettre en place XDMCP sur le service de connexion (gdm, kdm ...). Bonne solution, même pour les clients windows puisque xming permet de faire serveur X sous windows.

Cette solution nous permettrait de disposer de tous les avantages d'un bureau intégré, par exemple, régler le son, configurer une radio ... Par contre, cette solution a l'inconvénient de rendre la machine concernée non autonome. A la moindre déconnexion, pof, plus de musique. Mais expliquons quand même la solution brièvement.

  • Activez XDMCP sur votre *dm
    • gdm : dans /etc/gdm/gdm.conf
    • kdm : dans /etc/kde*/kdm/kdmrc
[xdmcp]
Enable=true
  • Connectez vous avec votre serveur X
    • X86 ou Xorg :
$ X -query machine.distante.net
    • Xming : xlaunch / "One WIndow" / "Open session via XDMCP" / "Connect to Host"

... continuer la lecture ...

Niveau : Star Star Star Empty Empty
Résumé : /etc/X11/xorg.conf ; setxkbmap

Savez-vous qu'il n'est pas nécessaire d'avoir une applet kde pour changer la configuration de son clavier ? Celle-ci est définie dans /etc/X11/xorg.conf " à la section "InputDevice". La liste des paramètres disponibles est ici.

Pour connaître les valeurs disponibles pour votre clavier :

$ less /etc/X11/xkb/rules/xorg.lst

Les lignes commençant par ! correspondent aux paramètres qu'on peut changer. Les autres lignes sont les valeurs disponibles suivies d'un commentaire. Vous avez donc la liste de tous les claviers disponibles, avec toutes leurs variantes.

Notez la section "option" (correspondant à XkbOptions ou à setxkbmap -option), on y trouve des options intéressantes comme :

  • ctrl:swapcaps : qui permet d'inverser ctrl et caps lock (pour les vieux emacsiens)
  • srvrkeys:none : pour interdire les combinaisons ctrl-alt (plus possible de retourner en console)
  • compose:rwin : pour retrouver votre touche compose permettant de faire des caractères comme ¿

Remarquez aussi le grp dans cette section. Elle permet de contrôler la configuration simultanée de plusieurs claviers. Vous pouvez configurer plusieurs claviers simultanément en les séparant par des virgules dans les paramètres :

Option "XkbLayout" "fr,us,de"

Pour passer de l'un à l'autre, un raccourci est défini grâce à cette option grp.

# passer d'un clavier à l'autre en appuyant sur les 2 touches control
Option "XkbOptions" grp:ctrls_toggle 

La même chose en live :

$ setxkbmap -option grp:ctrls_toggle 

Chose amusante, vous pouvez indiquer l'utilisation d'un mapping alternatif avec une led en utilisant l'option "grp_led:scroll".

Je vous laisse, j'ai bloqu

Niveau : Star Empty Empty Empty Empty
Résumé : https ; flash

Évidemment, vous êtes tous passés à firefox 3 ! Ne mentez pas, mes statistiques le prouvent. Malheureusement, vous avez plein de sites https qui vous sont refusés d'office. Je suis d'accord pour dire qu'il faut forcer un peu les gens à être sérieux, le https on ne l'utilise pas pour rien, Imaginez un zoo sans grilles, il vaut mieux être prévenu avant d'y entrer. Mais je trouve la procédure de firefox 3 pour forcer l'accès au site bien trop contraignante.

Pour améliorer un peu ceci, voici 2 options à lancer pour vous faire gagner un peu de temps lorsque vous tombez sur un site https mal sécurisé. Allez à l'url "about:config" et changez les options suivantes :

browser.ssl_override_behavior -> 2
browser.xul.error_pages.expert_bad_cert -> true

L'avertissement reste et vous aurez toujours besoin d'ajouter des exceptions, ça sera juste un peu plus rapide.

Flash

Je vous rappelle un précédent article sur comment installer flash avec firefox si vous êtes sur une distribution 64 bits. Il est toujours valable.

Niveau : Star Star Empty Empty Empty
Résumé : clusterssh, clusterm, konsole, dsh, pssh

Bonjour à tous, très honoré d'être à la tribune de ce blog, mais on m'a forcé la main !

Pour rebondir sur un post récent (tout juste un an !), voici quelques outils pour travailler efficacement sur un groupe de machines.

Konsole et dsh, les ancêtres

Comme Peck l'avait présenté, pour envoyer une même suite de commandes sur un groupe de machines, on peut soit le faire à l'aveugle avec Konsole (si on supporte KDE), soit lancer ses commandes coûte que coûte avec dsh, mais sans contrôle encore une fois sur le déroulement.

Avec Konsole : préparez dans une même fenêtre une machine à contrôler par onglet, puis dans les menus : View > Send Input to All Sessions. Désormais, tout ce que vous tapez est répété dans toutes les fenêtres.

Avec dsh :

 dsh -m machine1 -m machine2 commande

Attention, n'oubliez pas que votre commande est d'abord interprétée par votre shell. Ainsi, comparez :

 dsh -m machine1 -m machine2 -m ... "echo $HOSTNAME"
 dsh -m machine1 -m machine2 -m ... 'echo $HOSTNAME'

Relisez l'article pour apprendre comment créer des groupes de machines avec dsh.

clusterssh et clusterm

Mais si on désire surveiller ce qui se passe sur toutes les machines, et ainsi avoir un contrôle visuel, et au besoin effectuer une correction sur une machine en particulier, alors des outils graphiques rendent bien service, en affichant dans un terminal distinct chacune des machines que l'on contrôle. Par ici pour des captures d'écran, et un petit article de présentation de clusterssh !

Vous pouvez définir vos groupes de machines dans le fichier /etc/clusters :

groupe1 machine1 machine2 machine3 machine4 machine5 machine6 machine7 machine8 machine9
groupe2 machine10 machine11 machine12 machine13 machine14 machine15
all groupe1 groupe2

... continuer la lecture ...

Niveau : Star Star Star Empty Empty
Résumé : kdmctl

Un chanteur me faisait justement remarquer hier que j'oubliais la population kdeiste au profit des gnominés (et encore on peut très bien utiliser kdm avec gnome). Comme je ne suis pas sectaire je vais de ce pas réparer cette injustice.

Nous cherchons donc une commande permettant de commander kdm, et comme par hasard, elle existe. Commençons par lancer un ouvel écran de connexion :

$ kdmctl reserve

Tout comme gdmflexiserver, kdmctl locke l'écran en cours. Par contre, il ne permet pas de lancer la nouvelle connexion sur un Xnest, à la place il propose une option permettant de fermer cet écran automatiquement au bout d'un timeout.

Le manuel de kdmtcl nous révèle d'autres commandes :

# Change le serveur en cours d'affichage
$ kdmctl activate :2

Vous trouverez aussi une commande pour éteindre proprement la machine ou pour connecter automatiquement un utilisateur après un timeout donné.

Voila, vous pouvez maintenant scripter kdm aussi bien que gdm.

Niveau : Star Star Star Empty Empty
Résumé : gdmflexiserver

Il existe une commande bien sympathique qui permet de lancer une nouvelle session gdm sans couper la dernière. En effet, lorsque vous avez une session ouverte avec gdm, le serveur X est occupé et ne vous permet donc pas de vous connecter sous un autre utilisateur. Ceux qui ont une distribution bien léchée ont déjà un bouton changer d'utilisateur qui permet ce genre de chose. Comment se fait-ce ?

Celles-ci utilisent la commande gdmflexiserver. Cette commande demande directement à gdm de lancer un nouveau serveur X et d'y ouvrir un nouvel écran de connexion.

$ gdmflexiserver

Notez au passage que gdm locke le serveur d'origine, ce qui empêchera le nouveau venu de faire un petit ctrl-alt-Fx pour se faire passer pour vous sans votre mot de passe.

Petite option utile, gdmflexiserver permet d'ouvrir la nouvelle session dans une fenêtre à l'intérieur de la première en utilisant Xnest. Grâce à quoi vous pourrez par exemple lancer une session gnome propre plutôt que de vous embêter à gérer le lancement de votre Xnest à la main.

$ gdmflexiserver -n

En pratique gdmflexiserver implémente une communication générique avec le démon gdm, ce qui veut dire qu'il peut être utilisé pour d'autres choses. Par exemple, récupérer la version de gdm qui tourne :

gdmflexiserver -c VERSION

La liste des commandes disponibles ne se trouve que dans le source de gdm, mais elles sont tout de même documentées. Pour les trouver, cherchez les constantes commençant par GDM_SUP_ dans gdm.h. Notez que certaines commandes nécessitent une authentification préalable (avec l'option -a) :

$ gdmflexiserver -a -c QUERY_VT

Grâce à cette commande, vous pourrez scripter ce qui vous intéresse. Essayez par exemple changer la configuration de gdm en direct.

Niveau : Star Star Star Empty Empty
Résumé : esd -tcp -public

Au commencement était la carte perforée, Puis il y eut le clavier et l'imprimante, qu'on améliora en terminal. Et enfin il y eut le terminal X, mais la course ne s'arrête pas là. Il nous manque encore le son.

Hé bien, nous allons nous y mettre ! Je ne vous parlerai que du cas de gnome, probablement adaptable à kde. Écrivez moi si vous avez la recette.

Tout d'abord, il vous faut une machine sous gnome et un dm (gdm, kdm, xdm ...) qui accepte les connexions XDMCP (ce n'est pas indispensable, mais tellement plus pratique).

Connectez-vous d'abord sous gnome, puis lancez

$ gstreamer-properties

Modifiez le plugin de sortie pour esd, et faites un test pour vérifier que le son fonctionne.

Maintenant déconnectez-vous et mettez-vous sur une autre machine. Lancez esd, puis xorg :

$ esd -tcp -public -nobeeps -terminate &
$ Xorg -query lamachine distante

Et voilà, après vous être connecté sous gnome, vous aurez le son pour les applications gnome.

Si vous n'êtes pas en xdmcp, ou si vous voulez faire fonctionner le son pour une application seulement, il vous faudra changer une variable juste avant de lancer l'application en question

$ export ESPEAKER=machine.avec.esd:16001

Maintenant supposons que votre machine faisant l'affichage soit un windows. C'est toujours possible !

Utilisons Xming, ainsi que esd pour windows.

Il vous faudra un Xming installé et un fichier xlaunch fonctionnel : lancez xlaunch et juste avant de lancer le serveur X, cliquez sur sauvegarder. Il vous faudra aussi avoir extrait le paquet esound pour windows.

Et créons un batch pour tout ceci :

call c:\esd.bat
c:\xming\xlaunch.exe -run c:\linux.xlaunch

Et dans le esd.bat

c:\esd\esd -tcp -public -nobeeps -terminate

Bien, sûr, adaptez à vos emplacements. Notez au passage que Xming supporte très bien l'openGL et par conséquent, un certain nombre de jeux fonctionneront mieux à distance sous windows que sous linux (moins depuis l'existence de AIGLX).