Hi again! Following the recent success in getting new types to work, I'm now trying to fix some things that always nagged me and I could never get running.
In my layout, so that I don't have to move the palms of my hands from the home position, I added an ISO_Level3_Shift key (it's on the right Alt), and pressing that with hjkl will move the cursor left, down, up, and right; yuio is home, page down, page up, and end respectively. The same thing is on the left: asdf and qwer. Source can be found here: https://bitbucket.org/cheater/us_split_cherry_kw6000_two_iso/src 1. In most desktop programs, if I'm editing text, I can hold shift and use the cursor keys to select text. This also works with my virtual arrow keys, nearly everywhere. The two situations where it doesn't work are: under gedit (or its fork pluma), and under nautilus (or its fork caja), e.g. when editing a file name or editing the path in the address bar. In both of those what happens is that the cursor just moves around without selecting text, like if shift weren't pressed. In both of those pressing shift and using actual, physical cursor keys works. I have fixed this by using a type definition where I added preserve[Shift+LevelThree]=Shift. I use it for hjkl etc. 2. In some places, the ISO_Level3_Shift key is intercepted. This is especially painful on websites that have a search field. An example is http://dict.leo.org. If I want to scroll down, normally I would press ISO_Level3_Shift+j; however, before I get to pressing j, the website notices I'm holding what it thinks is AltGr (after all they're the same key) and places the cursor in the search field; at this point pressing j will not do anything, because the window will not scroll when the cursor is in the search field. I tried fixing this: - by using a compat with interpret ISO_Level3_Shift commented out (I also commented out the block in compat/iso9995). However, at that point, the key stopped working altogether. - by setting preserve[LevelThree] = None in the type used by hjkl & co - by setting preserve = None for all levels in the type used by the keys that resolve to ISO_Level3_Shift; that didn't work. (see ONE_LEVEL_FOR_ISO_LEVEL_3_SHIFT) - using the Redirect action on h to redirect when ISO_Level3_Shift was held; that made the key not work at all with ISO_Level3_Shift at all. I tried redirecting to <LEFT> like this in the symbols file: key <AC08> { type[Group1]="THREE_LEVEL_SHIFTABLE", symbols[Group1]=[ h, H, Left, Left ], actions[Group1]=[ NoAction(), NoAction(), RedirectKey(key=<LEFT>), RedirectKey(key=<LEFT>, modifiers=Shift) ] }; - by removing (commenting out) the lines that made ISO_Level3_Shift get mapped to Mod5: // modifier_map Mod5 { ISO_Level3_Shift }; // modifier_map Mod5 { <LEFT> }; // modifier_map Mod5 { <MENU> }; // modifier_map Mod5 { <LALT> }; At this point I'm seriously out of ideas; does anyone have any pointers? I only want the ISO_Level3_Shift key to work when in use with the "virtual" cursor keys; its key press doesn't need to be recognized by any programs; it doesn't even need to be ISO_Level3_Shift. 3. This doesn't work in the editing window in Skype. This is the only place this doesn't work; normal cursors work, but pressing ISO_Level3_Shift+h just doesn't move the cursor at all. Funnily enough my virtual arrow keys work in the contacts window; just not in the message window. I noticed that if I press ISO_Level3_Shift and try to use one of the physical cursor keys the cursor doesn't move either; so apparently this issue is the same as issue 2, in that the program notices I'm holding ISO_Level3_Shift and decides to do something retarded. I would appreciate any ideas or comments. Thanks! _______________________________________________ [email protected]: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.x.org/mailman/listinfo/xorg Your subscription address: %(user_address)s
