Compare commits
No commits in common. "958a1b71522d44204432bb01fec9ef78786c195a" and "f9dad7c33dc5c3453647fd3a0e13852da052039b" have entirely different histories.
958a1b7152
...
f9dad7c33d
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,6 +1,5 @@
|
||||
|
||||
log.*
|
||||
*.png
|
||||
|
||||
MANIFEST
|
||||
tarball
|
||||
@ -15,8 +14,4 @@ main.toc
|
||||
|
||||
code/a.out
|
||||
code/foo
|
||||
code/thread-demo
|
||||
code/ex_curses
|
||||
|
||||
|
||||
|
||||
|
5
Makefile
5
Makefile
@ -1,3 +1,8 @@
|
||||
# exemples du bouquin
|
||||
|
||||
ex_curses: ex_curses.c Makefile
|
||||
gcc -Wall $< -o $@ -lncurses
|
||||
|
||||
|
||||
TOTAR = chap/*.tex chap/*.png *.tex *.c Makefile *.sh *.awk
|
||||
|
||||
|
29
chap/X11.tex
29
chap/X11.tex
@ -12,14 +12,6 @@ $ 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}
|
||||
@ -82,31 +74,29 @@ 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. Nous pouvons maintenant déplacer notre widget
|
||||
avec vigueur\dots
|
||||
ultérieurement.
|
||||
|
||||
Déplaçons donc notre widget\dots
|
||||
|
||||
\begin{verbatim}
|
||||
$ xdotool windowmove $WIN 10 10
|
||||
$
|
||||
\end{verbatim}
|
||||
|
||||
C'est simple, non ?
|
||||
@ -120,13 +110,6 @@ 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/
|
||||
%
|
||||
|
@ -31,15 +31,32 @@ 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. :
|
||||
|
||||
\lstinputlisting[language=sh]{code/tagpic.sh}
|
||||
\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}
|
||||
|
||||
Quelques explications semblent nécessaires, parce que certaines
|
||||
options sont un peu ésotériques et parfois inter-dépendantes\dots
|
||||
options sont un peu ésotériques...
|
||||
|
||||
\begin{itemize}
|
||||
\item{txtfont}
|
||||
\item{fontsize}
|
||||
\item{kerning}
|
||||
\item{colors}
|
||||
\item{txtopts}
|
||||
\item{-gravity}
|
||||
|
@ -1,9 +0,0 @@
|
||||
\chapter{manpages}
|
||||
|
||||
Voir \texttt{roff}\index{roff} en page \pageref{roff}.
|
||||
|
||||
|
||||
\section{Un exemple ?}
|
||||
|
||||
XXX\index{XXX}
|
||||
|
@ -1,10 +0,0 @@
|
||||
\chapter{Plugins}
|
||||
|
||||
|
||||
\texttt{dlopen}\index{dlopen}
|
||||
|
||||
|
||||
\section{Un exemple ?}
|
||||
|
||||
XXX\index{XXX}
|
||||
|
@ -34,7 +34,7 @@ condimentum ante in metus iaculis quis congue diam commodo.
|
||||
%-------------------------------------------------------------
|
||||
|
||||
\section{roff}
|
||||
\index{roff}\label{roff}
|
||||
\index{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
|
||||
|
@ -1,12 +0,0 @@
|
||||
######################################################
|
||||
# TetaTricks
|
||||
#
|
||||
|
||||
# exemples du bouquin
|
||||
|
||||
ex_curses: ex_curses.c Makefile
|
||||
gcc -Wall $< -o $@ -lncurses
|
||||
|
||||
thread-demo: thread-demo.c Makefile
|
||||
gcc -Wall -pthread $< -o $@
|
||||
|
@ -1,16 +0,0 @@
|
||||
#!/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
|
@ -1,26 +0,0 @@
|
||||
#!/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
|
||||
|
||||
|
31
main.tex
31
main.tex
@ -50,9 +50,7 @@ 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} et peut-être de la
|
||||
Slackware\index{Slackware} qui traine.
|
||||
|
||||
vers la page \pageref{chap:Fedora}.
|
||||
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
|
||||
@ -62,10 +60,6 @@ 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
|
||||
@ -78,40 +72,33 @@ Your mileage may vary\dots
|
||||
}
|
||||
% ==============================================================
|
||||
|
||||
%
|
||||
% peut-être trouver un ordre des chapitres plus logique ?
|
||||
%
|
||||
|
||||
% \input{chap/shell}
|
||||
\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}
|
||||
@ -125,7 +112,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}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user