\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]{sam. janv. 25 21:29:21 CET 2014}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={xmodmap},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Utilitaire pour modifier les keymaps et mappages de bouton de pointeur dans X},
CreationDate={D:20140125212921},
ModDate={D:20140125212921},
Keywords={X;X Window System}
}}
\begin{document}
 
\begin{center}
{\Huge xmodmap }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Utilitaire pour modifier les keymaps et mappages de bouton de pointeur dans X}
 
\vspace{10mm}
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -display display]{Nom du serveur X à utiliser}
\item[\hspace{1mm} -grammar]{Affiche la grammaire des expressions utilisé avec -e}
\item[\hspace{1mm} -verbose]{Augmente les messages en sortie}
\item[\hspace{1mm} -quiet]{N'affiche pas les logs}
\item[\hspace{1mm} -n ]{Indique qui xmodmap ne devrait pas changer les mappings.}
\item[\hspace{1mm} -e expression]{Expression à exécuter. Peut être spécifié plusieurs fois}
\item[\hspace{1mm} -pm]{Affiche le modifier map courant}
\item[\hspace{1mm} -pk]{Affiche la table keymap}
\item[\hspace{1mm} -pke]{Affiche le table keymap sous la forme d'expressions qui peuvent être envoyés à xmodmap}
\item[\hspace{1mm} -pp]{Affiche le pointer map}
\item[\hspace{1mm} ]{Utilise l'entrée standard comme fichier d'entrée}
\end{description}
 
\vspace{1cm}{\huge Grammaire des expressions }
 
\
 
\hspace{1mm}  xmodmap lit une liste d'expressions et tente de les exécuter. Celà permet de référer à des keysym qui ont été redéfinis de manière naturelle san s'occuper des conflits de nom. La liste des noms de keysym peut être trouvé dans le fichier <X11/keysymdef.h>, plus la base de keysym /usr/share/X11/XKeysymDB/. les keysyms qui matchent des caractères unicodes peuvent être spécifiés par \textbf{"U0020"} à \textbf{"U\textdegree\textdegree7E"} et \textbf{"U00A0"} à \textbf{"U10FFFF"}
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} keycode NUMBER = KEYSYMNAME ...]{La liste des keysyms est assigné au keycode indiqué (en décimal,hex, octal et peut être déterminé avec xev). Jusqu'à 8 keysyms peuvent être attachés à une touche, cependant les 4 derniers ne sont pas utilisés par la plupart des serveurs X. Le premier keysym est utilisé sans modificateur, Le second avec Shift, le troisième avec Mode\_Switch, et le quatrième avec Mode\_Switch est Shift.}
\item[\hspace{1mm} keycode any = KEYSYMNAME ...]{Si aucune touche existante n'a la liste de keysym spécifiée, une touche spare sur le clavier est sélectionnée et les keysyms lui sont associé.}
\item[\hspace{1mm} keysym KEYSYMNAME = KEYSYMNAME ...]{Le KEYSYMNAME à gauche est traduite en keycode correspondant utilisé pour faire le jeu d'expression keycode correspondant.}
\item[\hspace{1mm} clear MODIFIERNAME]{Supprime toutes les entrées pour le modifier donné, où les noms valide sont: \textbf{Shift}, \textbf{Lock}, \textbf{Control}, \textbf{Mod1}, \textbf{Mod2}, \textbf{Mod3}, \textbf{Mod4}, et \textbf{Mod5}. ex: "clear Lock" supprime toutes les touches liées au modifieur shift lock.}
\item[\hspace{1mm} add MODIFIERNAME = KEYSYMNAME ...]{Ajoute toutes les clés contenant les keysyms donnés au modifier map indiqué.}
\item[\hspace{1mm} remove MODIFIERNAME = KEYSYMNAME ...]{Supprime toutes les clés contenant les keysyms donnés au modifier map indiqué.}
\item[\hspace{1mm} pointer = default]{Définis le mappage du pointeur à ses valeurs par défaut.}
\item[\hspace{1mm} pointer = NUMBER ...]{Définis le mappage du pointeur pour contenir les codes de bouton indiqué.}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Définis les boutons de la souris pour un gaucher: \\
\hspace{1mm} \textbf{xmodmap -e "pointer = 3 2 1"} \\
\hspace{1mm} De nombreuses applications supportent la notion de Meta keys (similaire aux touches Control excepté que Meta est maintenu enfoncé). Cependant, certains serveurs n'ont pas de keysym Meta dans la table de mappage par défaut. La commande suivante attache Meta à la touche Multi-language (parfois appelé le caractère Compose). \\
\hspace{1mm} \textbf{\% xmodmap -e "keysym Multi\_key = Multi\_key Meta\_L"} \\
\hspace{1mm} Similairement, certains clavier ont une touche ALT, mais pas de touche Meta. Dans ce cas \\
\hspace{1mm} \textbf{xmodmap -e "keysym Alt\_L = Meta\_L Alt\_L"} \\
\hspace{1mm} Définir la touche "rubout" du clavier pour générer un keysym alternatif. Généralement implique d'échange Backspace avec Delete pour plus de confort. Is la ressource ttyModes est définie, tous les émulateur de terminal vont utiliser la même touche pour le caractère Erase. \\
\hspace{1mm} \textbf{\% xmodmap -e "keysym BackSpace = Delete"} \\
\hspace{1mm} \textbf{\% echo "XTerm*ttyModes: erase \textasciicircum ?" | xrdb -merge} \\
\hspace{1mm} Certains claviers ne génèrent pas automatiquement les caractères supérieur à et inférieur à quand les touches comma et period sont shiftés. On peut y remédier avec \\
\hspace{1mm} \textbf{keysym comma = comma less} \\
\hspace{1mm} \textbf{keysym period = period greater} \\
\hspace{1mm} Inverser les touches Shift Lock et Control \\
\hspace{1mm} \textbf{remove Lock = Caps\_Lock} \\
\hspace{1mm} \textbf{remove Control = Control\_L} \\
\hspace{1mm} \textbf{keysym Control\_L = Caps\_Lock} \\
\hspace{1mm} \textbf{keysym Caps\_Lock = Control\_L} \\
\hspace{1mm} \textbf{add Lock = Caps\_Lock} \\
\hspace{1mm} \textbf{add Control = Control\_L} \\
\hspace{1mm} Assigner le même keysym à plusieurs keycodes. Définis BackSpace pour générer Delete, vide les liens caps lock existants, défini CapsLock en touche Control, définis F5 en Escape, et définis Break/Reset en Shift Lock \\
\hspace{1mm} \textbf{keycode 101 = Delete} \\
\hspace{1mm} \textbf{keycode 55 = Control\_R} \\
\hspace{1mm} \textbf{clear Lock} \\
\hspace{1mm} \textbf{add Control = Control\_R} \\
\hspace{1mm} \textbf{keycode 89 = Escape} \\
\hspace{1mm} \textbf{keycode 15 = Caps\_Lock} \\
\hspace{1mm} \textbf{add Lock = Caps\_Lock} \\
\end{flushleft}
\end{document}
