{"type":"rich","version":"1.0","provider_name":"phorkie","provider_url":"https:\/\/p.cweiske.de\/","title":"German keyboard layout kinesis ego advantage2","author_name":"Christian Weiske","cache_age":86400,"width":900,"height":900,"html":"<!-- embedding all files of https:\/\/p.cweiske.de\/690 -->\n<link rel=\"stylesheet\" href=\"https:\/\/p.cweiske.de\/css\/embed.css\"\/>\n<div class=\"phork\" id=\"690\">\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <div class=\"image\"><img src=\"690\/rev-raw\/2f202557f24cec13b8b9614f1dcbaeac048b54c2\/2020-09-10 xkbcomp umlauts escape characters.png\" alt=\"2020-09-10 xkbcomp umlauts escape characters.png\"\/><\/div>\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/690\/rev-raw\/2f202557f24cec13b8b9614f1dcbaeac048b54c2\/2020-09-10 xkbcomp umlauts escape characters.png\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/690#2020-09-10 xkbcomp umlauts escape characters.png\">2020-09-10 xkbcomp umlauts escape characters.png<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <style type=\"text\/css\"><\/style><div class=\"code\"><table class=\"xkb\"><tbody><tr class=\"li1\"><td class=\"ln\"><pre class=\"de1\">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n53\n54\n55\n56\n57\n58\n59\n60\n61\n<\/pre><\/td><td class=\"de1\"><pre class=\"de1\">partial\nxkb_types &quot;complete&quot; {\n&#160; &#160; type &quot;FOUR_LEVEL_RALT&quot; {\n&#160; &#160; &#160; &#160; modifiers= Shift+LevelThree;\n&#160; &#160; &#160; &#160; map[Shift]= Level2;\n&#160; &#160; &#160; &#160; map[LevelThree]= Level3;\n&#160; &#160; &#160; &#160; map[Shift+LevelThree]= Level4;\n&#160; &#160; &#160; &#160; level_name[Level1]= &quot;Base&quot;;\n&#160; &#160; &#160; &#160; level_name[Level2]= &quot;Shift&quot;;\n&#160; &#160; &#160; &#160; level_name[Level3]= &quot;Level3&quot;;\n&#160; &#160; &#160; &#160; level_name[Level4]= &quot;Shift Level3&quot;;\n&#160; &#160; };\n};\n&#160;\npartial\nxkb_symbols &quot;pc+de(nodeadkeys)+us:2+de:3+inet(evdev)&quot; {\n&#160; &#160; include &quot;pc+de(nodeadkeys)+us:2+de:3+inet(evdev)&quot;\n&#160;\n&#160; &#160; key &lt;AC01&gt; {\n&#160; &#160; &#160; &#160; type[group1]= &quot;FOUR_LEVEL_ALPHABETIC&quot;,\n&#160; &#160; &#160; &#160; type[group2]= &quot;FOUR_LEVEL_RALT&quot;,\n&#160; &#160; &#160; &#160; type[group3]= &quot;FOUR_LEVEL_ALPHABETIC&quot;,\n&#160; &#160; &#160; &#160; symbols[Group1]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; a, &#160; &#160; &#160; &#160; &#160; &#160; &#160; A, &#160; &#160; &#160; &#160; &#160; &#160; &#160;ae, &#160; &#160; &#160; &#160; &#160; &#160; &#160;AE ],\n&#160; &#160; &#160; &#160; symbols[Group2]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; a, &#160; &#160; &#160; &#160; &#160; &#160; &#160; A, &#160; &#160; &#160;adiaeresis, &#160; &#160; &#160;Adiaeresis ],\n&#160; &#160; &#160; &#160; symbols[Group3]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; a, &#160; &#160; &#160; &#160; &#160; &#160; &#160; A, &#160; &#160; &#160; &#160; &#160; &#160; &#160;ae, &#160; &#160; &#160; &#160; &#160; &#160; &#160;AE ]\n&#160; &#160; };\n&#160; &#160; key &lt;AC02&gt; {\n&#160; &#160; &#160; &#160; type[group1]= &quot;FOUR_LEVEL_SEMIALPHABETIC&quot;,\n&#160; &#160; &#160; &#160; type[group2]= &quot;FOUR_LEVEL_RALT&quot;,\n&#160; &#160; &#160; &#160; type[group3]= &quot;FOUR_LEVEL_SEMIALPHABETIC&quot;,\n&#160; &#160; &#160; &#160; symbols[Group1]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; s, &#160; &#160; &#160; &#160; &#160; &#160; &#160; S, &#160; &#160; &#160; &#160; &#160; U017F, &#160; &#160; &#160; &#160; &#160; U1E9E ],\n&#160; &#160; &#160; &#160; symbols[Group2]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; s, &#160; &#160; &#160; &#160; &#160; &#160; &#160; S, &#160; &#160; &#160; &#160; &#160;ssharp, &#160; &#160; &#160; &#160; &#160;ssharp ],\n&#160; &#160; &#160; &#160; symbols[Group3]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; s, &#160; &#160; &#160; &#160; &#160; &#160; &#160; S, &#160; &#160; &#160; &#160; &#160; U017F, &#160; &#160; &#160; &#160; &#160; U1E9E ]\n&#160; &#160; };\n&#160;\n&#160; &#160; key &lt;AD03&gt; {\n&#160; &#160; &#160; &#160; type[group1]= &quot;FOUR_LEVEL_SEMIALPHABETIC&quot;,\n&#160; &#160; &#160; &#160; type[group2]= &quot;FOUR_LEVEL_RALT&quot;,\n&#160; &#160; &#160; &#160; type[group3]= &quot;FOUR_LEVEL_SEMIALPHABETIC&quot;,\n&#160; &#160; &#160; &#160; symbols[Group1]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; e, &#160; &#160; &#160; &#160; &#160; &#160; &#160; E, &#160; &#160; &#160; &#160;EuroSign, &#160; &#160; &#160; &#160;EuroSign ],\n&#160; &#160; &#160; &#160; symbols[Group2]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; e, &#160; &#160; &#160; &#160; &#160; &#160; &#160; E, &#160; &#160; &#160; &#160;EuroSign, &#160; &#160; &#160; &#160;EuroSign ],\n&#160; &#160; &#160; &#160; symbols[Group3]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; e, &#160; &#160; &#160; &#160; &#160; &#160; &#160; E, &#160; &#160; &#160; &#160;EuroSign, &#160; &#160; &#160; &#160;EuroSign ]\n&#160; &#160; };\n&#160; &#160; key &lt;AD07&gt; {\n&#160; &#160; &#160; &#160; type[group1]= &quot;FOUR_LEVEL_SEMIALPHABETIC&quot;,\n&#160; &#160; &#160; &#160; type[group2]= &quot;FOUR_LEVEL_RALT&quot;,\n&#160; &#160; &#160; &#160; type[group3]= &quot;FOUR_LEVEL_SEMIALPHABETIC&quot;,\n&#160; &#160; &#160; &#160; symbols[Group1]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; u, &#160; &#160; &#160; &#160; &#160; &#160; &#160; U, &#160; &#160; &#160; downarrow, &#160; &#160; &#160; &#160; uparrow ],\n&#160; &#160; &#160; &#160; symbols[Group2]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; u, &#160; &#160; &#160; &#160; &#160; &#160; &#160; U, &#160; &#160; &#160;udiaeresis, &#160; &#160; &#160;Udiaeresis ],\n&#160; &#160; &#160; &#160; symbols[Group3]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; u, &#160; &#160; &#160; &#160; &#160; &#160; &#160; U, &#160; &#160; &#160; downarrow, &#160; &#160; &#160; &#160; uparrow ]\n&#160; &#160; };\n&#160; &#160; key &lt;AD09&gt; {\n&#160; &#160; &#160; &#160; type[group1]= &quot;FOUR_LEVEL_ALPHABETIC&quot;,\n&#160; &#160; &#160; &#160; type[group2]= &quot;FOUR_LEVEL_RALT&quot;,\n&#160; &#160; &#160; &#160; type[group3]= &quot;FOUR_LEVEL_ALPHABETIC&quot;,\n&#160; &#160; &#160; &#160; symbols[Group1]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; o, &#160; &#160; &#160; &#160; &#160; &#160; &#160; O, &#160; &#160; &#160; &#160; &#160;oslash, &#160; &#160; &#160; &#160; &#160;Oslash ],\n&#160; &#160; &#160; &#160; symbols[Group2]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; o, &#160; &#160; &#160; &#160; &#160; &#160; &#160; O, &#160; &#160; &#160;odiaeresis, &#160; &#160; &#160;Odiaeresis ],\n&#160; &#160; &#160; &#160; symbols[Group3]= [ &#160; &#160; &#160; &#160; &#160; &#160; &#160; o, &#160; &#160; &#160; &#160; &#160; &#160; &#160; O, &#160; &#160; &#160; &#160; &#160;oslash, &#160; &#160; &#160; &#160; &#160;Oslash ]\n&#160; &#160; };\n};\n&#160;<\/pre><\/td><\/tr><\/tbody><\/table><\/div>\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/690\/rev-raw\/2f202557f24cec13b8b9614f1dcbaeac048b54c2\/cweiske-kinesis.xkb\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/690#cweiske-kinesis.xkb\">cweiske-kinesis.xkb<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <style type=\"text\/css\">\/**\n * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2014 Benny Baumann\n * (http:\/\/qbnz.com\/highlighter\/ and http:\/\/geshi.org\/)\n *\/\n.bash .de1, .bash .de2 {font: normal normal 1em\/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}\n.bash  {font-family:monospace;}\n.bash .imp {font-weight: bold; color: red;}\n.bash li, .bash .li1 {color: #DDD;}\n.bash .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\n.bash .kw1 {color: #000000; font-weight: bold;}\n.bash .kw2 {color: #c20cb9; font-weight: bold;}\n.bash .kw3 {color: #7a0874; font-weight: bold;}\n.bash .co0 {color: #666666; font-style: italic;}\n.bash .co1 {color: #800000;}\n.bash .co2 {color: #cc0000; font-style: italic;}\n.bash .co3 {color: #000000; font-weight: bold;}\n.bash .co4 {color: #666666;}\n.bash .es1 {color: #000099; font-weight: bold;}\n.bash .es2 {color: #007800;}\n.bash .es3 {color: #007800;}\n.bash .es4 {color: #007800;}\n.bash .es5 {color: #780078;}\n.bash .es_h {color: #000099; font-weight: bold;}\n.bash .br0 {color: #7a0874; font-weight: bold;}\n.bash .sy0 {color: #000000; font-weight: bold;}\n.bash .st0 {color: #ff0000;}\n.bash .st_h {color: #ff0000;}\n.bash .nu0 {color: #000000;}\n.bash .re0 {color: #007800;}\n.bash .re1 {color: #007800;}\n.bash .re2 {color: #007800;}\n.bash .re4 {color: #007800;}\n.bash .re5 {color: #660033;}\n.bash span.xtra { display:block; }\n<\/style><div class=\"code\"><table class=\"bash\"><tbody><tr class=\"li1\"><td class=\"ln\"><pre class=\"de1\">1\n2\n3\n<\/pre><\/td><td class=\"de1\"><pre class=\"de1\"><span class=\"co0\">#!\/bin\/sh<\/span>\nxkbcomp ~<span class=\"sy0\">\/<\/span>.config<span class=\"sy0\">\/<\/span>xkb-keyboard<span class=\"sy0\">\/<\/span>cweiske-kinesis-full.xkb <span class=\"re1\">$DISPLAY<\/span>\n&#160;<\/pre><\/td><\/tr><\/tbody><\/table><\/div>\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/690\/rev-raw\/2f202557f24cec13b8b9614f1dcbaeac048b54c2\/fix-xmodmap-kinesis.sh\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/690#fix-xmodmap-kinesis.sh\">fix-xmodmap-kinesis.sh<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  \n<div class=\"document\">\n\n\n<p>only strange characters were shown on the shell when pressing mapped key combos (altr+a, altr+s etc), see screenshot.<\/p>\n<p>When using &quot;read&quot; on cli, I got:<\/p>\n<pre class=\"literal-block\">\n^[\u00e4\n^[\u00df\n<\/pre>\n<p>In emacs, I got the following message:<\/p>\n<pre class=\"literal-block\">\nM-\u00e4 is undefined\n<\/pre>\n<p>So somehow some escape sequence was inserted in addition to the character itself.<\/p>\n<p>The final solution was to remove this line:<\/p>\n<pre class=\"literal-block\">\nmodifier_map Mod1 { &lt;RALT&gt; };\n<\/pre>\n<p>The keyboard map mapped the key combo (e.g. altr+a) to the correct character (\u00e4), but xkb also sent the modifier key Mod1, which was interpreted by the shell and emacs as some control key.<\/p>\n<\/div>\n\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/690\/rev-raw\/2f202557f24cec13b8b9614f1dcbaeac048b54c2\/problems.rst\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/690#problems.rst\">problems.rst<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <div class=\"code\"><pre class=\"txt\">[tab]&gt;[caps]\r\n[caps]&gt;[tab]\r\n[Z]&gt;[Y]\r\n[Y]&gt;[Z]\r\n[rwin]&gt;[ralt]\r\n[kp-rwin]&gt;[kp-ralt]\r\n{rctrl}{f8}&gt;{-lctrl}{t}{+lctrl}\r\n{lctrl}{f8}&gt;{-lctrl}{t}{+lctrl}\r\n{rctrl}{t}&gt;{-lshift}{4}{+lshift}{t}{h}{i}{s}{hyphen}{-lshift}{.}{+lshift}\r\n{lctrl}{t}&gt;{-lshift}{4}{+lshift}{t}{h}{i}{s}{hyphen}{-lshift}{.}{+lshift}\r\n{rctrl}{bspace}&gt;{-lalt}{tab}{+lalt}\r\n{lctrl}{bspace}&gt;{-lalt}{tab}{+lalt}\r\n{rctrl}{=}&gt;{space}{=}{-lshift}{.}{+lshift}{space}\r\n{lctrl}{=}&gt;{space}{=}{-lshift}{.}{+lshift}{space}\r\n{rctrl}{hyphen}&gt;{hyphen}{-lshift}{.}{+lshift}\r\n{lctrl}{hyphen}&gt;{hyphen}{-lshift}{.}{+lshift}<\/pre><\/div>\n\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/690\/rev-raw\/2f202557f24cec13b8b9614f1dcbaeac048b54c2\/qwerty.txt\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/690#qwerty.txt\">qwerty.txt<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <div class=\"code\"><pre class=\"txt\">startup_file=qwerty.txt\r\nkey_click_tone=OFF\r\ntoggle_tone=ON\r\nmacro_disable=OFF\r\nmacro_speed=9\r\nstatus_play_speed=4\r\npower_user=true\r\nprogram_key_lock=OFF\r\n<\/pre><\/div>\n\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/690\/rev-raw\/2f202557f24cec13b8b9614f1dcbaeac048b54c2\/state.txt\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/690#state.txt\">state.txt<\/a>\n <\/div>\n<\/div>\n<\/div>\n"}
