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.*
*.png
MANIFEST
tarball
@ -14,4 +15,8 @@ main.toc
code/a.out
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

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 ?
\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/
%

View File

@ -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}

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}
\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

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},
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}