wavexx / screenkey

A screencast tool to display your keys inspired by Screenflick
https://www.thregr.org/~wavexx/software/screenkey/
GNU General Public License v3.0
758 stars 65 forks source link

Abbreviations for lvl5 and layout switch. #15

Closed seletskiy closed 9 years ago

seletskiy commented 9 years ago

I'm using ISO_Level5_Shift as additional modifier and it takes a lot of space in the screenkey panel.

wavexx commented 9 years ago

On 23/10/15 12:01, Stanislav Seletskiy wrote:

I'm using ISO_Level5_Shift as additional modifier and it takes a lot of space in the screenkey panel.

Do you have a picture of the actual keyboard? I'm curious on what Lvl5 and Mode_Switch actually look like.

I had some old Sun keyboards with a slew of extra remappable keys, but I guess this is not the case.

seletskiy commented 9 years ago

It's just an ordinary mechanical keyboard, I use RAlt as ISO_Level5_Shift to remap various keys for more productive work, like RAlt+w is "6". However, Mode_Switch is controlled via foot-pedal under my table :) On Oct 23, 2015 5:02 PM, "wavexx" notifications@github.com wrote:

On 23/10/15 12:01, Stanislav Seletskiy wrote:

I'm using ISO_Level5_Shift as additional modifier and it takes a lot of space in the screenkey panel.

Do you have a picture of the actual keyboard? I'm curious on what Lvl5 and Mode_Switch actually look like.

I had some old Sun keyboards with a slew of extra remappable keys, but I guess this is not the case.

— Reply to this email directly or view it on GitHub https://github.com/wavexx/screenkey/pull/15#issuecomment-150544202.

wavexx commented 9 years ago

So both keys are simply modifiers?

Could you share your Mode_Switch customization? I also have a kinesis with 3 foot switches, and I'd like to try how it works (I normally use them as shift+ctrl+enter).

I internally translate Mode_switch as AltrGr in the MODS_MAP, which I guess the actual translation should take place is both are just modifiers and not actual (direct) keys.

seletskiy commented 9 years ago

@wavexx: I'm configuring my binding using raw XKB configs, because it's most flexible (and most ugly!) way to do it.

I'm using little tool called footswitch to map pedals to other keys. I've chosen easiest way and have mapped pedals to F6, F7, F8. Then, I've remapped F7 to Multi Key (compose) and F8 to secondary layout (Russian, while pedal is pressed).

So, yep, keys are just modifiers.

But speaking about ISO_Level5_Shift it's not just modifier (in terms of XKB), it's more like separate layer of keys, so when I press RAlt+w it's actually seen by X11 as plain 6 key press without any modifier, so I can type RAlt+Shift+w to type ^.

So, screenkey by itself sees RAlt+w as two different key presses: Lvl5 and 6. It's somewhat confusing, maybe we need to add --ignore flag to completely ignore Lvl5? What do you think?

BTW, I use same mechanism to remap arrow keys on LAlt+h, j, k, l system-wide in that way, so it works in all applications including GUI like Chrome. I found it immensely useful and highly recommend to do the same.

wavexx commented 9 years ago

On 26/10/15 11:29, Stanislav Seletskiy wrote:

BTW, I use same mechanism to remap arrow keys on LAlt+h, j, k, l system-wide in that way, so it works in all applications including GUI like Chrome. I found it immensely useful and highly recommend to do the same.

I'm thinking of some way that could be more "elegant" than a simple ignore list, but well...

The only thing is having some decent way to add/remove them in the settings pane as well.

This could come in handy if you want to hide, for example, cursor keys from the output (which is something that I wanted to do sometimes while teaching). Just add them to the ignore list.

seletskiy commented 9 years ago

@wavexx: That's why I don't like GUI. In CLI it's just adding --ignore.

wavexx commented 9 years ago

It wouldn't be too much of a problem normally, but the settings dialog is still containing a lot of crufty code which will need to get killed at some point. None of that works with Gtk3 anymore. One of the few parts I was too lazy to rewrite...

I think I'll just slip in the flag for now. I think the best approach would simply be:

--ignore [KeySym]

and repeat the flag if you need to ignore more keys.

wavexx commented 9 years ago

I added the --ignore flag. Just repeat the flag to ignore more than one KeySym. It's also loaded from the 'ignore' array from the json config. There's no GUI for that yet.

wavexx commented 9 years ago

Hopefully fixed in 0.8. Let me know if you have a better idea on how to handle it.

seletskiy commented 9 years ago

@wavexx: Thanks! It's awesome!

On Wed, Nov 4, 2015 at 5:06 PM, wavexx notifications@github.com wrote:

Closed #15 https://github.com/wavexx/screenkey/pull/15.

— Reply to this email directly or view it on GitHub https://github.com/wavexx/screenkey/pull/15#event-454329665.

Stanislav Seletskiy