I wear't like leaping between the main keyboard and the motion secrets, so I added the using to my xkb layout document.
Mar 6, 2012 - I edited /usr/share/X11/xkb/symbols/us, where it seemed that the TLDE and LSGT key are switched in the mac section. Loading setxkbmap.
After that I consist of these to the layout at a later point in the file. Now I should have got the cursor keys available through AltGr + j,k,l,i (or h,t,n,c as I'm making use of dvorak) etc. This functions in several situations (like Firefox, urxvt, Eclipse, the primary text region of LyX) but some applications do nothing at all when I attempt to, state, proceed the cursor using these 'shortcuts' (like NetBeans and LyX dialogs).
Therefore, is there a method to make these some other programs also regard my wishes? And why are usually they not operating in the 1st location? I'michael not making use of a Para; just the Awesome WM.
Edit:
- Here is certainly a full but made easier keyboard design file. I have got this as
/usr/talk about/X11/xkb/symbols/nonpop
and I load it withsetxkbmap nonpop
. - I observed that in MonoDevelop moving around functions but selecting does not. That can be, if I push Change+Right then text is certainly chosen as usual, but if I push AltGr+Shift+n then the cursor just moves without selecting. For example in Firefox both ways can become utilized for selecting.
- Here in the end they talk aboutoverlayswhich looks like something that could possibly become a alternative but I haven't thought out how to make use of them.
nonpop
nonpopnonpop
3 Solutions
Why are they not really functioning
Relating to the ArchWiki't write-up that you mentioned:
- A server will getkeycodesfrom the insight gadget and turns them to theconditionandkeysym.
- conditionis usually the bitmask of the Times modifiers (Ctrl/Change/etc).
- keysymis certainly (relating to
/usr/consist of/X11/keysymdef.h
) the integerthatdetermine personas or features associated with each key (e.g., via the visible engraving) of a keyboard design.Each printable character provides its own keysym, likeplus
,a
,A
, orCyrillica
, but some other keys also create their keysyms, likeShiftL
,Still left
orF1
.
- The software in the important press/release occasions gets all of this information.Some applications track keysyms like
ControlL
by themselves, others justlook for the modifier parts in thecondition.
So what occurs, when you pressAltGr+m:
- You pressAltGr. Software will get KeyPressed event with keycode108 (
lt;RALTgt;
) and keysym 0xfe03 (ISOLevel3Shift
), condition is certainly 0. - You pressm(which road directions to “h” in dvorak without modifiers).Program gets KeyPressed event with keycode 44 (
lt;Air conditioners07gt;
), keysym 0xff51(Still left
) and condition 0x80 (modifier Mod5 is on). - You releasel. The software will get KeyRelease event for the essential
lt;Air conditioner07gt;
/Left
with the exact same variables. - Then dischargeAltGr- KeyRelease occasion for AltGr. (By the way,the condition here is usually still 0x80, but that doesn't issue.)
This can end up being seen if you run
xev
energy.Therefore, that all means that that, although the software will get the exact same keysym program code(
Left
) as from the regular keylt;LEFTgt;
, it furthermore will get the keysym program code andmodifier state from the AltGr. Nearly all most likely, those applications that wear't work,watch the modifiers and don'testosterone levels desire to work when some are usually energetic.How to create them work
Apparently, we can't modification every system to not to appear for modifiers. Thenthe just option to escape this circumstance can be to not really create modifiers' keysymsand state parts.
1. Split group
The only technique that comes to my mind is usually: define cursor movement tips in aseparate group and change, with a individual key press, to that team prior topressing the keysj,k,d,i actually(
h
,testosterone levels
,n
,c
) (group latching can be the desired method for one period groupchange, as I realize).For illustration:
Now, if you first pressAltGrand then (individually) one of themovement keys, this should work.
However, this is usually not really useful, even more appropriate would be to
LockGroup
instead of latch and press AltGr before and after group switch. Actually better maybe toSetGroup
- then AltGr would choose that group only while getting pressed,but that discloses to the programs AltGr's keysym(ISOGroupShift
/ISOGroupLatch
/whatever is usually defined) (but modifier statestays clear).But. there is furthermore a possibility remaining that the program furthermore readskeycodes (the rules of the genuine tips). After that it will notice the “fake” cursor tips.
2. Overlay
The more “low-level” solution would end up being theoverlay(as the same articledescribes).
Overlayjust indicates that some (true keyboard )major comes back the keycode ofanother key. The Times server shifts the keycode of a key and computes themodifier condition and the keysym for that fresh keycode, so the applicationshouldn'capital t notice the transformation.
But overlays are usually very restricted:
- There are usually just 2 overlay handle parts in the X machine (i.at the. there can bemaximum 2 overlays).
- Each key can have got only 1 substitute keycode.
As for the sleep, the execution is very similar to the technique with aseparate group:
SetControls
methods modify the control little bit while the key is pressed and restoreit on the important release. There should be similar functionalityLatchControls
, butxkbcomp
provides meon keymap collection.
(By the way, I also use dvorak and furthermore have remapped some motion keysyms tohigh ranges of alphabetic tips. And furthermore arrived across some damaged functionality(selection in Xfce records and desktop switch by Ctrl-Alt-Left/Best). Thanks a lot toyour question and this response, right now I know what an overlay is certainly :).)
ChelChel
I have got the exact same problem. It can be so painful.
So the title can be “How to create all programs regard my revised xkb design?“. Properly, I believe the just way is to fix all of the programs that perform it incorrectly. Let's perform that!
Nicely, after reporting that insect in NetBeans (Upgrade: I've attempted the latest version and it works today!), I believed that I will simply keep reporting this bug for every program. Next application on the checklist has beenSpeedcrunch.
Nevertheless, after searching for similar bug reviews I found this problem. Someone else is certainly getting the exact same problem, excellent!
After reading the responses you will realize that this bug should become existing in all QT apps. Here can be a QT pest report. Not really resolved,but it appears like the issue is solved in Qt5.
However, if you look at the remarks, there's a workaround! Right here is definitely how it works. If you were doing this:
After that you can change it to this:
And it will in fact solve the issue for some of the applications! For illustration,Speedcrunchright now functions for me! Yay!
Overview
Right right now any application should function correctly. If it doesn't, after that you possess to make use of
typeGroup1='ONELEVEL'
. If you currently have got it, then you possess to up-date your software program. If it nevertheless does not work, then it is app-specific and you have got to send a pest review.Upgrade (2017-09-23)
As of today, all programs regard my keyboard design. All except one.
Significantly,keyboard dealing with in Chromium is usually junk. There are usually several troubles with it:
- Change selection does not really with custom made arrow tips (but arrow secrets themselves work Fine)
- If you possess multiple styles and on one of the designs some key is unique (e.h. arrows, Backspace, etc.), then on another layout this essential will end up being set to whatever you have got on your 1st layout. For example, if you have got two layouts:
foo
,pub
and some key does Backspace infoo
, after that it will maintain operating as Backspace inclub
also if it is certainly redefined right now there.
For decades I overlooked these troubles by merely not using chromium. Nevertheless, nowadays factors have a tendency to use Electron, which will be unfortunately built on Chromium.
The correct way to solve this would become to send a pest statement in Chromium and hope for the best. I don't know how long it will take them to resolve an issue that is only influencing a couple of customers… but that appears to end up being the just way out there. The issue with this is definitely that chromium in fact works good with
neo(para)
layout. Neo design provides arrow keys on level5, but I can't obtain it to work in my custom made design.Still-open bug reviews:
- Pluma - https://github.com/mate-desktop/pluma/issues/17
Aleks-Daniel JakimenkoAleks-Daniel Jakimenko
Making use of additional Levels and Actions RedirectKey
Following solution utilizes the remaining Alt key to offer cursor tips on jkli, House/End/PageUp/PageDown on uopö and a Delete on the Backspace.
The still left Alt key remains workable for additional reasons for all some other tips (like for the application menus). The left Alt (Mod1) is certainly removed from the modifier condition when the cursor block out is used so applications can't find it.
mglmgl