XKB: french layout with OSS variant, "flawless" version (no more xkbcomp warnings)

shell: further TeXlive netinstall support.
master
Ambrevar 2012-09-07 19:54:29 +02:00
parent 86c02a9694
commit e8adcc1c9d
6 changed files with 153 additions and 24 deletions

View File

@ -1,9 +1,9 @@
# -*- mode: snippet -*-
# contributor : Xavier Danaux <xdanaux@gmail.com>
# contributor : Pierre Neidhardt <ambrevar at gmail dot com> 2012-04-27
# key: let
# key: letter
# group: skeleton
# name: \documentclass{article} ...
# name: \documentclass{article} % Letter style
# --
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[12pt]{article}

View File

@ -3,13 +3,15 @@ amsfonts
amsmath
beamer
bigfoot
collection-latex
colortbl
easylist
ec
enctex
eso-pic
eurosym
etoolbox
eukdate
eurosym
fancyhdr
fix2col
geometry
@ -31,3 +33,4 @@ wrapfig
xargs
xcolor
zapfding
lm

View File

@ -767,15 +767,24 @@ fi
## TeXlive
if [ -d "/usr/local/texlive" ]; then
## Warning: it is important to set umask properly, otherwise users might
## not have authorization to use the packages.
## TODO: It is dirty to invoke a subshell several times.
## Would be better to pass one parameter, then to tokenize it.
tli ()
{
## Warning: it is important to set umask properly, otherwise users might
## not have authorization to use the packages.
## TODO: It is dirty to invoke a subshell several times.
## Would be better to pass one parameter, then to tokenize it.
for i ; do
sudo bash -c 'umask 022 && tlmgr install "$0"' "$i"
done
}
tlr ()
{
for i ; do
sudo bash -c 'umask 022 && tlmgr remove "$0"' "$i"
done
}
fi

View File

@ -10,23 +10,23 @@ umask 027
## Path
export PATH=.:$PATH
export MANPATH=/usr/local/man:$MANPATH
export INFOPATH=/usr/local/info:$INFOPATH
## TeXlive
# TEXDIR="${TEXDIR:-/usr/local/texlive}"
# if [ -d "${TEXDIR}" ]; then
# TEXYEAR=$(/bin/ls -1r "${TEXDIR}" | grep -m1 "[0-9]\{4\}")
# TEXDISTRO=$(uname | tr "[[:upper:]]" "[[:lower:]]")
# TEXFOLDER="${TEXDIR}/${TEXYEAR}/bin/$(uname -m)-${TEXDISTRO}/"
# if [ -d "${TEXFOLDER}" ]; then
# export PATH=${TEXFOLDER}:$PATH
# fi
# unset TEXYEAR
# unset TEXDISTRO
# unset TEXFOLDER
# fi
# unset TEXDIR
TEXDIR="${TEXDIR:-/usr/local/texlive}"
if [ -d "${TEXDIR}" ]; then
TEXYEAR=$(/bin/ls -1r "${TEXDIR}" | grep -m1 "[0-9]\{4\}")
TEXDISTRO=$(uname -m)-$(uname | tr "[[:upper:]]" "[[:lower:]]")
TEXFOLDER="${TEXDIR}/${TEXYEAR}/bin/${TEXDISTRO}/"
if [ -d "${TEXFOLDER}" ]; then
export PATH=${TEXFOLDER}:$PATH
export MANPATH=${TEXDIR}/${TEXYEAR}/texmf/doc/man:$MANPATH
export INFOPATH=${TEXDIR}/${TEXYEAR}/texmf/doc/info:$INFOPATH
fi
unset TEXYEAR
unset TEXDISTRO
unset TEXFOLDER
fi
unset TEXDIR
## Enable color support of ls.
if [ "$TERM" != "dumb" ]; then

118
.xkb/symbols/frex Normal file
View File

