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.*
|
log.*
|
||||||
*.png
|
|
||||||
|
|
||||||
MANIFEST
|
MANIFEST
|
||||||
tarball
|
tarball
|
||||||
@ -15,8 +14,4 @@ main.toc
|
|||||||
|
|
||||||
code/a.out
|
code/a.out
|
||||||
code/foo
|
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
|
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 ?
|
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}
|
||||||
@ -82,31 +74,29 @@ 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. Nous pouvons maintenant déplacer notre widget
|
ultérieurement.
|
||||||
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 ?
|
||||||
@ -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
|
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/
|
||||||
%
|
%
|
||||||
|
@ -31,15 +31,32 @@ 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. :
|
||||||
|
|
||||||
\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
|
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}
|
\begin{itemize}
|
||||||
\item{txtfont}
|
\item{txtfont}
|
||||||
\item{fontsize}
|
\item{fontsize}
|
||||||
\item{kerning}
|
|
||||||
\item{colors}
|
\item{colors}
|
||||||
\item{txtopts}
|
\item{txtopts}
|
||||||
\item{-gravity}
|
\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}
|
\section{roff}
|
||||||
\index{roff}\label{roff}
|
\index{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
|
||||||
|
@ -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},
|
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} et peut-être de la
|
vers la page \pageref{chap:Fedora}.
|
||||||
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
|
||||||
@ -62,10 +60,6 @@ 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
|
||||||
@ -78,40 +72,33 @@ 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}
|
||||||
@ -125,7 +112,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}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user