// Copyright (c) 1997, 1998 Guylhem Aznar <guylhem @ oeil.qc.ca> : GPL
// Copyright (c) 2002, 2003 Jean-Philippe Guérard <jean-philippe.guerard @ tigreraye.org> : GPL
//
// $Revision: 1.3.1.2 $
// $Date: 2003/12/23 21:24:07 $
//
// Ce fichier est destiné aux versions 4.1 et 4.2 de XFree86.
// Il permet d'obtenir sur un clavier français des caractères
// conformes au standard ISO-8859-15.
//
// Pour utiliser ce fichier, copiez-le dans /etc/X11/xkb/symbols/
// puis modifiez l'option "XkbLayout" du fichier /etc/X11/XF86Config-4
// en lui donnant la valeur "fr_latin0" (ie le nom du fichier).
//
// This file is made for XFree86 version 4.1 and 4.2. It enables
// the use of the ISO-8859-15 encoding with a French keyboard.
// It offers a keyboard mapping close to the console keyboard mapping.
// Thus, users do not need to learn a keyboard mapping for X11 and a
// different one for the console.
//
// To use this file, please copy it to /etc/X11/xkb/symbols/
// then change the "XkbLayout" option in file /etc/X11/XF86Config-4
// to the value "fr_latin0" (ie this file name).
//
// ----------------------------------------------------------------------
// Le texte des commentaires de ce fichier utilise le codage ISO-8859-15.
//
// Vous pouvez vous assurer que la police de caractère que vous utilisez
// est adaptée en vérifiant que les 2 caractères affichés ci-dessous
// correspondent bien à leur description.
//
// € -> symbole Euro
// œ -> e dans l'o (minuscule)
// ----------------------------------------------------------------------
//
// Guide d'utilisation
// -------------------
//
// Les accents circonflexes des principales voyelles sont obtenus avec
// la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift.
//
// ____ _________ _____________ _______
// | S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause |
// | s a| s = normal, a = AltGr | Exec | | Halte |
// ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯
// ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
// | Œ »| 1 ·| 2 É| 3 ž| 4 Ž| 5 š| 6 Š| 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + Ÿ| <-- |
// | œ «| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| |
// ========================================================================
// | |<- | A ä| Z Å| E ë| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| £ ê| , |
// | ->| | a â| z å| e €| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| $ ¢| <-' |
// ===================================================================¬ |
// | | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥| |
// | MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³| |
// ========================================================================
// | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ |
// | | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | |
// ========================================================================
// | | | | | | | | |
// | Ctrl | Meta | Alt | Space Nobreakspace | AltGr | Multi|Menu | Ctrl |
// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯
//
// 1. Control & Alt
//
// Les définitions de Alt & Control (touche) sont implicites ; n'ont donc
// été redéfinis qu'Alt (nombre) & Alt + Shift (nombre) pour inverser le
// comportement par défaut :
//
// touche = signe
// touche + Shift = nombre
//
// La correspondance devient donc :
//
// Alt touche = Meta_nombre
// Alt + Shift touche = Meta_signe
//
// 2. Hexadécimal : PAS SOUS X11
//
// Shift (touche du pavé numérique) permet de taper de l'héxadécimal.
//
// 3. Fonctions : PAS SOUS X11
//
// Redémarrer ou arrêter l'ordinateur, sont disponibles directement au clavier
//
// Control Alt Delete/Backspace : redémarrer
// Control AltGr Delete/Backspace : arrêter
//
// Ajouter pour ces deux fonctions les lignes suivantes à /etc/inittab :
//
// ca:12345:ctrlaltdel:/sbin/shutdown -t1 -r now
// kb:12345:kbrequest:/sbin/halt
//
// 4. Accentuations :
//
// Les touches é, è, ç, à et ù, présentes en mode minuscule (i.e. sans
// shift) ne sont pas disponibles en mode majuscule : elles sont
// respectivement remplacées par 2, 7, 9, 0 et % ; donc pour obtenir les
// majuscules accentuées É, È, Ç, À & Ù:
//
// * Si les touches mortes ne fonctionnaient pas (certains
// programmes les refusent), vous pouvez toujours utiliser
// AltGr + Shift (minuscule accentuée) pour obtenir la
// majuscule ; pour l'accent circonflexe et le tréma :
//
// AltGr (voyelle) : voyelle-minuscule à accent circonflexe
// AltGr + Shift (voyelle) : voyelle-minuscule à tréma
// AltGr (en dessous de la voyelle) : voyelle-majuscule à accent circonflexe
// AltGr + Shift (en dessous de la voyelle) : voyelle majuscule à tréma
//
// Seule exception : AltGr (e) donnant l'euro €, AltGr + Shift ($) donne ê
//
// * Si les touches mortes fonctionnent, utiliser les
// accents dits « morts », i.e. fonctionnant comme l'accent
// circonflexe & le tréma des machines à écrire ; sont
// disponibles :
//
// (^) : accent circonflexe,
// Shift+(^) : tréma,
// AltGr (^) : tilde,
// AltGr (1) : accent aigu,
// AltGr (7) : accent grave
//
// Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma
// sur les vielles machines à écrire :
//
// AltGr (1) puis e : é
// Shift+AltGr (1) puis e : É ...
partial hidden alphanumeric_keys modifier_keys
xkb_symbols "basic" {
// Description *TOTALE* d'un clavier français, sans le comparer à un
// clavier américain par défaut : on y gagne plus de flexibilité, ce
// modèle devient plus personnalisable ...
name[Group1]= "French";
key <ESC> { [ Escape ] };
key <TLDE> { [ oe, OE ],
[ guillemotleft, guillemotright ] };
key <AE01> { [ ampersand, 1 ],
[ dead_acute, periodcentered ] };
key <AE02> { [ eacute, 2 ],
[ asciitilde, Eacute ] };
key <AE03> { [ quotedbl, 3 ],
[ numbersign, zcaron ] };
key <AE04> { [ apostrophe, 4 ],
[ braceleft, Zcaron ] };
key <AE05> { [ parenleft, 5 ],
[ bracketleft, scaron ] };
key <AE06> { [ minus, 6 ],
[ bar, Scaron ] };
key <AE07> { [ egrave, 7 ],
[ dead_grave, Egrave ] };
key <AE08> { [ underscore, 8 ],
[ backslash, macron ] };
key <AE09> { [ ccedilla, 9 ],
[ asciicircum, Ccedilla ] };
key <AE10> { [ agrave, 0 ],
[ at, Agrave ] };
key <AE11> { [ parenright, degree ],
[ bracketright, ydiaeresis ] };
key <AE12> { [ equal, plus ],
[ braceright, Ydiaeresis ] };
key <BKSP> { [ BackSpace ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <AD01> { [ a, A ],
[ acircumflex, adiaeresis ] };
key <AD02> { [ z, Z ],
[ aring, Aring ] };
key <AD03> { [ e, E ],
[ EuroSign, ediaeresis ] };
key <AD04> { [ r, R ],
[ ccedilla, Ccedilla ] };
key <AD05> { [ t, T ],
[ thorn, THORN ] };
key <AD06> { [ y, Y ],
[ yacute, Yacute ] };
key <AD07> { [ u, U ],
[ ucircumflex, udiaeresis ] };
key <AD08> { [ i, I ],
[ icircumflex, idiaeresis ] };
key <AD09> { [ o, O ],
[ ocircumflex, odiaeresis ] };
key <AD10> { [ p, P ],
[ paragraph, quoteleft ] };
key <AD11> { [ dead_circumflex, dead_diaeresis ],
[ dead_tilde, quoteright ] };
key <AD12> { [ dollar, sterling ],
[ cent, ecircumflex ] };
key <RTRN> { [ Return ] };
key <CAPS> { [ Caps_Lock ] };
key <AC01> { [ q, Q ],
[ Acircumflex, Adiaeresis ] };
key <AC02> { [ s, S ],
[ oslash, Ooblique ] };
key <AC03> { [ d, D ],
[ Ecircumflex, Ediaeresis ] };
key <AC04> { [ f, F ],
[ plusminus, ordfeminine ] };
key <AC05> { [ g, G ],
[ ae, AE ] };
key <AC06> { [ h, H ],
[ eth, ETH ] };
key <AC07> { [ j, J ],
[ Ucircumflex, Udiaeresis ] };
key <AC08> { [ k, K ],
[ Icircumflex, Idiaeresis ] };
key <AC09> { [ l, L ],
[ Ocircumflex, Odiaeresis ] };
key <AC10> { [ m, M ],
[ onesuperior, masculine ] };
key <AC11> { [ ugrave, percent ],
[ twosuperior, Ugrave ] };
key <LFSH> { [ Shift_L ] };
key <LSGT> { [ less, greater ],
[ bar ] };
key <AB01> { [ w, W ],
[ guillemotleft ] };
key <AB02> { [ x, X ],
[ guillemotright ] };
key <AB03> { [ c, C ],
[ copyright ] };
key <AB04> { [ v, V ],
[ registered ] };
key <AB05> { [ b, B ],
[ ssharp ] };
key <AB06> { [ n, N ],
[ notsign ] };
key <AB07> { [ comma, question ],
[ questiondown ] };
key <AB08> { [ semicolon, period ],
[ multiply ] };
key <AB09> { [ colon, slash ],
[ division ] };
key <AB10> { [ exclam, section ],
[ exclamdown ] };
key <BKSL> { [ asterisk, mu ],
[ threesuperior, yen ] };
key <LCTL> { [ Control_L ] };
key <SPCE> { [ space, space ],
[ nobreakspace, nobreakspace ] };
// key <RALT> { [ Alt_R, Meta_R ] };
key <RALT> { [ Mode_switch, Multi_key ] };
modifier_map Shift { Shift_L };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L };
modifier_map Mod3 { Mode_switch };
};
default
xkb_symbols "pc102" {
include "fr_latin0(basic)"
key <RTSH> { [ Shift_R ] };
key <LALT> { [ Alt_L, Meta_L ] };
key <RCTL> { [ Control_R ] };
key <FK01> { [ F1, F11 ] };
key <FK02> { [ F2, F12 ] };
key <FK03> { [ F3, F13 ] };
key <FK04> { [ F4, F14 ] };
key <FK05> { [ F5, F15 ] };
key <FK06> { [ F6, F16 ] };
key <FK07> { [ F7, F17 ] };
key <FK08> { [ F8, F18 ] };
key <FK09> { [ F9, F19 ] };
key <FK10> { [ F10, F20 ] };
key <FK11> { [ F11, F21 ] };
key <FK12> { [ F12, F22 ] };
// Begin "Editing" section
key <PRSC> {
type= "PC_SYSRQ",
symbols[Group1]= [ Print, Sys_Req ]
};
key <SYRQ> {
type= "PC_SYSRQ",
symbols[Group1]= [ Print, Sys_Req ]
};
key <SCLK> { [ Scroll_Lock ] };
key <PAUS> {
type= "PC_BREAK",
symbols[Group1]= [ Pause, Break ]
};
key <BRK> {
type= "PC_BREAK",
symbols[Group1]= [ Pause, Break ]
};
key <INS> { [ Insert ] };
key <HOME> { [ Home ] };
key <PGUP> { [ Prior ] };
key <DELE> { [ Delete ] };
key <END> { [ End ] };
key <PGDN> { [ Next ] };
key <UP> { [ Up ] };
key <LEFT> { [ Left ] };
key <DOWN> { [ Down ] };
key <RGHT> { [ Right ] };
// End "Editing" section, begin "Keypad"
key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
key <KPDV> { [ KP_Divide ] };
key <KPMU> { [ KP_Multiply ] };
key <KPSU> { [ KP_Subtract ] };
key <KP7> { [ KP_Home, KP_7 ] };
key <KP8> { [ KP_Up, KP_8 ] };
key <KP9> { [ KP_Prior, KP_9 ] };
key <KPAD> { [ KP_Add ] };
key <KP4> { [ KP_Left, KP_4 ] };
key <KP5> { [ KP_Begin, KP_5 ] };
key <KP6> { [ KP_Right, KP_6 ] };
key <KP1> { [ KP_End, KP_1 ] };
key <KP2> { [ KP_Down, KP_2 ] };
key <KP3> { [ KP_Next, KP_3 ] };
key <KPEN> { [ KP_Enter ] };
key <KP0> { [ KP_Insert, KP_0 ] };
key <KPDL> { [ KP_Delete, KP_Decimal ] };
// End "Keypad" section
modifier_map Shift { Shift_R };
modifier_map Control{ Control_R };
modifier_map Mod1 { Alt_L, Alt_R };
modifier_map Mod2 { Num_Lock };
modifier_map Mod5 { Scroll_Lock };
};
xkb_symbols "pc105" {
include "fr_latin0(pc102)"
key <LWIN> { [ Meta_L, Meta_R ] };
key <RWIN> { [ Multi_key ] };
key <MENU> { [ Menu ] };
modifier_map Mod1 { Alt_L, Alt_R };
modifier_map Mod4 { Meta_L, Meta_R };
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "fr_latin0(basic)"
key <AE01> { [ ampersand, 1 ],
[ apostrophe, periodcentered ] };
key <AE07> { [ egrave, 7 ],
[ grave, Egrave ] };
key <AD11> { [ asciicircum, diaeresis ],
[ asciitilde, quoteright ] };
};