@ -0,0 +1,118 @@
//------------------------------------------------------------------------------
// XKB Custom french keyboard
// 2012-09-07
//------------------------------------------------------------------------------
// This is used to fix the conflicts generated by chain-includes from original
// files.
partial default alphanumeric_keys
xkb_symbols "basic" {
// Default for latin languages.
include "latin"
// Original "level3(ralt_switch)" is messy, so we use our own one (see below).
include "frex(ralt_switch)"
// Not very useful?
include "nbsp(level4n)"
// Useless if you do not have level5 keys.
// include "level5(rctrl_switch)"
// Not so common keypad. Might be messy.
// include "keypad(oss)"
// Here follows the Xorg "oss" variant of the french keyboard.
name[Group1]="French (alternative)";
// First row
key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸
key <AE01> { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨
key <AE02> { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É
key <AE03> { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘
key <AE04> { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin)
key <AE05> { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ (tiret demi-cadratin)
key <AE06> { [ minus, 6, bar, 0x1002011 ] }; // - 6 | (tiret insécable)
key <AE07> { [ egrave, 7, grave, Egrave ] }; // è 7 ` È
key <AE08> { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™
key <AE09> { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç
key <AE10> { [ agrave, 0, at, Agrave ] }; // à 0 @ À
key <AE11> { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠
key <AE12> { [ equal, plus, braceright, plusminus ] }; // = + } ±
// Second row
key <AD01> { [ a, A, ae, AE ] }; // a A æ Æ
key <AD02> { [ z, Z, acircumflex, Acircumflex ] }; // z Z â Â
key <AD03> { [ e, E, EuroSign, cent ] }; // e E € ¢
key <AD04> { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê
key <AD05> { [ t, T, thorn, THORN ] }; // t T þ Þ
key <AD06> { [ y, Y, ydiaeresis, Ydiaeresis ] }; // y Y ÿ Ÿ
key <AD07> { [ u, U, ucircumflex, Ucircumflex ] }; // u U û Û
key <AD08> { [ i, I, icircumflex, Icircumflex ] }; // i I î Î
key <AD09> { [ o, O, oe, OE ] }; // o O œ Œ
key <AD10> { [ p, P, ocircumflex, Ocircumflex ] }; // p P ô Ô
key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚
key <AD12> { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø
// Third row
key <AC01> { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä
key <AC02> { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „
key <AC03> { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë
key <AC04> { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F
key <AC05> { [ g, G, rightsinglequotemark, yen ] }; // g G ¥
key <AC06> { [ h, H, eth, ETH ] }; // h H ð Ð
key <AC07> { [ j, J, udiaeresis, Udiaeresis ] }; // j J ü Ü
key <AC08> { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï
key <AC09> { [ l, L, 0x1000140, 0x100013F ] }; // l L ŀ Ŀ
key <AC10> { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö
key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù
key <BKSL> { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄
// Fourth row
key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥
key <AB01> { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “
key <AB02> { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ”
key <AB03> { [ c, C, copyright, registered ] }; // c C © ®
key <AB04> { [ v, V, 0x100202F, leftarrow ] }; // v V ⍽ ← (espace fine insécable)
key <AB05> { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑
key <AB06> { [ n, N, notsign, rightarrow ] }; // n N ¬ →
key <AB07> { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ …
key <AB08> { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . ×
key <AB09> { [ colon, slash, division, 0x1002215 ] }; // : / ÷
key <AB10> { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡
};
// RALT (a.k.a. Alt_Gr) modifier.
//
// The Xorg issue comes from the definition from 'symbol/pc(pc104)' where RALT
// is defined as a
//
// type[Group1]="TWO_LEVEL"
//
// whereas it is defined as a
//
// type[Group1]="ONE_LEVEL"
//
// in 'level3'. Since we do not want to change the original file, there is two
// possible fixes:
//
// * Instead of using 'level3', we use our own TWO_LEVEL definition.
//
// * We use our own definition of pc104. The user needs to specify the new
// geometry explicitely, either in Xorg config or with setxkbmap.
//
// TODO: if the next section is put before the alphabetical section, it messes up. Why?
partial modifier_keys
xkb_symbols "ralt_switch" {
key <RALT> {
type[Group1]="TWO_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift , ISO_Level3_Shift ]
};
modifier_map Mod5 { ISO_Level3_Shift };
};

3
README
View File

@ -37,8 +37,7 @@ only. A more convenient solution:
Some applications will need extra dependencies other than the default ones. You
might have a look at the .arch-pkg-explicit* files to see what software I've
been using.
might have a look at the .pkg-* files to see what software I've been using.
Final word: do not forget to read the manpages!