It is so great to see you answer! I stumbled upon this forum while trying to find a solution to my problem and I was super-impressed by your work, your knowledge and your attitude! Thank you for making things that improve people's lives! Special thanks for consistency over the years!
I haven't considered using Colemak yet (maybe in the future) and I am currently only interested in a functionality like your Extend layer provides. This is a system that is clearly very well though-out and is implemented on the level I have never seen before, not even close. This has been my inspiration so far before I saw what you did:
1. http://tonsky.me/blog/cursor-keys/
2.
3. https://github.com/abogoyavlensky/keymap/
4. Plus Vim, obviously.
DreymaR said:You don't want to disable the level 4 mapping I think? Unless it actually bothers you that AltGr+Shift gives level 4, you can let it be.
The things that influenced my thinking were (please do tell if I am wrong in any of them; I am clearly not competent in this xkb subject):
1. I am using two keyboard layouts (Finnish with some small changes; Russian phonetic created by me). I did that by editing appropriate files (like "fi" and "ru" files in "/usr/share/X11/xkb/symbols/" as well as adding them in a list of layouts. I know how to do that and am comfortable editing the files I know, in the way needed (I have already updated my OS and had no bigger trouble reapplying my keyboard changes. I would prefer the simplest way possible (making changes in 1 file is better than making changes in several files, like with creating custom layouts with groups and who knows how many changed files - I am not good at scripting and would have to understand everything first and then apply it manually)
2. I am not really using Level4 symbols, but just in case it's better to leave the functionality as is if the particular Level4 key combination is not used.
3. Obviously, for two languages I use, the Level1-4 symbols are different.
4. AFAIK, it is not possible to just say "Ok, this group/layout will only define keys in Level4/5, while leaving everything else intact". AFAIK, if I want to use a certain key, I need to define (check here: http://domwatson.codes/2014/11/who-need … art-2.html ) all the levels ala "key <AC08> { [ k, K, kra, Down ] };", even though Levels 1-3 have their own Symbols defined already and are dependent on the language used (for Finnish it is "k, K, kra", for Russian it is "Cyrillic_ka, Cyrillic_KA, kra,"). Maybe I am mistaken and there is a way to leave unwanted Levels+keys intact?
5. Not all of the functionality I want can be defined in xkb. I would like to have the access to CapsLock so I can use it to start Autokey scripts (for example "clone the current line of text" turned out to be marvelous feature I am constantly using now). Currently I am defining CapsLock as Hyper key and it works well. I don't want to make changes to xkb that will lead me to losing this type of "greater scripting via Autokey" functionality.
DreymaR said:What you do want to do is to create a new modifier that is a level4 switch. We already have lvl1 (Shift), lvl3 (AltGr) and lvl5 (my Extend modifier for instance) switches.
Is there a typo(s)? Isn't Shift = lv2?
DreymaR said:Then you can set your CapsLock key to that modifier. Your modifier needs to set both the lvl3 and lvl1 states to achieve this.
I didn't understand the last sentence, please advise.
I don't know if it helps, but here is my info:
$ xmodmap -pm
xmodmap: up to 3 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3 Hyper_L (0xcf)
mod4 Hyper_L (0x42), Super_L (0x85), Super_L (0xce)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
Your "Keyboard Tricks" are so far the best and closest thing I got to what I want. I think I will try to figure out what kind of changes you made in order to get Extend layers working. It's a pity that it is so closely integrated with Colemak layout (the one I don't want at the moment); and a double pity that I suck at scripting and it will be a big challenge to figure out the relevant parts I need...
Thank you for everything you do (even if you won't be able to help me further - at least I know what to try next; this is a much better situation than simply being stuck).
Last edited by mixer (15-Nov-2018 19:59:47)