diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index d594b2bf15..352d4ae721 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -505,7 +505,6 @@ local keyboardLayoutsDir local keyboardLayoutFiles = "Generic 104-key" "Generic 105-key International" - "IBM Laptop International" "Kinesis Advantage" "Kinesis Ergo Elan International" "TypeMatrix 2030" ; @@ -530,6 +529,25 @@ SEARCH on $(appleAluminumFiles) = $(appleAluminumDir) ; AddFilesToHaikuImage system data KeyboardLayouts Apple\ Aluminum : $(appleAluminumFiles) ; +# Add ThinkPad keyboard layout files to the image in a ThinkPad +# subdirectory. The subdirectory is turned into a submenu in the Layout menu +# of the Keymap preference app. +local thinkpadDir + = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ThinkPad ] ; +local thinkPadFiles = + "ThinkPad (US)" + "ThinkPad International" + "ThinkPad T400s (US)" + "ThinkPad T400s International" + "ThinkPad X1 (US)" + "ThinkPad X1 International" + "ThinkPad X100e (US)" + "ThinkPad X100e International" ; +thinkPadFiles = $(thinkPadFiles:G=keyboard-layout) ; +SEARCH on $(thinkPadFiles) = $(thinkpadDir) ; +AddFilesToHaikuImage system data KeyboardLayouts ThinkPad + : $(thinkPadFiles) ; + local driverSettingsFiles = kernel ; SEARCH on $(driverSettingsFiles) = [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ; diff --git a/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad (US) b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad (US) new file mode 100644 index 0000000000..5dc834fc13 --- /dev/null +++ b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad (US) @@ -0,0 +1,27 @@ +name = ThinkPad (US) + +# Size shortcuts +default-size = 18,18 +$s = 17,10 +$gap = 6,10 +$sgap = 5,10 +$backspace = 38,18 +$tab = 28,18 +$caps = 32,18 +$enter = d42,18 +$lshift = 41,18 +$rshift = 51,18 +$lctrl = 23,18 +$option = 13,18 +$space = 95,18 + +# Key rows +[ 0,0; $s:0x01; 148,10:-; $s:0x0e+2; $sgap:-; $s:0x1f+2; ] +[ 0,10; $s:0x02+3; $gap:-; $s:+4; $gap:-; $s:+4; $sgap:-; $s:0x34+2; ] +[ 0,20; :0x11+12; $backspace:+1; ] +[ 0,38; $tab:0x26; :+12; 28,18:+1; ] +[ 0,56; $caps:0x3b; :+11; $enter:0x47; ] +[ 0,74; $lshift:0x4b; :0x4c+9; $rshift:+1 ] +[ 0,92; :-; $lctrl:0x5c; $option:0x66; :0x5d; $space:+1; + :+1; :0x68; :0x60; $s:0x9a; $s:0x57; $s:0x9b ] +[ 221,102; $s:0x61+2; ] diff --git a/data/system/data/KeyboardLayouts/IBM Laptop International b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad International similarity index 80% rename from data/system/data/KeyboardLayouts/IBM Laptop International rename to data/system/data/KeyboardLayouts/ThinkPad/ThinkPad International index b595f9c934..f98e71dea0 100644 --- a/data/system/data/KeyboardLayouts/IBM Laptop International +++ b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad International @@ -1,4 +1,4 @@ -name = IBM Laptop International +name = ThinkPad International # Size shortcuts default-size = 18,18 @@ -17,10 +17,10 @@ $space = 95,18 # Key rows [ 0,0; $s:0x01; 148,10:-; $s:0x0e+2; $sgap:-; $s:0x1f+2; ] [ 0,10; $s:0x02+3; $gap:-; $s:+4; $gap:-; $s:+4; $sgap:-; $s:0x34+2; ] -[ 0,20; :0x11+12; $backspace:+1 ] +[ 0,20; :0x11+12; $backspace:+1; ] [ 0,38; $tab:0x26; :+12; $enter:0x47; ] [ 0,56; $caps:0x3b; :+11; :0x33 ] [ 0,74; $l-shift-ctrl:0x4b; :0x69; :0x4c+9; $r-shift:+1 ] -[ 0,92; :0x99; $l-shift-ctrl:0x5c; $option:0x66; :0x5d; $space:+1; +[ 0,92; :-; $l-shift-ctrl:0x5c; $option:0x66; :0x5d; $space:+1; :+1; :0x68; :0x60; $s:0x9a; $s:0x57; $s:0x9b ] [ 221,102; $s:0x61+2; ] diff --git a/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad T400s (US) b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad T400s (US) new file mode 100644 index 0000000000..aad37c6d72 --- /dev/null +++ b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad T400s (US) @@ -0,0 +1,28 @@ +name = ThinkPad T400s (US) + +# Size shortcuts +default-size = 18,18 +$s = 16,10 +$sdouble = 16,20 +$gap = 4,10 +$backspace = 38,18 +$tab = 28,18 +$caps = 32,18 +$enter = d42,18 +$lshift = 41,18 +$rshift = 51,18 +$lctrl = 23,18 +$option = 13,18 +$space = 95,18 +$arrow = 17,10 + +# Key rows +[ 0,0; $sdouble:0x01; 140,10:-; $s:0x0e+2; $s:0x1f; $gap:-; $sdouble:0x34; $s:0x20+1; ] +[ 0,10; 20,10:-; $s:0x02+3; $gap:-; $s:+4; $gap:-; $s:+4; 20,10:-; $s:0x35+1; ] +[ 0,20; :0x11+12; $backspace:+1; ] +[ 0,38; $tab:0x26; :+12; 28,18:+1; ] +[ 0,56; $caps:0x3b; :+11; $enter:0x47; ] +[ 0,74; $lshift:0x4b; :0x4c+9; $rshift:+1 ] +[ 0,92; :-; $lctrl:0x5c; $option:0x66; :0x5d; $space:+1; + :+1; :0x68; :0x60; $arrow:0x9a; $arrow:0x57; $arrow:0x9b ] +[ 221,102; $arrow:0x61+2; ] diff --git a/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad T400s International b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad T400s International new file mode 100644 index 0000000000..ca0d5b6998 --- /dev/null +++ b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad T400s International @@ -0,0 +1,27 @@ +name = ThinkPad T400s International + +# Size shortcuts +default-size = 18,18 +$s = 16,10 +$sdouble = 16,20 +$gap = 4,10 +$backspace = 38,18 +$tab = 28,18 +$caps = 32,18 +$enter = dl28,36,22 +$l-shift-ctrl = 23,18 +$r-shift = 51,18 +$option = 13,18 +$space = 95,18 +$arrow = 17,10 + +# Key rows +[ 0,0; $sdouble:0x01; 140,10:-; $s:0x0e+2; $s:0x1f; $gap:-; $sdouble:0x34; $s:0x20+1; ] +[ 0,10; 20,10:-; $s:0x02+3; $gap:-; $s:+4; $gap:-; $s:+4; 20,10:-; $s:0x35+1; ] +[ 0,20; :0x11+12; $backspace:+1; ] +[ 0,38; $tab:0x26; :+12; $enter:0x47; ] +[ 0,56; $caps:0x3b; :+11; :0x33 ] +[ 0,74; $l-shift-ctrl:0x4b; :0x69; :0x4c+9; $r-shift:+1 ] +[ 0,92; :-; $l-shift-ctrl:0x5c; $option:0x66; :0x5d; $space:+1; + :+1; :0x68; :0x60; $arrow:0x9a; $arrow:0x57; $arrow:0x9b ] +[ 221,102; $arrow:0x61+2; ] diff --git a/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X1 (US) b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X1 (US) new file mode 100644 index 0000000000..88c2e4e902 --- /dev/null +++ b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X1 (US) @@ -0,0 +1,28 @@ +name = ThinkPad X1 (US) + +# Size shortcuts +default-size = 18,18 +$s = 15,10 +$s2 = 23.5,10 +$backspace = 38,18 +$tab = 28,18 +$caps = 32,18 +$enter = d42,18 +$lshift = 42,18 +$rshift = 50,18 +$lctrl = 24,20 +$bottom = 18,20 +$space = 90,20 +$sarrow = 16,10 +$arrow = 18,10 + +# Key rows +[ 0,0; $s2:0x01; $s:+12; $s:0x20; $s:0x35; $s:0x1f; $s2:0x34; ] +[ 0,10; :0x11+12; $backspace:+1; ] +[ 0,28; $tab:0x26; :+12; 28,18:+1; ] +[ 0,46; $caps:0x3b; :+11; $enter:0x47; ] +[ 0,64; $lshift:0x4b; :0x4c+9; $rshift:+1 ] +[ 0,82; $bottom:-; $lctrl:0x5c; $bottom:0x66; $bottom:0x5d; $space:+1; + $bottom:+1; $bottom:0x0e; $bottom:0x60; $sarrow:0x21; $arrow:0x57; + $sarrow:0x36; ] +[ 222,92; $sarrow:0x61; $arrow:0x62; $sarrow:0x63; ] diff --git a/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X1 International b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X1 International new file mode 100644 index 0000000000..f00efe05ec --- /dev/null +++ b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X1 International @@ -0,0 +1,28 @@ +name = ThinkPad X1 International + +# Size shortcuts +default-size = 18,18 +$s = 15,10 +$s2 = 23.5,10 +$backspace = 38,18 +$tab = 28,18 +$caps = 32,18 +$enter = dl28,36,22 +$lshift = 24,18 +$rshift = 50,18 +$lctrl = 24,20 +$bottom = 18,20 +$space = 90,20 +$sarrow = 16,10 +$arrow = 18,10 + +# Key rows +[ 0,0; $s2:0x01; $s:+12; $s:0x20; $s:0x35; $s:0x1f; $s2:0x34; ] +[ 0,10; :0x11+12; $backspace:+1; ] +[ 0,28; $tab:0x26; :+12; $enter:0x47; ] +[ 0,46; $caps:0x3b; :+11; :0x33 ] +[ 0,64; $lshift:0x4b; :0x69; :0x4c+9; $rshift:+1 ] +[ 0,82; $bottom:-; $lctrl:0x5c; $bottom:0x66; $bottom:0x5d; $space:+1; + $bottom:+1; $bottom:0x0e; $bottom:0x60; $sarrow:0x21; $arrow:0x57; + $sarrow:0x36; ] +[ 222,92; $sarrow:0x61; $arrow:0x62; $sarrow:0x63; ] diff --git a/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X100e (US) b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X100e (US) new file mode 100644 index 0000000000..ebf9a24273 --- /dev/null +++ b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X100e (US) @@ -0,0 +1,26 @@ +name = ThinkPad X100e (US) + +# Size shortcuts +default-size = 19,18 +$s = 15.5,10 +$gap = 2.125,10 +$backspace = 25,18 +$tab = 25,18 +$caps = 32,18 +$enter = d31,18 +$shift = 41,18 +$bottom = 19,20 +$space = 105,20 +$sarrow = 17,10 +$arrow = 19,10 + +# Key rows +[ 0,0; $s:0x01; $gap:-; $s:+4; $gap:-; $s:+4; $gap:-; $s:+4; $gap:-; $s:0x1f; + $s:0x34; $s:0x20; $s:0x35; ] +[ 0,10; :0x11+12; $backspace:+1; ] +[ 0,28; $tab:0x26; :+13; ] +[ 0,46; $caps:0x3b; :+11; $enter:0x47; ] +[ 0,64; $shift:0x4b; :0x4c+9; $shift:+1 ] +[ 0,82; $bottom:-; $bottom:0x5c; $bottom:0x66; $bottom:0x5d; $space:+1; + $bottom:+1; $bottom:0x60; 17,9:0x21; $arrow:0x57; 17,9:0x36; ] +[ 219,92; $sarrow:0x61; $arrow:0x62; $sarrow:0x63; ] diff --git a/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X100e International b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X100e International new file mode 100644 index 0000000000..8161f73977 --- /dev/null +++ b/data/system/data/KeyboardLayouts/ThinkPad/ThinkPad X100e International @@ -0,0 +1,29 @@ +name = ThinkPad X100e International + +# Size shortcuts +default-size = 19,18 +$s = 15.5,10 +$gap = 2.125,10 +$backspace = 25,18 +$tab = 27,18 +$caps = 33,18 +$small = 16,18 +$enter = dl23,36,15 +$lshift = 22,18 +$rshift = 41,18 +$bottom = 19,20 +$space = 105,20 +$sarrow = 17,10 +$arrow = 19,10 + +# Key rows +[ 0,0; $s:0x01; $gap:-; $s:+4; $gap:-; $s:+4; $gap:-; $s:+4; $gap:-; $s:0x1f; + $s:0x34; $s:0x20; $s:0x35; ] +[ 0,10; :0x11+12; $backspace:+1; ] +[ 0,28; $tab:0x26; :+10; $small:+1; $small:+1; $enter:0x47; ] +[ 0,46; $caps:0x3b; :+10; $small:+1; $small:0x33; ] +[ 0,64; $lshift:0x4b; :0x69; :0x4c+9; $rshift:+1; ] +[ 0,82; $bottom:-; $bottom:0x5c; $bottom:0x66; $bottom:0x5d; $space:+1; + $bottom:+1; $bottom:0x60; 17,9:0x21; $arrow:0x57; + 17,9:0x36; ] +[ 219,92; $sarrow:0x61; $arrow:0x62; $sarrow:0x63; ]