\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{mer. janv. 1 14:06:22 CET 2014}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={xprop},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Afficheur de propriété pour X. Affiche les propriétés d'affichage et de font dans un X server},
CreationDate={D:20140101140622},
ModDate={D:20140101140622},
Keywords={X;X Window System}
}}
\begin{document}
 
\begin{center}
{\Huge xprop }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Afficheur de propriété pour X. Affiche les propriétés d'affichage et de font dans un X server}
 
\vspace{10mm}
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -grammar]{Affiche une grammaire détaillée pour toutes les options de ligne de commande}
\item[\hspace{1mm} -id id]{Spécifie la fenêtre cible}
\item[\hspace{1mm} -name]{Spécifie le nom sous lequel les ressources de l'application devraient être trouvés.}
\item[\hspace{1mm} -root]{Utilise la fenêtre root}
\item[\hspace{1mm} -font font]{Afficher les propriétés de la font}
\item[\hspace{1mm} -display display]{Nom du serveur X à utiliser}
\item[\hspace{1mm} -len n]{Spécifie qu'au moins n octets d'une propriété devrait être lu ou affichée}
\item[\hspace{1mm} -notype]{Spécifie que le type de chaque propriété ne devrait pas être affiché}
\item[\hspace{1mm} -fs file]{Spécifie que le fichier devrait être utilisé comme source de format pour les propriétés}
\item[\hspace{1mm} -frame]{Spécifie qu'en spécifiant une fenêtre manuellement, regarde la frame de gestionnaire de fenêtre au lieu de rechercher la fenêtre client.}
\item[\hspace{1mm} -remove property-name]{Spécifie le nom d'un propriété à supprimer de la fenêtre indiquée}
\item[\hspace{1mm} -set property-name value]{Définit une propriété}
\item[\hspace{1mm} -spy]{Surveille en permanence les propriétés de la fenêtre}
\item[\hspace{1mm} -f name format \texttt{[}dformat\texttt{]}]{Spécifie que le format pour name devrait être format et que le dformat pour name devrait être dformat. Si dformat est manquant, utilise " = \$0+\textbackslash{}n"}
\end{description}
 
\vspace{1cm}{\huge DESCRIPTION }
 
\
 
\hspace{1mm}  Pour chacune de ces propriétés, ses valeurs sont affichés en utilisant les informations format fournis. Sinon, le format interne est utilisé. Une fenêtre peut être sélectionné de 4 manières. En utilisant -root, en utilisant sont id (obtenus avec \textbf{xwininfo}) ou par nom. Sans ces options, laisse sélectionner la fenêtre.
\vspace{5mm} \\
 
 
\hspace{1mm}  Normallement chaque propriété en affichant son nom puis ses types entre parenthèse. Le format des informations pour une propriété consiste de 2 parties, un format et un dformat. Le format spécifie le formattage de la propriété et le dformat spécifie comment la propriété devrait être affichée.
\vspace{5mm} \\
 
 
\hspace{1mm}  Un format consiste de 0, 8, 16 ou 32 suivi par une séquence d'un ou plusieurs caractères. La première valeur spécifie combien de bits par champs il y a dans la propriété. 0 utilise les informations de taille associé avec la propriété elle-même. 8 signifie que la propriété est une séquence d'octets. 16 signifie que la propriété est une séquence de mots. Une fois la taille spécifiée, il est nécessaire de spécifier le type de chaque champs. (ex: 32ica)
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} a]{le champs maintient un nombre atomique}
\item[\hspace{1mm} b]{le champs est un booléen}
\item[\hspace{1mm} c]{la champs est un nombre non-signé}
\item[\hspace{1mm} m]{la champs est un jeu de bits}
\item[\hspace{1mm} o]{la champs est un tableau d'icônes, en séquence de nombres 32bits consistant de largeur, hauteur et ARGB.}
\item[\hspace{1mm} s]{séquence d'octets}
\item[\hspace{1mm} t]{format caractères}
\item[\hspace{1mm} u]{chaîne UTF-8}
\item[\hspace{1mm} x]{nombre héxadécimal}
\end{description}
 
\hspace{1mm}  \textbf{dformat} ne doit pas commencer par une lettre ou un "-". C'est ce qui permet de le distinguer d'un format. Un \textbf{dformat} est une chaîne contenant des caractères spéciaux indiquant l'affichage des champs d'une manière similaire à \textbf{printf}. Par exemple, \textbf{" is ( \$0, \$1 \textbackslash{})\textbackslash{}n"} rend le POINT 3, -4 qui a un format de 32ii comme " is ( 3, -4 )\textbackslash{}n".
\vspace{5mm} \\
 
 
\hspace{1mm}  \textbf{\textbackslash{}n} pour insérer un newline, \textbf{\$} suivie d'un nombre n affiche le champ n. \textbf{?} est utilisé pour définir une expression inconditionnelle. \textbf{?exp(text)} va afficher \textbf{text} si \textbf{ext} est non-0. exemples:
\vspace{5mm} \\
 
 
\hspace{1mm} Afficher le champ 3 avec un label count si le flag numéro 3 est on. \\
\hspace{1mm} \textbf{?m3(count: \$3\textbackslash{}n)} \\
\hspace{1mm} Afficher la valeur inversée du champ 2 comme booléen \\
\hspace{1mm} \textbf{?\$2=0(True)?!\$2=0(False)} \\
 
\hspace{1mm} Le format des fichiers référés par -fs et \$XPROPFORMATS a la forme suivant:<br>name format [dformat]<br>Si dformat n'est pas présent, utilise \textbf{" = \$0+\textbackslash{}n"} \\
 
\vspace{1cm}{\huge EXEMPLES }
 
\
 
\hspace{1mm} Afficher le nom de la fenêtre root \\
\hspace{1mm} \textbf{xprop -root WM\_NAME} \\
\hspace{1mm} Afficher le hints gestionnaire de fenêtre pour l'horloge \\
\hspace{1mm} \textbf{xprop -name xclock WM\_HINTS} \\
\hspace{1mm} Afficher le début du tampon cut \\
\hspace{1mm} \textbf{xprop -root -len 100 CUT\_BUFFER0} \\
\hspace{1mm} Afficher la taille de font \\
\hspace{1mm} \textbf{xprop -font fixed POINT\_SIZE} \\
\hspace{1mm} Afficher toutes les propriétés de la fenêtre 0x200007 \\
\hspace{1mm} \textbf{xprop -id 0x200007} \\
\hspace{1mm} Définir une simple propriété \\
\hspace{1mm} \textbf{xprop -root -format MY\_ATOM\_NAME 8s -set MY\_ATOM\_NAME "my\_value"} \\
 
\vspace{1cm}{\huge VARIABLE D'ENVIRONNEMENT }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} DISPLAY]{Numéro d'affichage et hôte par défaut}
\item[\hspace{1mm} XPROPFORMATS]{Nom d'un fichier avec des formats additionnels}
\end{description}
\end{flushleft}
\end{document}
