Mateusz Poszwa <[email protected]> writes: > On Fri, 12 Jul 2013 01:08:03 +0200 > lee <[email protected]> wrote: >> My understanding was that you need to use the actual key symbol (as used >> in xmodmap) that is being produced. For example, when you have >> >> bindsym $mod+Shift+J move left >> >> a capital 'J' is being produced. When you have the some binding without >> Shift, like >> >> bindsym $mod+j move left >> >> it's a small 'j' because Shift isn't pressed. > > „ > bindsym $mod+Shift+j move left > ” > would work too. Maybe the names are case insensitive?
Maybe they are, though the documentation indicates that you need to use the key symbols that are being produced. >> This shows throughout the default configuration file. The documentation >> says: >> >> >> ,---- [ http://i3wm.org/docs/userguide.html#keybindings] >> | >> | A keysym (key symbol) is a description for a specific symbol, like "a" >> | or "b", but also more strange ones like "underscore" instead of >> | "_". These are the ones you use in Xmodmap to remap your keys. To get >> | the current mapping of your keys, use xmodmap -pke. To interactively >> | enter a key and see what keysym it is configured to, use xev. >> | >> `---- >> >> >> I have been using xev to verify that pressing 'AltGr+<Minus Key>' and >> 'AltGr+Shift+<Minus Key>' do yield 'periodcentered' and 'abovedot', >> respectively. (Those are now intercepted by i3.) > > I don't think so, but I may be wrong. Those symbols aren't typed anymore when I press the keys, so yes, really, i3 must be intercepting them. > If it was as you say, you could write > „ > bindsym abovedot workspace prev > ” > instead of > „ > bindsym $mod+Shift+minus workspace prev > ” > To be honest, I haven't checked if the former works. > You can do it as an exercise and let me know if you succeed. ;-) > I'd be surprised, but I don't say it's impossible. That's an interesting idea indeed :) I tried it and it doesn't work. >> Actually, 'Shift+<Minus Key>' produces an underscore. How come that >> 'AltGr+Shift+minus' even works? Shouldn't that rather be >> 'AltGr+Shift+underscore'?[1] > > I think i3 maps keysyms („plain” keysyms — without modifiers) > to keycodes and applies modifiers itself. Going by the documentation, the key codes seem to be irrelevant unless you use 'bindcode' instead of 'bindsym'. I guess if I changed my xmodmap so that '-' (minus) is on the key that's labeled 'J', I'd have to press AltGr+j instead of AltGr+<minus>. This is pretty confusing ... >> > As a side note, I don't think using AltGr as a modifier is a good idea… >> >> How come you think so? It works great and allows for some easy >> one-handed i3-operations. Since I have modified my xmodmap so that I >> can type braces and brackets without pressing AltGr, there are only four >> keys that come to mind for which I need AltGr: '@', '|', 'ß' and '\'. >> That leaves me pretty much all of the other 98 keys to bind i3 stuff to >> :) Do you know of any application which would be aware that there's such >> a thing as an AltGr key? > > How about 'ö'? ;-P What about it? > You are right. It seems good in you case. I use the Colemak keyboard > layout, which uses AltGr heavily for diacritics input, and there's > quite many of them in Polish. Ah I only write English and German, so I'm not missing any letters with the keyboard as is. The only thing is that there are some like '/', '~' and brackets that are at very inconvenient locations with a default German layout, so I changed that. > As for AltGr-aware applications, probably some old games may use that > key. Hm, none that does comes to mind ... >> (I'm using a Model M keyboard that doesn't have the obsolete keys newer >> ones have, so there aren't any keys around Space, Alt, AltGr and Ctrl >> that would get persistently in the way.) > > I have plenty of „obsolete” keys on my TypeMatrix 2020, > such as Super (captioned „Start”), which I use for i3's bindings, > or Caps Lock, which I have bound a minus to. ;-) That looks like an interesting keyboard :) I wish I could have one with 122 keys, but it seems that there are hardware issues preventing that. -- "Object-oriented programming languages aren't completely convinced that you should be allowed to do anything with functions." http://www.joelonsoftware.com/items/2006/08/01.html
