To: [EMAIL PROTECTED] Re: Unicode Keyboard Input Linux Hello World,
I'm interested in using the Linux console as a multi-language keyboard, disregarding graphical X (and xterm) for the moment. 1) How do I switch the keyboard from language to language? I work in English, Greek, Latin (i.e. French, German, Spanish, and Italian), and Russian. I am not interested in right-to-left processing, nor double-column glyphs, yet. Do I use an escape sequence? Do I use an alt-key combination? 2) Can I set up my own keymaps for these languages? Are they defined already? I might like to vary the dead-key sequence from {accent, letter} to {letter, accent}. 3) What about console fonts? How do I get/create them and install them? These fonts won't work on my dot-matrix printer. That's ok, I can print from X. I do not have a Linux PC yet. My computer is Windows 98. I have an older(=2001) version of cygwin installed, but I haven't used it alot. Maybe I should. I have been googling for this information. The descriptions are plentiful, but they all seem to ignore the obvious. Can you help me? Joe PS I read somewhere yesterday that you can switch between Ukranian and English keyboards using the RightAlt key, on Debian, I believe. Since no other examples were given, let me make some proposals: alt-a = ascii alt-d = German alt-f = French i.e. generic french, I don't care about locale yet. alt-g = monotonic Greek alt-h = polytonic Greek (h=homer) alt-l = Latin = {French, German, Spanish, Italian} saves typing alt-r = cyrillic Russian alt-s = Spanish alt-u = cyrillic Ukranian I realize the locale would specify the keyboard layout with more precision --for French, locale = {Belgium, Canada, France, ...}, for Spanish, locale = {Spain, Mexico, Columbia,...} -- but I don't understand locales yet. I need a locale primer too. The list of keyboards should be configurable, meaning another configuration file, in the user's home directory, I guess. Each keyboard would have a keymap, but I didn't understand the man page for keymaps. Is 'keymaps' a console abstraction? Is there another 'keymaps' for X? Then there is the problem of the 9-bit, fixed pitch console fonts (we're ignoring X for the moment). Are there simple tools I can use to roll my own? How do I map unicode(=utf-8) characters to the glyph in the font set? I'm particularily interested in polytonic Greek. Once I've selected the keyboard (alt-h), I could type a small_omega_dasia_perispomeni_ypogegrammeni, like this: ascii '`', ascii '~', ascii 'w', ascii 'i' psili = fine (breathing) dasia = rough (breathing) oxia = accute (accent) varia = grave (accent) perispomeni = circumflex (accent) ypogegrammeni = subscript (iota) prosgegrammeni = prescript (iota omega = big-O, the final letter of the Greek alphabet omicron = small-o, our letter 'o' small = miniscule, lower-case capital = majuscule, upper-case This is about as complicated as it gets in polytonic Greek, three dead keys, two pre-position, one post-position, 'w' representing omega, and an 'i' for iota subscript. The keyboard map is therefore more than a map, it is a fsm, a stateful-map. If I change keyboards in midstream (using alt-a, for example), the fsm would output the components of an unaccepted character individually. How far will keymaps go? The alt key is used like the shift key. What ascii character does it send? (None, so how do I use it for the tty driver? It would be ok for a real keyboard driver, where I have access to keyboard events. I'm thinking the keyboard map should be part of the tty(=ascii) driver, mapping ascii to utf-8, and a teletypewriter only understands ascii...) Escape Sequences Otherwise, I could use an esc sequence to change keyboards, like { esc a, esc g, esc h etc.} Is there already a standard way of doing this? I know escape sequences have already been defined for other control operations on the terminal, why not changing keyboards? What is ISO 2022? The VT-100 had a whole bunch of escape sequences, {blank screen, position cursor, etc.} then there were the ANSI escape sequences, which mapped a standard set of terminal-control operations to a vendor-specific set of escape sequences. The Ctrl Key worked like ths Shift key and was used to output C0 control characters to the tty. Some of the commands I remember are: ctrl-c = break ctrl-z = end-of-file ctrl-s = stop scrolling ctrl-p = print screen? ctrl-b = backspace? What is C1-safe, and why is that a problem for utf-8? Since the C1 range is not part of the ascii table, I don't know why a tty would care. How does a traditional tty driver handle C1 control characters? Anyway, this is how I imagine it. Thanks again. __________________________________ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/ -- Linux-UTF8: i18n of Linux on all levels Archive: http://mail.nl.linux.org/linux-utf8/