Compare commits

..

3 Commits

Author SHA1 Message Date
tth
958a1b7152 another bla 2020-11-24 00:42:06 +01:00
tth
4f82cc967b more code 2020-11-24 00:40:57 +01:00
tth
d7626104d4 two new empty chapters 2020-11-24 00:37:36 +01:00
11 changed files with 127 additions and 41 deletions

5
.gitignore vendored
View File

@ -1,5 +1,6 @@
log.* log.*
*.png
MANIFEST MANIFEST
tarball tarball
@ -14,4 +15,8 @@ main.toc
code/a.out code/a.out
code/foo code/foo
code/thread-demo
code/ex_curses

View File

@ -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 TOTAR = chap/*.tex chap/*.png *.tex *.c Makefile *.sh *.awk

View File

@ -12,6 +12,14 @@ $ fc-list | awk -F ":" '{print $1}' | sort -u
Comment faire pour visualiser la plénitude des formes de mes fontes ? 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} \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 La démarche d'utilisation n'étant pas immédiate, nous allons
commencer par un petit exemple : déplacer un Xlogo sur l'écran. 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 première étape est le lancement de la cible en arrière-plan.
La seconde est la récupération de l'indentifiant La seconde est la récupération de l'indentifiant
(interne à X11) de la fenêtre concernée. (interne à X11) de la fenêtre concernée.
\begin{verbatim} \begin{verbatim}
$ xlogo & $ xlogo &
[3] 2674 [3] 2674
$ WIN=$(xdotool search -name xlogo) $ WIN=$(xdotool search -name xlogo)
$ echo $WIN $ echo $WIN
69206019 69206019
$
\end{verbatim} \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. à quelle fenêtre causer : par son numéro d'identification.
Le problême des multiples fenêtres du même nom sera abordé Le problême des multiples fenêtres du même nom sera abordé
ultérieurement. ultérieurement. Nous pouvons maintenant déplacer notre widget
avec vigueur\dots
Déplaçons donc notre widget\dots
\begin{verbatim} \begin{verbatim}
$ xdotool windowmove $WIN 10 10 $ xdotool windowmove $WIN 10 10
$
\end{verbatim} \end{verbatim}
C'est simple, non ? 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 Si vous ne savez pas quoi répondre, vous n'avez pas compris
la question. 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/ % https://xcb.freedesktop.org/tutorial/basicwindowsanddrawing/
% %

View File

@ -31,32 +31,15 @@ Voici un exemple concret
qui montre l'essentiel pour bien débuter. C'est une fonction qui montre l'essentiel pour bien débuter. C'est une fonction
écrite en bash\index{bash} qui rajoute un texte sur une image. : écrite en bash\index{bash} qui rajoute un texte sur une image. :
\begin{verbatim} \lstinputlisting[language=sh]{code/tagpic.sh}
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}
Quelques explications semblent nécessaires, parce que certaines 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} \begin{itemize}
\item{txtfont} \item{txtfont}
\item{fontsize} \item{fontsize}
\item{kerning}
\item{colors} \item{colors}
\item{txtopts} \item{txtopts}
\item{-gravity} \item{-gravity}

9
chap/manpages.tex Normal file
View File

@ -0,0 +1,9 @@
\chapter{manpages}
Voir \texttt{roff}\index{roff} en page \pageref{roff}.
\section{Un exemple ?}
XXX\index{XXX}

10
chap/plugins.tex Normal file
View File

@ -0,0 +1,10 @@
\chapter{Plugins}
\texttt{dlopen}\index{dlopen}
\section{Un exemple ?}
XXX\index{XXX}

View File

@ -34,7 +34,7 @@ condimentum ante in metus iaculis quis congue diam commodo.
%------------------------------------------------------------- %-------------------------------------------------------------
\section{roff} \section{roff}
\index{roff} \index{roff}\label{roff}
\textbf{Roff} est l'outil qui a permis à quelques hackers légendaire \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 de justifier auprès de leur hiérarchie le développement d'une machine

12
code/Makefile Normal file
View File

@ -0,0 +1,12 @@
######################################################
# TetaTricks
#
# exemples du bouquin
ex_curses: ex_curses.c Makefile
gcc -Wall $< -o $@ -lncurses
thread-demo: thread-demo.c Makefile
gcc -Wall -pthread $< -o $@

16
code/move-xlogo.sh Executable file
View File

@ -0,0 +1,16 @@
#!/bin/bash
xlogo &
sleep 1
job=$! ; echo "job = " $job
WIN=$(xdotool search -name 'xlogo')
echo "win = " $WIN
for foo in $(seq 10 33 900)
do
sleep 1
xdotool windowmove $WIN 50 $foo
done
kill $job

26
code/tagpic.sh Executable file
View File

@ -0,0 +1,26 @@
#!/bin/bash
function tagpic
{
infile="$1"
outfile="$2"
texte="$3"
txtfont=" -font Utopia "
fontsize=" -pointsize 96 -kerning 4 "
color=" -fill Gray20 -stroke White "
txtopts=" -antialias -alpha off $txtfont "
convert $infile \
${txtopts} \
${txtfont} ${fontsize} \
${color} \
-gravity South \
-annotate +0+85 "${texte}" \
$outfile
}
if [ "$#" -eq 1 ] ; then
tagpic foo.png bar.png "$1"
display bar.png
fi

View File

@ -50,7 +50,9 @@ selon la méthode éprouvée dite
de «~La~Rache~»\index{rache}, de «~La~Rache~»\index{rache},
essentiellement sur une machine Debian/amd64, avec des essentiellement sur une machine Debian/amd64, avec des
morceaux de Fedora\index{Fedora} Server 33 juste là, à coté, 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% Mes sources sont assez diverses%
\footnote{Il m'arrive même de parfois les citer, si j'y pense.}. \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 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 Ensuite, je passe pas mal de temps à téléglander, et je tombe
parfois sur de petites perles que je m'empresse d'incruster parfois sur de petites perles que je m'empresse d'incruster
dans un chapitre. 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} \vspace{3em}
Your mileage may vary\dots 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/editeurs}
\input{chap/son} \input{chap/son}
\input{chap/image} \input{chap/image}
\input{chap/reseau} \input{chap/reseau}
\input{chap/musique} \input{chap/musique}
\input{chap/puredata} % \input{chap/puredata}
\input{chap/MIDI} \input{chap/MIDI}
\input{chap/OSC} \input{chap/OSC}
\input{chap/backups} \input{chap/backups}
\input{chap/processing} % \input{chap/processing}
\input{chap/video} \input{chap/video}
\input{chap/graphisme} % \input{chap/graphisme}
\input{chap/gnuplot} \input{chap/gnuplot}
\input{chap/webcam} \input{chap/webcam}
% \input{chap/SCSI} % \input{chap/SCSI}
\input{chap/X11} \input{chap/X11}
\input{chap/manpages}
\input{chap/dino} \input{chap/dino}
\input{chap/textes} \input{chap/textes}
\input{chap/MINITEL} \input{chap/MINITEL}
\input{chap/Raspberry} % \input{chap/Raspberry}
\input{chap/Fedora} \input{chap/Fedora}
\input{chap/IPv6} % \input{chap/IPv6}
\input{chap/threads} \input{chap/threads}
% \input{chap/dosbox} % \input{chap/dosbox}
\input{chap/grub} % \input{chap/grub}
\input{chap/photos} \input{chap/photos}
\input{chap/plugins}
\input{chap/Bonjour} \input{chap/Bonjour}
\input{chap/debug} \input{chap/debug}
\input{chap/gif89a} \input{chap/gif89a}
@ -112,7 +125,7 @@ Your mileage may vary\dots
% \input{chap/slang} % \input{chap/slang}
\input{chap/curses} \input{chap/curses}
\input{chap/WiFi} \input{chap/WiFi}
\input{chap/GIT} % \input{chap/GIT}
\input{chap/divers} \input{chap/divers}
% \input{chap/peer2peer} % \input{chap/peer2peer}