summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--configure.in1
-rw-r--r--po/POTFILES.in1
-rw-r--r--rules/Makefile.am4
-rw-r--r--rules/base.extras.xml.in16
-rw-r--r--rules/base.l2_s.part1
-rw-r--r--rules/base.l3_s.part1
-rw-r--r--rules/base.l4_s.part1
-rw-r--r--rules/base.lists.part1
-rw-r--r--rules/base.ml_s.part1
-rw-r--r--symbols/Makefile.am2
-rw-r--r--symbols/extras/Makefile.am2
-rw-r--r--symbols/extras/apl296
-rw-r--r--xkbrules.am2
14 files changed, 326 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore
index bd5c2253..e15acf61 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,6 +56,7 @@ po/*.gmo
po/*.pot
po/messages.mo
po/stamp-po
+rules/base.extras.xml
rules/base.xml
rules/base.lst
rules/base
diff --git a/configure.in b/configure.in
index 8dded0c4..2ab90d61 100644
--- a/configure.in
+++ b/configure.in
@@ -77,6 +77,7 @@ symbols/sgi_vndr/Makefile
symbols/sony_vndr/Makefile
symbols/sun_vndr/Makefile
symbols/xfree68_vndr/Makefile
+symbols/extras/Makefile
types/Makefile
xkeyboard-config.spec
docs/Makefile
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 8b93ba49..901d327d 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1 +1,2 @@
rules/base.xml.in
+rules/base.extras.xml.in
diff --git a/rules/Makefile.am b/rules/Makefile.am
index 581568e7..8c72986c 100644
--- a/rules/Makefile.am
+++ b/rules/Makefile.am
@@ -162,7 +162,7 @@ dist_files = xkb.dtd README
rules_DATA = $(rules_files) $(lst_files) $(dist_files)
-xml_in_files = base.xml.in evdev.xml.in
+xml_in_files = base.xml.in evdev.xml.in base.extras.xml.in
xml_DATA = $(xml_in_files:.xml.in=.xml)
$(srcdir)/evdev.xml.in: base.xml.in
@@ -174,7 +174,7 @@ EXTRA_DIST= $(xml_in_files) xfree98 \
$(base_parts_compat_dist) \
xml2lst.pl merge.sh $(dist_files)
-CLEANFILES = base base.xml base.lst evdev evdev.xml evdev.lst
+CLEANFILES = base base.xml base.lst evdev evdev.xml evdev.lst base.extras.xml
MAINTAINERCLEANFILES = $(srcdir)/evdev.xml.in
rulesdir = $(xkb_base)/rules
diff --git a/rules/base.extras.xml.in b/rules/base.extras.xml.in
new file mode 100644
index 00000000..73d2bbeb
--- /dev/null
+++ b/rules/base.extras.xml.in
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
+<xkbConfigRegistry>
+ <modelList/>
+ <layoutList>
+ <layout>
+ <configItem>
+ <name>apl</name>
+ <_shortDescription>APL</_shortDescription>
+ <_description>APL</_description>
+ </configItem>
+ <variantList/>
+ </layout>
+ </layoutList>
+ <optionList/>
+</xkbConfigRegistry>
diff --git a/rules/base.l2_s.part b/rules/base.l2_s.part
index 03a7aafe..dd1825fd 100644
--- a/rules/base.l2_s.part
+++ b/rules/base.l2_s.part
@@ -1 +1,2 @@
+ $extralayouts = +extras/%l[2]%(v[2]):2
* = +%l[2]%(v[2]):2
diff --git a/rules/base.l3_s.part b/rules/base.l3_s.part
index 0947c11f..2b80547d 100644
--- a/rules/base.l3_s.part
+++ b/rules/base.l3_s.part
@@ -1 +1,2 @@
+ $extralayouts = +extras/%l[3]%(v[3]):3
* = +%l[3]%(v[3]):3
diff --git a/rules/base.l4_s.part b/rules/base.l4_s.part
index 23ccc22e..6a2268f1 100644
--- a/rules/base.l4_s.part
+++ b/rules/base.l4_s.part
@@ -1 +1,2 @@
+ $extralayouts = +extras/%l[4]%(v[4]):4
* = +%l[4]%(v[4]):4
diff --git a/rules/base.lists.part b/rules/base.lists.part
index c726a067..e8f2446c 100644
--- a/rules/base.lists.part
+++ b/rules/base.lists.part
@@ -92,3 +92,4 @@
! $thinkpads = thinkpad thinkpad60 thinkpadz60
+! $extralayouts = apl
diff --git a/rules/base.ml_s.part b/rules/base.ml_s.part
index 7e9b2d63..036695c1 100644
--- a/rules/base.ml_s.part
+++ b/rules/base.ml_s.part
@@ -22,4 +22,5 @@
olpc * = olpc+%l%(v)
$thinkpads br = pc+br(thinkpad)
* $nonlatin = pc+us+%l%(v):2
+ * $extralayouts = pc+extras/%l%(v)
* * = pc+%l%(v)
diff --git a/symbols/Makefile.am b/symbols/Makefile.am
index d033a159..472a3992 100644
--- a/symbols/Makefile.am
+++ b/symbols/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = digital_vndr fujitsu_vndr hp_vndr macintosh_vndr nec_vndr sgi_vndr sony_vndr sun_vndr xfree68_vndr
+SUBDIRS = digital_vndr fujitsu_vndr hp_vndr macintosh_vndr nec_vndr sgi_vndr sony_vndr sun_vndr xfree68_vndr extras
symbolsdir = $(xkb_base)/symbols
dist_symbols_DATA = \
diff --git a/symbols/extras/Makefile.am b/symbols/extras/Makefile.am
new file mode 100644
index 00000000..0d1793d4
--- /dev/null
+++ b/symbols/extras/Makefile.am
@@ -0,0 +1,2 @@
+symbolsdir = $(xkb_base)/symbols/extras
+dist_symbols_DATA = apl
diff --git a/symbols/extras/apl b/symbols/extras/apl
new file mode 100644
index 00000000..29eafe71
--- /dev/null
+++ b/symbols/extras/apl
@@ -0,0 +1,296 @@
+// APL Keyboard Layouts
+
+// This file supports:
+// - The Sharp APL for Unix (SAX) layout
+// - The IBM APL2 layout
+// - The Manugistics APL*PLUS II (Version 5.1, 1993) keyboard layout
+
+// Unicode APL table: http://aplwiki.com/UnicodeAplTable
+// ...and another: http://publibfp.boulder.ibm.com/epubs/pdf/h2110611.pdf (appendix A)
+// Generic Unicode stuff: http://www.fileformat.info/info/unicode/category/index.htm
+
+// Tim Nelson (this file's creator) says:
+
+// This file doesn't deal with all the combining stuff -- I'm not an APL programmer,
+// and am not quite sure what's needed here. However, it may be possible to get this
+// working with dead keys and the like. Patches gratefully accepted.
+
+// Some of the shift-key assignments may differ from the APL tradition. If
+// that's not considered acceptable, it should be possible to remap the
+// shift keys. I have striven, however, to ensure that the use of shift keys
+// in these maps is at least self-consistent.
+
+// I'm assuming that this will be used with another keyboard layout (ie. for
+// your language), with a special shift key to use these maps.
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "common" {
+ name[Group1]= "APL Keyboard Symbols: Common";
+
+ key <AE01> { [ diaeresis ] };
+ key <AE02> { [ U00AF ] }; // ¯ -- Macron
+ key <AE03> { [ less ] };
+ key <AE04> { [ U2264 ] }; // ≤ -- Less-than Or Equal To
+ key <AE05> { [ equal ] };
+ key <AE06> { [ U2265 ] }; // ≥ -- Greater-than Or Equal To
+ key <AE07> { [ greater ] };
+ key <AE08> { [ U2260 ] }; // ≠ -- Not Equal To
+ key <AE09> { [ U2228 ] }; // ∨ -- Logical Or
+ key <AE10> { [ U2227 ] }; // ∧ -- Logical And
+
+ // Q
+ key <AD01> { [ question ] };
+ // W
+ key <AD02> { [ U2375 ] }; // ⍵ -- APL Functional Symbol Omega
+ // E
+ key <AD03> { [ U220A ] }; // ∊ -- Small Element Of
+ // R
+ key <AD04> { [ U2374 ] }; // ⍴ -- APL Functional Symbol Rho
+ // T
+ key <AD05> { [ asciitilde ] };
+ // Y
+ key <AD06> { [ U2191 ] }; // ↑ -- Upwards Arrow
+ // U
+ key <AD07> { [ U2193 ] }; // ↓ -- Downwards Arrow
+ // I
+ key <AD08> { [ U2373 ] }; // ⍳ -- APL Functional Symbol Iota
+ // O
+ key <AD09> { [ U25CB ] }; // ○ -- White Circle
+ // P
+ key <AD10> { [ U22C6 ] }; // ⋆ -- Should this be a plain asterisk, or the star operator???
+ // [
+ key <AD11> { [ U2190 ] }; // ← -- Leftwards Arrow
+
+ // A
+ key <AC01> { [ U237A ] }; // ⍺ -- APL Functional Symbol Alpha
+ // S
+ key <AC02> { [ U2308 ] }; // ⌈ -- Left Ceiling
+ // D
+ key <AC03> { [ U230A ] }; // ⌊ -- Left Floor
+ // F
+ key <AC04> { [ underscore ] };
+ // G
+ key <AC05> { [ U2207 ] }; // ∇ -- Nabla
+ // H
+ key <AC06> { [ U2206 ] }; // ∆ -- Increment
+ // J
+ key <AC07> { [ U2218 ] }; // ∘ -- Ring Operator
+ // K
+ key <AC08> { [ apostrophe ] };
+ // L
+ key <AC09> { [ U2395 ] }; // ⎕ -- APL Functional Symbol Quad
+
+ // Z
+ key <AB01> { [ U2282 ] }; // ⊂ -- Subset Of
+ // X
+ key <AB02> { [ U2283 ] }; // ⊃ -- Superset Of
+ // C
+ key <AB03> { [ U2229 ] }; // ∩ -- Intersection
+ // V
+ key <AB04> { [ U222A ] }; // ∪ -- Union
+ // B
+ key <AB05> { [ U22A5 ] }; // ⊥ -- Up Tack
+ // N
+ key <AB06> { [ U22A4 ] }; // ⊤ -- Down Tack
+ // M
+ key <AB07> { [ U007C ] }; // | -- Vertical Line
+};
+
+// Keys common to a number of keyboards that allow normal language usage alongside APL
+partial alphanumeric_keys modifier_keys
+xkb_symbols "unified" {
+ name[Group1]= "APL Keyboard Symbols: Unified Layout";
+
+ include "apl(common)"
+
+ // `
+ key <TLDE> { [ U22C4 ] }; // ⋄ -- Diamond Operator
+ key <AE09> { [ NoSymbol, U2371 ] }; // ⍱ -- APL Functional Symbol Down Caret Tilde
+ key <AE10> { [ NoSymbol, U2372 ] }; // ⍲ -- APL Functional Symbol Up Caret Tilde
+ // -
+ key <AE11> { [ U00D7 ] }; // × -- Multiplication Sign
+ // =
+ key <AE12> { [ U00F7, U2339 ] }; // ÷ ⌹ -- Division Sign / APL Functional Symbol Quad Divide
+
+ // ]
+ key <AD12> { [ U2192 ] }; // → -- Rightwards Arrow
+};
+
+// Layout: http://www.wickensonline.co.uk/apl-unicomp.html
+default
+partial alphanumeric_keys modifier_keys
+xkb_symbols "sax" {
+ name[Group1]= "APL Keyboard Symbols: Sharp APL for Unix";
+
+ include "apl(unified)"
+
+ key <AE01> { [ NoSymbol, U00A1 ] }; // ¡ -- Inverted Exclamation Mark
+ key <AE04> { [ NoSymbol, cent ] };
+ key <AE08> { [ NoSymbol, U2342 ] }; // ⍂ -- APL Functional Symbol Quad Backslash
+ // -
+ key <AE11> { [ NoSymbol, U2261 ] }; // ≡ -- Identical To
+
+ // Q
+ key <AD01> { [ NoSymbol, U00BF ] }; // ¿ -- Inverted Question Mark
+ // W
+ key <AD02> { [ NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile
+ // E
+ key <AD03> { [ NoSymbol, U2377 ] }; // ⍷ -- APL Functional Symbol Epsilon Underbar
+ // T
+ key <AD05> { [ NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash
+ // I
+ key <AD08> { [ NoSymbol, U2378 ] }; // ⍸ -- APL Functional Symbol Iota Underbar
+ // O
+ key <AD09> { [ NoSymbol, U2365 ] }; // ⍥ -- APL Functional Symbol Circle Diaeresis
+ // P
+ key <AD10> { [ NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star
+
+ // A
+ key <AC01> { [ NoSymbol, U2296 ] }; // ⊖ -- Circled Minus
+ // F
+ key <AC04> { [ NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde
+ // G
+ key <AC05> { [ NoSymbol, U2352 ] }; // ∇ ⍒ -- APL Functional Symbol Del Stile
+ // H
+ key <AC06> { [ NoSymbol, U234B ] }; // ∆ ⍋ -- APL Functional Symbol Delta Stile
+ // J
+ key <AC07> { [ NoSymbol, U2364 ] }; // ⍤ -- APL Functional Symbol Jot Diaeresis
+ // K
+ key <AC08> { [ NoSymbol, U233B ] }; // ⌻
+ // L
+ key <AC09> { [ NoSymbol, U235E ] }; // ⍞ -- APL Functional Symbol Quote Quad
+ // ;
+ key <AC10> { [ U22A2 ] }; // ⊢ -- Right Tack
+ // '
+ key <AC11> { [ U22A3 ] }; // ⊣ -- Left Tack
+
+ // C
+ key <AB03> { [ NoSymbol, U235D ] }; // ⍝ -- APL Functional Symbol Up Shoe Jot
+ // B
+ key <AB05> { [ NoSymbol, U234E ] }; // ⍎ -- APL Functional Symbol Down Tack Jot (Unicode got the name wrong; it should have been "Up Tack")
+ // N
+ key <AB06> { [ NoSymbol, U2355 ] }; // ⍕ -- APL Functional Symbol Up Tack Jot (Unicode got the name wrong; it should have been "Down Tack")
+ // M
+ key <AB07> { [ NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam
+ // ,
+ key <AB08> { [ U235E, U236A ] }; // ⍞ ⍪ -- APL Functional Symbol Quote Quad / APL Functional Symbol Comma Bar
+ // .
+ key <AB09> { [ U234E, U2359 ] }; // ⍎ ⍙ -- [See B key] / APL Functional Symbol Delta Underbar
+ // /
+ key <AB10> { [ U2355, U233F ] }; // ⍕ ⌿ -- [See N key] / APL Functional Symbol Slash Bar
+
+ key <BKSL> { [ U235D, U2340 ] }; // ⍝ ⍀ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Backslash Bar
+};
+
+// Layout: http://www.wickensonline.co.uk/apl-unicomp.html
+partial alphanumeric_keys modifier_keys
+xkb_symbols "apl2" {
+ name[Group1]= "APL Keyboard Symbols: IBM APL2";
+
+ include "apl(common)"
+
+ // The first column is NoSymbol because it inherits. The second is NoSymbol because those keys don't do anything
+
+ // `
+ key <TLDE> { [ NoSymbol, U233B, U2342 ] }; // ⌻ ⍂ --
+ key <AE01> { [ NoSymbol, NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam
+ key <AE02> { [ NoSymbol, NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde
+ key <AE03> { [ NoSymbol, NoSymbol, U2353 ] }; // ⍒ -- APL Functional Symbol Del Stile
+ key <AE04> { [ NoSymbol, NoSymbol, U234B ] }; // ⍋ -- APL Functional Symbol Delta Stile
+ key <AE05> { [ NoSymbol, NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile
+ key <AE06> { [ NoSymbol, NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash
+ key <AE07> { [ NoSymbol, NoSymbol, U2296 ] }; // ⊖ -- Circled Minus
+ key <AE08> { [ NoSymbol, NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star
+ key <AE09> { [ NoSymbol, NoSymbol, U2371 ] }; // ⍱ -- APL Functional Symbol Down Caret Tilde
+ key <AE10> { [ NoSymbol, NoSymbol, U2372 ] }; // ⍲ -- APL Functional Symbol Up Caret Tilde
+ // -
+ key <AE11> { [ plus, minus, exclam ] };
+ // =
+ key <AE12> { [ U00D7, U00F7, U2339 ] }; // × ÷ ⌹ -- Multiplication Sign / Division Sign / APL Functional Symbol Quad Divide
+
+ // [
+ key <AD11> { [ NoSymbol, U2192, U235E ] }; // (←) → ⍞ -- Rightwards Arrow / APL Functional Symbol Quote Quad
+ // ]
+ key <AD12> { [ U2337, U2378, U2359 ] }; // ⌷ ⍸ ⍙ -- APL Functional Symbol Squish Quad / APL Functional Symbol Iota Underbar / APL Functional Symbol Delta Underbar
+
+ // ;
+ key <AC10> { [ bracketleft, parenleft, U234E ] }; // ⍎ -- [See B key in SAX layout]
+ // '
+ key <AC11> { [ bracketright, parenright, U2355 ] }; // ⍕ -- [See N key in SAX layout]
+
+ // ,
+ key <AB08> { [ comma, semicolon, U235D ] }; // ⍝ -- APL Functional Symbol Up Shoe Jot
+ // .
+ key <AB09> { [ period, colon, U2340 ] }; // ⍀ -- APL Functional Symbol Backslash Bar
+ // /
+ key <AB10> { [ slash, backslash, U233F ] }; // ⌿ -- APL Functional Symbol Slash Bar
+
+ key <BKSL> { [ U2261, U2377, U2364 ] }; // ≡ ⍷ ⍤ -- Identical To / APL Functional Symbol Epsilon Underbar / APL Functional Symbol Jot Diaeresis
+};
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "aplplusII" {
+ name[Group1]= "APL Keyboard Symbols: Manugistics APL*PLUS II";
+
+ include "apl(apl2)"
+
+ // `
+ key <TLDE> { [ dollar, U22C4, U236A ] }; // ⋄ ⍪ -- Diamond Operator / APL Functional Symbol Comma Bar
+ key <AE01> { [ NoSymbol, NoSymbol, U2261 ] }; // ≡ -- Identical To
+
+ // [
+ key <AD11> { [ U2190, NoSymbol, U235E ] }; // ← ⍞ -- Leftwards Arrow / APL Functional Symbol Quote Quad
+ // ]
+ key <AD12> { [ U2192, NoSymbol, U236C ] }; // → ⍬ -- Rightwards Arrow / APL Functional Symbol Zilde
+
+ // ;
+ key <AC10> { [ bracketleft, parenleft, U234E ] }; // ⍎ -- [See B key in SAX layout]
+ // '
+ key <AC11> { [ bracketright, parenright, U2355 ] }; // ⍕ -- [See N key in SAX layout]
+
+ key <BKSL> { [ U22A3, U22A2, U2359 ] }; // ⊣ ⊢ ⍙ -- Left Tack / Right Tack / APL Functional Symbol Delta Underbar
+};
+
+
+// MicroAPL layout: http://aplwiki.com/APLXKeyboardLayouts
+// I didn't do the old-style MicroAPL layout; patches gratefully accepted
+partial alphanumeric_keys modifier_keys
+xkb_symbols "aplx" {
+ name[Group1]= "APL Keyboard Symbols: APLX Unified APL Layout";
+
+ include "apl(unified)"
+
+ // `
+ key <TLDE> { [ NoSymbol, U235E ] }; // ⍞ -- APL Functional Symbol Quote Quad
+ key <AE01> { [ NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam
+ key <AE02> { [ NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde
+ key <AE03> { [ NoSymbol, U2353 ] }; // ⍒ -- APL Functional Symbol Del Stile
+ key <AE04> { [ NoSymbol, U234B ] }; // ⍋ -- APL Functional Symbol Delta Stile
+ key <AE05> { [ NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile
+ key <AE06> { [ NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash
+ key <AE07> { [ NoSymbol, U2296 ] }; // ⊖ -- Circled Minus
+ key <AE08> { [ NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star
+ // -
+ key <AE11> { [ NoSymbol, exclam ] };
+
+ // [
+ key <AD11> { [ NoSymbol, U2347 ] }; // ⍇ -- Box With Left Arrow
+ // ]
+ key <AD12> { [ NoSymbol, U2348 ] }; // ⍈ -- Box With Right Arrow
+
+ // ;
+ key <AC10> { [ U234E, U2261 ] }; // ⍎ ≡ -- [See B key in SAX layout] / Identical To
+ // '
+ key <AC11> { [ U2355, U2262 ] }; // ⍕ ≢ -- [See N key in SAX layout] / Not Identical To
+
+ // ,
+ key <AB08> { [ U235D, U236A ] }; // ⍝ ⍪ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Comma Bar
+ // .
+ key <AB09> { [ U2340, U2364 ] }; // ⍀ ⍤ -- APL Functional Symbol Backslash Bar / APL Functional Symbol Jot Diaeresis
+ // /
+ key <AB10> { [ U233F ] }; // ⌿ -- APL Functional Symbol Slash Bar
+
+ key <BKSL> { [ U22A3, U22A3 ] }; // ⊣ ⊢ -- Left Tack / Right Tack
+};
+
+
diff --git a/xkbrules.am b/xkbrules.am
index 6fde169f..0251b749 100644
--- a/xkbrules.am
+++ b/xkbrules.am
@@ -8,7 +8,7 @@ dirdir = $(xkb_base)
$(subdir).dir: $(dir_data)
-rm -f $@
- here=$$(pwd); cd $(srcdir) && $(XKBCOMP) -lfhlpR -o $${here}/$@ '*'
+ here=$(abs_builddir); cd $(srcdir) && $(XKBCOMP) -lfhlpR -o $${here}/$@ '*'
CLEANFILES = $(subdir).dir