From: Oleg Bulatov <oleg@bulatov.me> To: kalle <kalle@projektwerkstatt.de>, kbd@lists.altlinux.org Subject: Re: [kbd] man keymaps Date: Fri, 11 Aug 2017 14:04:04 +0200 Message-ID: <74B047CD-0665-49B1-92AB-A9386A0E1D50@bulatov.me> (raw) In-Reply-To: <0b2c4b49-1f28-d87a-205b-0c5c07b79e9c@projektwerkstatt.de> Hi, > On 23 Jul 2017, at 07:51, kalle <kalle at projektwerkstatt.de> wrote: > > hello, > I have some improvement proposals or unclear points (where explanation > could be improved) for the man 5 keymaps page. > *It would make sense to explain the term 'charset' somewhere > what for is the code produced by a keysym ? How is it related to > character encoding? man 7 charsets Some of them define a character encoding as well (iso-8859-1, koi8-r), some other don’t (iso-10646-18). > *it would make sense to explain basic terms at the beginning of the > page, e.g. charset, keysym, key(scan-)code The exact definition of these terms are beyond the scope of this man page. The brief descriptions are provided when necessary: It [charset] defines how following keysyms are to be interpreted. Each of the keysyms represent keyboard actions. keycode keynumber = ... keynumber is the internal identification number of the key, roughly equivalent to the scan code of it. > *keysym: what does the term stand for? why 'symbol’? A key code corresponds roughly to a physical key, while a keysym corresponds to the symbol on the key top. > what does ‘keyboard actions' mean? From the man page: The actions available include outputting character codes or character sequences, switching consoles or keymaps, booting the machine etc. For example: +A, VoidSymbol, Return, Caps_Lock, Compose, AltGr_Lock. > is keyboard induced action possibly better? I don’t think so. > how is this set of actions related to the specific kernel (driver?)? The set of actions has not changed for many years (since Linux 2.0?). But obviously any action you use has to be supported by kbd and the kernel. > *'outputting character codes' -> explain more precisely what is meant > here by 'character codes’ What can be more precise than character code? > *first the term 'keysyms' should be explained in detail, before > explaining special keysyms as modifiers are, e.g. the section "keysyms > can be given in decimal, octal" should be before the modifier part Suppose you want to change behaviour of one key on your keyboard. The current narration first helps you to find what you should change in a key map, and then how it should be changed. > *the modifier-part is in my opinion badly explained - I roughly propose > the following: > to every key there are 2^8=256 (?) possibilities/modes of outputting > symbols (defined by the kernel driver?) > The 2^8 modes can be represented by eight binary digits, or interpreted > as a binary number with 8 (?) digits, e.g. 010000101. The first digit > standing , the last one for units of 2^0=1, in this example > 0*2^7+0*2^6+0*2^5+0*2^4+0*2^3+1*2^2+0*2^1+1*2^0=133. > The different digits are called modifiers, since by combination of all > their different states (0 or 1) they are able to produce 256 (?) modes, > where the default one is when all modifiers are off (=0) so 00000000 > binary is also 0 decimal number. These modifiers are keysyms thus their > state can be changed by typing some keys and out of historical > development have been given following names: > > modifier name power of 2 decimal value > > Shift 0 1 > AltGr Alternate Graph 1 2 > ics > Control 2 4 > Alt 3 8 > ShiftL left Shift key 4 16 > ShiftR right Shift key 5 32 > CtrlL left Control key6 64 > CtrlR right Control k.7 128 > CapsShift 8 256 I found the current explanation easier to understand. I want to change behaviour of Ctrl+Shift+A. Let's see: The effective action of a key is found out by adding up the weights of all the modifiers in effect. Ok, 4+1 = 5, I need to change the 6th column. Hurray! I should not care about binary digits to do this. For those who understand binary arithmetic, it’s obvious why it works and produces a unique value for each combination. > *I don't understand the example of the part starting with "Note that you > should be very careful[?]",because it tells that the Control modifier > stays switched on, until it is produced again by typing in the same key. Let’s say you define your left shift key as keycode 42 = Shift A Then the key down event will be handled as Shift and next actions will be taken from the 2nd column. Which means the key up event will be handled as the ‘A’ key. So from the kernel's point of view the shift key isn’t released. And if you have not any Shifts in the second column, you cannot ‘release’ the shift key anymore. > *To the sentence "these are actually being defined" add "by the map > specification line, see above” > *to "it has a special meaning" add: "to loadkeys (1)"? Everything in this man page is for loadkeys. > greetings, > kalle -- WBR, Oleg
prev parent reply other threads:[~2017-08-11 12:04 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-07-23 5:51 kalle 2017-08-06 12:28 ` Alexey Gladkov 2017-08-06 16:20 ` kalle 2017-08-11 12:04 ` Oleg Bulatov [this message]
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=74B047CD-0665-49B1-92AB-A9386A0E1D50@bulatov.me \ --to=oleg@bulatov.me \ --cc=kalle@projektwerkstatt.de \ --cc=kbd@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux console tools development discussion This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/kbd/0 kbd/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 kbd kbd/ http://lore.altlinux.org/kbd \ kbd@lists.altlinux.org kbd@lists.altlinux.ru kbd@lists.altlinux.com public-inbox-index kbd Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.kbd AGPL code for this site: git clone https://public-inbox.org/public-inbox.git