Compare commits
3 Commits
f9dad7c33d
...
958a1b7152
Author | SHA1 | Date | |
---|---|---|---|
958a1b7152 | |||
4f82cc967b | |||
d7626104d4 |
5
.gitignore
vendored
5
.gitignore
vendored
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
5
Makefile
5
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
|
TOTAR = chap/*.tex chap/*.png *.tex *.c Makefile *.sh *.awk
|
||||||
|
|
||||||
|
29
chap/X11.tex
29
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 ?
|
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/
|
||||||
%
|
%
|
||||||
|
@ -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
9
chap/manpages.tex
Normal 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
10
chap/plugins.tex
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
\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}
|
\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
12
code/Makefile
Normal 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
16
code/move-xlogo.sh
Executable 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
26
code/tagpic.sh
Executable 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
|
||||||
|
|
||||||
|
|
31
main.tex
31
main.tex
@ -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}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user