On Sun, 13 Apr 2025, Aura Kelloniemi wrote: > Hi Nicolas and the list, > > On 2025-04-10 at 17:40 -0400, Nicolas Pitre <[email protected]> wrote: > > Well, just for the function strings alone (excluding standard letter > > mappings) the limit is 256 strings. The default table uses 28 string > > entries only. > > Yes, exactly. > > > Is this _really_ a limiting factor? > > It is not, if everybody comes up with their custom solution, but it is, if we > try to define all combinations supported by xterm and other compatible > emulators. We cannot know what combinations are necessary and for whom.
And to pick a concrete example, what would a CTRL+SHIFT+f do differently from an ALT+SHIFT+f? I do understand having several combinations with the arrow keys, PgUp/PgDn, etc. But what would letters do? > We need to define the following variants: SHIFT, CTRL, CTRL+SHIFT, ALT, > ALT+SHIFT, ALT+CTRL, ALT+CTRL+SHIFT; so seven variants in total. > > So, to support all function key combinations we need either 196 or 315 > combinations. > > But this is not enough, we need CTRL+SHIFT, ALT+SHIFT, ALT+CTRL+SHIFT for all > letters, numbers and symbols. This makes about 3 * 49 combinations = 147 > combinations. > > Then we would need CTRL+number combinations, but I think this calculation > already makes my point, even though it is not exact. Let me copy some defines from the kernel sources: #define KG_SHIFT 0 #define KG_ALTGR 1 #define KG_CTRL 2 #define KG_ALT 3 #define KG_SHIFTL 4 #define KG_SHIFTR 5 #define KG_CTRLL 6 #define KG_CTRLR 7 #define KG_CAPSSHIFT 8 #define NR_SHIFT 9 #define NR_KEYS 256 #define MAX_NR_KEYMAPS 256 /* This means 128Kb if all keymaps are allocated. Only the superuser may increase the number of keymaps beyond MAX_NR_OF_USER_KEYMAPS. */ #define MAX_NR_OF_USER_KEYMAPS 256 /* should be at least 7 */ #define MAX_NR_FUNC 256 /* max nr of strings assigned to keys */ So let's agree that 128KB worth of key bindings that's a _lot_ already. There is even support to turn your PC keyboard into a braille keyboard if I read the code correctly. > But I still stick to my opinion that it would be better to support these > directly, not through function string definitions, as these are supposed to be > always the same, not something that every user wants to customize. Sure, I can buy that argument. Then could you provide some reference to a formal definition of what those should be? Because otherwise I still fail to grasp the scale of the problem. Nicolas _______________________________________________ This message was sent via the BRLTTY mailing list. To post a message, send an e-mail to: [email protected] For general information, go to: http://brltty.app/mailman/listinfo/brltty
