\chapter{X11}
\label{X11}

%-------------------------------------------------------------------
\section{Les fontes}

Comment fait-on pour connaitre la liste des polices installées ?

\begin{verbatim}
$ fc-list | awk -F ":" '{print $1}' | sort -u
\end{verbatim}

Comment faire pour visualiser la plénitude des formes de mes fontes ?
 

%-------------------------------------------------------------------
\section{Xephyr}


D'après la manpage : 
\textit{Xephyr is a kdrive server that outputs to a window on a pre-existing
       "host" X display.  Think Xnest but with support for modern
       extensions like composite, damage and randr.}

Ça semble attirant à première vue, mais l'utilisation n'est pas
si simple qua ça.
Par exemple, quelle est la méthode à mettre en œuvre pour avoir 
le clavier en Azerty\index{azerty} ?
 

%-------------------------------------------------------------------
\section{Numlock}


\begin{verbatim}
#include <X11/XKBlib.h>
#include <X11/extensions/XKB.h>
#include <X11/keysym.h>
int main(){
     Display *disp = XOpenDisplay (NULL);
     if(disp == NULL) return 1;
     unsigned int nl_mask = XkbKeysymToModifiers           \
                                   (disp, XK_Num_Lock);
     XkbLockModifiers (disp, XkbUseCoreKbd, nl_mask, nl_mask);
     XCloseDisplay (disp);
return 0;}
\end{verbatim}

%-------------------------------------------------------------------
% new 20 décembre 2012 à Mixart-Myrys
\section{xdotool}
\index{xdotool}

D'après la manpage : 
\textit{
       xdotool lets you programatically (or manually) simulate keyboard input
       and mouse activity, move and resize windows, etc. It does this using
       X11's XTEST extension and other Xlib functions.
}

En gros, et pour faire simple, avec ce logiciel,
vous pouvez piloter des
applications X11, à la manière d'un wm, et ce, à partir de
la ligne de commande.

Vous pourrez les déplacer, les redimensionner, leur envoyer des
évènements clavier, tout ce genre de choses. Il est donc possible
de coder «~des sortes d'animations~» uniquement basées sur le
protocole de X11. \textsl{Big win, bro !}

La démarche d'utilisation n'étant pas immédiate, nous allons
commencer par un petit exemple : déplacer un Xlogo sur l'écran.
La première étape est le lancement de la cible en arrière-plan.
La seconde est la récupération de l'indentifiant
(interne à X11) de la fenêtre concernée.

\begin{verbatim}
$ xlogo &
[3] 2674
$ WIN=$(xdotool search -name xlogo)
$ echo $WIN
69206019
$
\end{verbatim}

Voilà\footnote{en français dans le texte}, nous savons maintenant
à quelle fenêtre causer : par son numéro.
Le problême des multiples fenêtres du
même nom sera abordé ultérieurement.
Déplaçons donc notre widget\dots

\begin{verbatim}
$ xdotool windowmove $WIN 10 10
$
\end{verbatim}

C'est simple, non ?



%-------------------------------------------------------------------

