Thread: XMODMAP Change Unicode Key Bindings for Modifier/Dead Character (dead_acute)
xmodmap -- change unicode key bindings dead_acute dead_acute unicode binding
not have problem in ms windows!!! grrr)
use ubuntu 10.04, openoffice 3.02 , need able write correctly in ancient greek. keyboard layout model set dell precisionm65 (i have dell inspiron 9400 laptop, dell precisionm65 list exact match keyboard -- exact model not appear, other keyboards not right or respond 100% or match keyboard layout 100%). have 2 keyboard layouts: usa , greece polytonic. switch between keyboard layouts using ctrl+shift, in case matters.
recently, downloaded awesome ancient greek spellchecker, takes care of hassle in mistakes concerning diacritics (diacritics little symbols on top of vowels, such commonly know as: acute accent, acute grave, etc, known classicists daseia, psili, oxia, baria, perispomene, upogegrammene, dialytika, etc.).
however, noticed diacritic associated oxia (the acute accent -- looks tiny frontslash on top of vowel) computer outputs, not correct, results in spell checker "seeing" words spelled correctly incorrect. on closer inspection 1 notices supposed outputed oxia not bound keys supposed to, computer outputs tonos instead (this happening on every single linux xomputer have gotten hands on since discovered problem , asked friends). difference goes far beyond simple issue of making typing of words "appear" correct, or suitable spellchecker, settings correct way. matter of setting operating system output key bindings correctly, , matters educational reasons, when typing serious texts, because tonos , oxia may similar, not same.
in ancient greek, oxia used signify high pitch in pronunciation of word. in modern greek, tonos used signify stress in pronunciation of word. difference between 2 in writing: oxeia literally tiny frontslash on vowel, while tonos vertical line on vowel. must corrected. reason when type oxia using greek polytonic keyboard layout, tonos. either keys incorrectly bound, or overrides somehow.
visual reference, common diacritics are:
1. oxia: ά
2. baria: ὰ
3. perspomene: ᾶ
4. psili: ἀ
5. daseia: ἁ
6. upogegramene: ᾳ
, combinations of these.
first example above concerns , in specific case. seems fine @ first glance. compare 1. (oxia) "/" against 2. "\" (baria); #2. correct, , #1 should slanted #2 , in opposite direction, right. instead, system picks input greek polytonic layout , outputs tonos "|" (straight down) in place of oxia "/". letter alpha different!!!
here's catch: when type combination of diacritic contains oxia, system outputs oxia correctly, , not give me tonos on vowel!
ἄ (alpha psili , oxia) u+1ffd greek oxia (plus psili plus alpha) (combination of psili & oxia)
ά (alpha oxia) u+0301 combining acute accent or u+00b4 acute accent (plus alpha) (no combination of diacritics)
(the unicode numbers above refer accent/oxia not whole character (accent/oxia , character), because accents/oxia modifiers, since dead keys)
there problem keyboard bindings! mapping correct. should call u+1ffd greek oxia instead o fu+0301 combining acute accent or u+00b4 acute accent when press corresponding key.
------------------------------------------------------------------------------------------------
after digging around, managed far here, i'm stuck. appreciated.
want change kecode keymap specific key calls unicode tonos/acute_accent calls unicode oxeia, not affect usa keyboard layout. can change keymap settings 1 one or replace things inside keysymdef.h.?
character greek polytonic keyboard layout has assigned output of oxia key : ; left of enter key.
produces u+0301 combining acute accent or u+00b4 acute accent instead of u+1ffd greek oxia using greek polytonic keyboard layout, after vowel keyed in, leads computer make use of unicode bindings associated tonos, not oxia, unfortunately. said, if diacritic typed in on vowel tonos or oxia, (such (psili, apostrophe), or daseia (an apostrophe in oposite direction) or whatever), correct unicode block evoked, , tonos appears correctly oxia. reference, have found tonos in first unicode block, while oxia tin second unicode block.
--------------------------------------------------------------------------------------------
in case, key bindings want change, key has following 2 symbols on it, (if use usa keyboard layout): : ; left of enter key, mentioned earlier.
so, here goes:
1. have identified keymap code : ; key. mine happens number 47, (after using xev in terminal).
keyrelease event, serial 36, synthetic no, window, 0x50000001,
root 0x108, subw 0x0, time 6205231, (65, 109), root: (1102,635),
state 0x0, keycode 47 (keysym 0x3b, semicolon), same_screen yes,
xlookupstring gives 1 bytes: (3b) ";"
xfilterevent returns: false
typed in terminal:
xmodmap -pke | grep 47
, terminal returns:
keycode 47 = semicolon colon dead_acute dead_abovecomma leftsinglequotemark minutes leftsinglequotemark
keycode 147 = xf86menukb nosymbol xf86menukb
keycode 247 =
basically, after reading around found out list see tells me key 47 following bindings present, in sequence of level/modifier:
semicolon (regular keystroke)
colon (shift+ keystroke)
dead_acute (altgr+ keystroke)
dead_abovecomma (altgr+shift+ keystroke)
leftsinglequotemark
minutes
leftsinglequotemark
fifth, sixth , seventh level not know... thought keyboards had 4 levels of modifiers (typewriters had 2 (regular , shift)...so still learning.. .i wonder how 3 levels accessed... anyway...).
assume greek polytonic accesses dead_acute , dead_abovecomma particular key though first , second level (because when have switched greek polytonic keyboard layout, if press key not semicolon, acts dead key, , if press shift , key dead-above comma.... wonder how keyboard layout change goes 2 levels up. anyway. fiddled around trying change list output oxia. after reading around internet, found out can give direct unicode number instead of "mnemonic" name. changes appear immediate.
then, after figure out, supposed able put oxeia in third level of symbols replace dead_acute first semicolon, colon, oxeia, dead_above comma.
(or supposed go secret hidden file somewhere , tell xmodmap when thinks calling dead_acute, should call oxia instead???), in case,
opened terminal , typed:
xmodmap -e 'keycode 47 = semicolon, colon, u1ffd dead_abovecomma'
but not work!!! whenever press key not dead key!!!! displays oxia immediately!!! did change t dead_acute oxia, how can make oxia dead_acute or dead???!
how can make see u1ffd dead key? in character map it says oxia u1ffd dead key/modifier. going on??
want change output greek polytonic keyboard layout!!! or perhaps want change binding 1 key on greek polytonic keyboard layout
(where file keyoboard layout saved in ubuntu? , how access keysymdef.h or it? , how change it??
is there way this, affects greek polytonic keyboard layout , not usa keyboard layout, , "xxxxx_xxxx" (see below) calls polytonic unicode character called oxia, found in second unicode block, known u+1ffd greek oxia :
xmodmap -e 'keycode 47 = semicolon, colon, xxxxx_xxxx dead_abovecomma leftsinglequotemark '
don't know hell type there, dead_acute didn't work, because evokes tonos!!! need tell whe type dead_acute, calls u1ffd (the oxia). tried typing oxia, , random jarble, returns error (how know oxia called -- what's mnemonic name/code other unicode number u1ffd? not anywhere found in keysymdef.h file can create it? how?). think needs done tell call u+1ffd greek oxia though thinks calling dead_acute, because right dead_acute is calling tonos, possibly u+00b4 acute accent,which don't want!!!
thank taking time read through this.
can provide me appreciated!!!
dimitris.
p.s.1
i installed x11proto-core-dev, ("sudo apt-get install x11proto-core-dev") without quotes. after digging around, found keysym lists need in order assign correct name, mean, call oxeia, call oxia, , kesyms list may have oxeia_greek_unicode, or called funny_looking_frontslash, don't know, looking mnemonic name or number corresponds oxeia. anyway, list should in file: "/usr/include/x11/keysymdef.h" without quotes. there read:
can tell me please (the following instructions in keysymdef.h file)
1. how add 0x01000000 tou+1ffd ? (are these hexadecimal values?) , how type value instead of name (such dead_accent) or whatever xmodmasp key corresponding oxia , not tonos???
2. how update the mappings in src/keybind.c in repo? (what repo? mean repository?) , protocol specification in specs/xprotocol/x11.keysyms mentions in file??? , why?
3. xstringtokeysym() , xkeysymtostring(). , how use them?
4. how change things in file keysymdef.h directly? read somewhere can change keyboard layout file well. found in
in case...
geeez, hate linux...
i found compose file in /usr/share/x11/locale/iso8859-15/compose
appears greek (polytonic?) keyboard layout locale. how change calling th tonos calling oxia making call unicode u1ffd whenever press key assigned call dead_acute, still treat dead key??
need change in file?? ideas??
html code:# $tog: iso8859-7 /main/7 1998/05/20 15:33:23 kaleb $ # # iso 8859-7 (greek) compose sequence # # # $xfree86: xc/nls/compose/iso8859-7,v 1.4 2001/04/26 21:09:40 dawes exp $ # # sequence definition # # <multi_key> means <compose> # special character <multi_key> <plus> <plus> : "#" numbersign <multi_key> <apostrophe> <space> : "'" apostrophe <multi_key> <space> <apostrophe> : "'" apostrophe <multi_key> <a> <t> : "@" @ <multi_key> <parenleft> <parenleft> : "[" bracketleft <multi_key> <slash> <slash> : "\\" backslash <multi_key> <slash> <less> : "\\" backslash <multi_key> <less> <slash> : "\\" backslash <multi_key> <parenright> <parenright> : "]" bracketright <multi_key> <asciicircum> <space> : "^" asciicircum <multi_key> <space> <asciicircum> : "^" asciicircum <multi_key> <greater> <space> : "^" asciicircum <multi_key> <space> <greater> : "^" asciicircum <multi_key> <grave> <space> : "`" grave <multi_key> <space> <grave> : "`" grave <multi_key> <parenleft> <minus> : "{" braceleft <multi_key> <minus> <parenleft> : "{" braceleft <multi_key> <slash> <asciicircum> : "|" bar <multi_key> <asciicircum> <slash> : "|" bar <multi_key> <v> <l> : "|" bar <multi_key> <l> <v> : "|" bar <multi_key> <v> <l> : "|" bar <multi_key> <l> <v> : "|" bar <multi_key> <parenright> <minus> : "}" braceright <multi_key> <minus> <parenright> : "}" braceright <multi_key> <asciitilde> <space> : "~" asciitilde <multi_key> <space> <asciitilde> : "~" asciitilde <multi_key> <minus> <space> : "~" asciitilde <multi_key> <space> <minus> : "~" asciitilde <multi_key> <l> <minus> : "\243" sterling <multi_key> <minus> <l> : "\243" sterling <multi_key> <l> <minus> : "\243" sterling <multi_key> <minus> <l> : "\243" sterling <multi_key> <l> <equal> : "\243" sterling <multi_key> <equal> <l> : "\243" sterling <multi_key> <l> <equal> : "\243" sterling <multi_key> <equal> <l> : "\243" sterling <multi_key> <s> <o> : "\247" section <multi_key> <o> <s> : "\247" section <multi_key> <s> <o> : "\247" section <multi_key> <o> <s> : "\247" section <multi_key> <s> <exclam> : "\247" section <multi_key> <exclam> <s> : "\247" section <multi_key> <s> <exclam> : "\247" section <multi_key> <exclam> <s> : "\247" section <multi_key> <s> <0> : "\247" section <multi_key> <0> <s> : "\247" section <multi_key> <s> <0> : "\247" section <multi_key> <0> <s> : "\247" section <multi_key> <c> <o> : "\251" copyright <multi_key> <o> <c> : "\251" copyright <multi_key> <c> <o> : "\251" copyright <multi_key> <o> <c> : "\251" copyright <multi_key> <c> <o> : "\251" copyright <multi_key> <o> <c> : "\251" copyright <multi_key> <c> <o> : "\251" copyright <multi_key> <o> <c> : "\251" copyright <multi_key> <c> <0> : "\251" copyright <multi_key> <0> <c> : "\251" copyright <multi_key> <c> <0> : "\251" copyright <multi_key> <0> <c> : "\251" copyright <multi_key> <parenleft> <c> : "\251" copyright <multi_key> <less> <less> : "\253" guillemotleft <multi_key> <greater> <greater> : "\273" guillemotright <multi_key> <0> <asciicircum> : "\260" degree <multi_key> <asciicircum> <0> : "\260" degree <multi_key> <0> <asterisk> : "\260" degree <multi_key> <asterisk> <0> : "\260" degree <multi_key> <plus> <minus> : "\261" plusminus <multi_key> <minus> <plus> : "\261" plusminus <multi_key> <2> <asciicircum> : "\262" twosuperior <multi_key> <asciicircum> <2> : "\262" twosuperior <multi_key> <s> <2> : "\262" twosuperior <multi_key> <2> <s> : "\262" twosuperior <multi_key> <s> <2> : "\262" twosuperior <multi_key> <2> <s> : "\262" twosuperior <multi_key> <3> <asciicircum> : "\263" threesuperior <multi_key> <asciicircum> <3> : "\263" threesuperior <multi_key> <s> <3> : "\263" threesuperior <multi_key> <3> <s> : "\263" threesuperior <multi_key> <s> <3> : "\263" threesuperior <multi_key> <3> <s> : "\263" threesuperior <multi_key> <period> <asciicircum> : "\267" periodcentered <multi_key> <asciicircum> <period> : "\267" periodcentered <multi_key> <period> <period> : "\267" periodcentered <multi_key> <1> <2> : "\275" onehalf <multi_key> <space> <space> : "\240" nobreakspace <multi_key> <bar> <bar> : "\246" brokenbar <multi_key> <exclam> <asciicircum> : "\246" brokenbar <multi_key> <asciicircum> <exclam> : "\246" brokenbar <multi_key> <v> <b> : "\246" brokenbar <multi_key> <b> <v> : "\246" brokenbar <multi_key> <v> <b> : "\246" brokenbar <multi_key> <b> <v> : "\246" brokenbar <multi_key> <minus> <comma> : "\254" notsign <multi_key> <comma> <minus> : "\254" notsign <multi_key> <minus> <minus> : "\255" hyphen # should greek tonos not defined in x11 <multi_key> <apostrophe> <apostrophe> : "\264" acute # should greek dialytika not defined in x11 <multi_key> <quotedbl> <quotedbl> : "\250" diaeresis # special characters don't exist in latin-1 <multi_key> <less> <apostrophe> : "\241" leftsinglequotemark <multi_key> <apostrophe> <less> : "\241" leftsinglequotemark <multi_key> <greater> <apostrophe> : "\242" rightsinglequotemark <multi_key> <apostrophe> <greater> : "\242" rightsinglequotemark <multi_key> <asciitilde> <asciitilde> : "\257" greek_horizbar # accented alphabet <multi_key> <greek_alpha> <apostrophe> : "\266" greek_alphaaccent <multi_key> <apostrophe> <greek_alpha> : "\266" greek_alphaaccent <multi_key> <greek_epsilon> <apostrophe>: "\270" greek_epsilonaccent <multi_key> <apostrophe> <greek_epsilon>: "\270" greek_epsilonaccent <multi_key> <greek_eta> <apostrophe> : "\271" greek_etaaccent <multi_key> <apostrophe> <greek_eta> : "\271" greek_etaaccent <multi_key> <greek_iota> <apostrophe> : "\272" greek_iotaaccent <multi_key> <apostrophe> <greek_iota> : "\272" greek_iotaaccent <multi_key> <greek_omicron> <apostrophe>: "\274" greek_omicronaccent <multi_key> <apostrophe> <greek_omicron>: "\274" greek_omicronaccent <multi_key> <greek_upsilon> <apostrophe>: "\276" greek_upsilonaccent <multi_key> <apostrophe> <greek_upsilon>: "\276" greek_upsilonaccent <multi_key> <greek_omega> <apostrophe> : "\277" greek_omegaaccent <multi_key> <apostrophe> <greek_omega> : "\277" greek_omegaaccent <multi_key> <greek_iota> <quotedbl> : "\332" greek_iotadieresis <multi_key> <quotedbl> <greek_iota> : "\332" greek_iotadieresis <multi_key> <greek_upsilon> <quotedbl> : "\333" greek_upsilondieresis <multi_key> <quotedbl> <greek_upsilon> : "\333" greek_upsilondieresis <multi_key> <greek_alpha> <apostrophe> : "\334" greek_alphaaccent <multi_key> <apostrophe> <greek_alpha> : "\334" greek_alphaaccent <multi_key> <greek_epsilon> <apostrophe>: "\335" greek_epsilonaccent <multi_key> <apostrophe> <greek_epsilon>: "\335" greek_epsilonaccent <multi_key> <greek_eta> <apostrophe> : "\336" greek_etaaccent <multi_key> <apostrophe> <greek_eta> : "\336" greek_etaaccent <multi_key> <greek_iota> <apostrophe> : "\337" greek_iotaaccent <multi_key> <apostrophe> <greek_iota> : "\337" greek_iotaaccent <multi_key> <greek_omicron> <apostrophe>: "\374" greek_omicronaccent <multi_key> <apostrophe> <greek_omicron>: "\374" greek_omicronaccent <multi_key> <greek_upsilon> <apostrophe>: "\375" greek_upsilonaccent <multi_key> <apostrophe> <greek_upsilon>: "\375" greek_upsilonaccent <multi_key> <greek_omega> <apostrophe> : "\376" greek_omegaaccent <multi_key> <apostrophe> <greek_omega> : "\376" greek_omegaaccent <multi_key> <greek_iota> <quotedbl> : "\372" greek_iotadieresis <multi_key> <quotedbl> <greek_iota> : "\372" greek_iotadieresis <multi_key> <greek_upsilon> <quotedbl> : "\373" greek_upsilondieresis <multi_key> <quotedbl> <greek_upsilon> : "\373" greek_upsilondieresis <multi_key> <apostrophe> <quotedbl> <greek_iota> : "\300" greek_iotaaccentdieresis <multi_key> <quotedbl> <apostrophe> <greek_iota> : "\300" greek_iotaaccentdieresis <multi_key> <apostrophe> <quotedbl> <greek_upsilon> : "\340" greek_upsilonaccentdieresis <multi_key> <quotedbl> <apostrophe> <greek_upsilon> : "\340" greek_upsilonaccentdieresis <multi_key> <apostrophe> <quotedbl> <space> : "\265" greek_accentdieresis <multi_key> <quotedbl> <apostrophe> <space> : "\265" greek_accentdieresis # # # dead key accent keysyms # special character <dead_circumflex> <slash> : "|" bar <dead_grave> <space> : "`" grave <dead_diaeresis> <space> : "\250" diaeresis <dead_circumflex> <space> : "^" asciicircum <dead_tilde> <space> : "~" asciitilde <dead_doubleacute> <space> : "\"" quotedbl <dead_abovering> <space> : "\260" degree <dead_abovering> <dead_abovering> : "\260" degree <dead_circumflex> <0> : "\260" degree <dead_circumflex> <2> : "\262" twosuperior <dead_circumflex> <3> : "\263" threesuperior <dead_circumflex> <period> : "\267" periodcentered <dead_circumflex> <exclam> : "\246" brokenbar <dead_cedilla> <minus> : "\254" notsign <dead_acute> <apostrophe> : "\264" acute <dead_diaeresis> <quotedbl> : "\250" diaeresis # accented alphabet (plus more symbols) <dead_acute> <greek_alpha> : "\334" greek_alphaaccent <dead_acute> <greek_epsilon> : "\335" greek_epsilonaccent <dead_acute> <greek_eta> : "\336" greek_etaaccent <dead_acute> <greek_iota> : "\337" greek_iotaaccent <dead_acute> <greek_omicron> : "\374" greek_omicronaccent <dead_acute> <greek_upsilon> : "\375" greek_upsilonaccent <dead_acute> <greek_omega> : "\376" greek_omegaaccent <dead_acute> <greek_alpha> : "\266" greek_alphaaccent <dead_acute> <greek_epsilon> : "\270" greek_epsilonaccent <dead_acute> <greek_eta> : "\271" greek_etaaccent <dead_acute> <greek_iota> : "\272" greek_iotaaccent <dead_acute> <greek_omicron> : "\274" greek_omicronaccent <dead_acute> <greek_upsilon> : "\276" greek_upsilonaccent <dead_acute> <greek_omega> : "\277" greek_omegaaccent <dead_acute> <space> : "\264" acute <dead_acute> <dead_acute> : "\264" acute <dead_acute> <period> : "\267" periodcentered <dead_acute> <less> : "\253" guillemotleft <dead_acute> <greater> : "\273" guillemotright <dead_diaeresis> <greek_iota> : "\372" greek_iotadieresis <dead_diaeresis> <greek_upsilon> : "\373" greek_upsilondieresis <dead_diaeresis> <greek_iota> : "\332" greek_iotadieresis <dead_diaeresis> <greek_upsilon> : "\333" greek_upsilondieresis <dead_diaeresis> <dead_diaeresis> : "\250" diaeresis <dead_diaeresis> <period> : "\267" periodcentered <dead_diaeresis> <less> : "\253" guillemotleft <dead_diaeresis> <greater> : "\273" guillemotright <dead_acute> <dead_diaeresis> <greek_iota> : "\300" greek_iotaaccentdieresis <dead_acute> <dead_diaeresis> <greek_upsilon> : "\340" greek_upsilonaccentdieresis <dead_acute> <dead_diaeresis> <space> : "\265" greek_accentdieresis <dead_diaeresis> <dead_acute> <greek_iota> : "\300" greek_iotaaccentdieresis <dead_diaeresis> <dead_acute> <greek_upsilon> : "\340" greek_upsilonaccentdieresis <dead_diaeresis> <dead_acute> <space> : "\265" greek_accentdieresis
Forum The Ubuntu Forum Community Ubuntu Official Flavours Support General Help [ubuntu] XMODMAP Change Unicode Key Bindings for Modifier/Dead Character (dead_acute)
Ubuntu
Comments
Post a Comment