diff --git a/.gitignore b/.gitignore index 1c1fd52..46e3a8d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ log.* +*.png MANIFEST tarball @@ -14,4 +15,8 @@ main.toc code/a.out code/foo +code/thread-demo +code/ex_curses + + diff --git a/Makefile b/Makefile index 22b0e0e..a383347 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,3 @@ -# exemples du bouquin - -ex_curses: ex_curses.c Makefile - gcc -Wall $< -o $@ -lncurses - TOTAR = chap/*.tex chap/*.png *.tex *.c Makefile *.sh *.awk diff --git a/chap/X11.tex b/chap/X11.tex index 29d0933..e423c97 100644 --- a/chap/X11.tex +++ b/chap/X11.tex @@ -12,6 +12,14 @@ $ fc-list | awk -F ":" '{print $1}' | sort -u Comment faire pour visualiser la plénitude des formes de mes fontes ? +\begin{verbatim} +tth@debian:~/Devel/TetaTricks$ man fontimage +No manual entry for fontimage +See 'man 7 undocumented' for help when manual pages are not available. +tth@debian:~/Devel/TetaTricks$ +\end{verbatim} + +Wtf\index{Wtf} ? %------------------------------------------------------------------- \section{Xephyr} @@ -74,29 +82,31 @@ 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. +Et comme un petit script vaut mieux qu'un long discours~: + +\lstinputlisting[language=sh]{code/move-xlogo.sh} + 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 +Voilà\footnote{En français dans le texte.}, nous savons maintenant à quelle fenêtre causer : par son numéro d'identification. Le problême des multiples fenêtres du même nom sera abordé -ultérieurement. - -Déplaçons donc notre widget\dots +ultérieurement. Nous pouvons maintenant déplacer notre widget +avec vigueur\dots \begin{verbatim} $ xdotool windowmove $WIN 10 10 -$ \end{verbatim} C'est simple, non ? @@ -110,6 +120,13 @@ Vous avez pratiqué la \textsl{Xlib} ? Avez-vous aimé ? Si vous ne savez pas quoi répondre, vous n'avez pas compris la question. + +\begin{quote} +The X protocol C-language Binding (XCB) is a replacement for Xlib +featuring a small footprint, latency hiding, direct access to the +protocol, improved threading support, and extensibility. +\end{quote} + % % https://xcb.freedesktop.org/tutorial/basicwindowsanddrawing/ % diff --git a/chap/image.tex b/chap/image.tex index a272afd..6df34d1 100644 --- a/chap/image.tex +++ b/chap/image.tex @@ -31,32 +31,15 @@ Voici un exemple concret qui montre l'essentiel pour bien débuter. C'est une fonction écrite en bash\index{bash} qui rajoute un texte sur une image. : -\begin{verbatim} -function tagpic -{ -infile="$1" -outfile="$2" -texte="$3" -txtfont=" -font Utopia " -fontsize=" -pointsize 96 -kerning 6 " -color=" -fill Gray20 -stroke White " -txtopts=" -antialias -alpha off $txtfont " -convert $infile \ - ${txtopts} \ - ${txtfont} ${fontsize} \ - ${color} \ - -gravity South \ - -annotate +0+85 "${texte}" \ - $outfile -} -\end{verbatim} +\lstinputlisting[language=sh]{code/tagpic.sh} Quelques explications semblent nécessaires, parce que certaines -options sont un peu ésotériques... +options sont un peu ésotériques et parfois inter-dépendantes\dots \begin{itemize} \item{txtfont} \item{fontsize} +\item{kerning} \item{colors} \item{txtopts} \item{-gravity} diff --git a/chap/textes.tex b/chap/textes.tex index 04ca418..087addc 100644 --- a/chap/textes.tex +++ b/chap/textes.tex @@ -34,7 +34,7 @@ condimentum ante in metus iaculis quis congue diam commodo. %------------------------------------------------------------- \section{roff} -\index{roff} +\index{roff}\label{roff} \textbf{Roff} est l'outil qui a permis à quelques hackers légendaire de justifier auprès de leur hiérarchie le développement d'une machine diff --git a/main.tex b/main.tex index 1344022..9d6cdd9 100644 --- a/main.tex +++ b/main.tex @@ -50,7 +50,9 @@ selon la méthode éprouvée dite de «~La~Rache~»\index{rache}, essentiellement sur une machine Debian/amd64, avec des morceaux de Fedora\index{Fedora} Server 33 juste là, à coté, -vers la page \pageref{chap:Fedora}. +vers la page \pageref{chap:Fedora} et peut-être de la +Slackware\index{Slackware} qui traine. + Mes sources sont assez diverses% \footnote{Il m'arrive même de parfois les citer, si j'y pense.}. Quand j'ai un souci précis à régler dans l'urgence, je commence @@ -60,6 +62,10 @@ d'un nouveau paquet plus approprié. Ensuite, je passe pas mal de temps à téléglander, et je tombe parfois sur de petites perles que je m'empresse d'incruster dans un chapitre. + +Et pour finir, il y a quelques ouvrages de référence. +Citons, par exemple, le K\&R, ceux de Christophe Blaess, +le Christian Pelissier, et bien d'autres. \vspace{3em} Your mileage may vary\dots @@ -72,33 +78,40 @@ Your mileage may vary\dots } % ============================================================== -\input{chap/shell} +% +% peut-être trouver un ordre des chapitres plus logique ? +% + +% \input{chap/shell} % \input{chap/editeurs} \input{chap/son} \input{chap/image} \input{chap/reseau} \input{chap/musique} -\input{chap/puredata} +% \input{chap/puredata} \input{chap/MIDI} \input{chap/OSC} \input{chap/backups} -\input{chap/processing} +% \input{chap/processing} \input{chap/video} -\input{chap/graphisme} +% \input{chap/graphisme} \input{chap/gnuplot} \input{chap/webcam} % \input{chap/SCSI} \input{chap/X11} +\input{chap/manpages} + \input{chap/dino} \input{chap/textes} \input{chap/MINITEL} -\input{chap/Raspberry} +% \input{chap/Raspberry} \input{chap/Fedora} -\input{chap/IPv6} +% \input{chap/IPv6} \input{chap/threads} % \input{chap/dosbox} -\input{chap/grub} +% \input{chap/grub} \input{chap/photos} +\input{chap/plugins} \input{chap/Bonjour} \input{chap/debug} \input{chap/gif89a} @@ -112,7 +125,7 @@ Your mileage may vary\dots % \input{chap/slang} \input{chap/curses} \input{chap/WiFi} -\input{chap/GIT} +% \input{chap/GIT} \input{chap/divers} % \input{chap/peer2peer}