• You are not logged in.

DreymaR's Big Bag of Keyboard Tricks - PKL/Windows Edition!

  • Started by DreymaR
  • 141 Replies:
  • Reputation: 97
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,582

I haven't implemented any dual-role functionality (yet). I find tapping Backspace an unnecessary exercise, as usually Caps+T+O or holding down Caps+O beats it in efficiency without having to hammer a key with a weak finger. I recommend using Ext+T+O a lot, as deleting and retyping the whole word should help you learn to type the word correctly. It's faster than you think to do it that way, and more productive than repeated backspacing in most cases.

Maybe I should add dual-role keys at some point, but generally I haven't seen the need for them yet.

Last edited by DreymaR (18-Dec-2018 09:55:03)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 15-Dec-2018
  • Posts: 3

I see. It would be helpful in having dual Backspace/Extend function so we wouldn't need to make a choice between the two. I tend to use Caps Lock as Backspace where I can't run the Extend layer and having both makes it more consistent. On mac, mattmc3's script for Karabiner allows this dual functionality and it is awesome! I am not sure how difficult to implement on Windows though.  It would help those on the fence who use Caps Lock for Backspace to try Extend layer.

Thanks for creating Extend! I had a similar idea for custom function layers but it's great to have a standard that is well thought out. Also SpaceFN is awesome.

Offline
  • 0
  • Reputation: 97
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,582

Hmmm, so maybe having just the Extend key as a dual-function key would be a good solution? It'd be a lot easier to implement than generic dual-role key mappings.

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 15-Dec-2018
  • Posts: 3

Yep. Hope it could be added in the future. Thanks!

Offline
  • 0
  • Reputation: 97
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,582
UPDATE 2019-01

• @ecdf: The latest PKL_eD v0.4.7 does indeed support a dual-role Extend modifier! You can set a tap release entry and a tap time in the Settings .ini file.
• Furthermore, there's now Multi-Extend, meaning that you can set two modifiers (e.g., RAlt and RShift) that will work with the Extend key to select a layer.
• Also, layers may be one-shot so they return to another layer (usually Ext1) after an entry has  been sent.

• From PKL_eD v0.4.8 you can also have sticky a.k.a. one-shot modifiers. Tap the modifier, then the key you want modified within a specified time.

Read about all this in the main post and on Github! ^_^

Last edited by DreymaR (18-Jan-2019 21:26:28)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 02-Nov-2018
  • Posts: 7

Hey DreymaR!

First thank you for delivering and maintaining that project! It's great to have an easy start, especially when there is a need for a locale adaption of the Colemak layout.

The problem is I have some little issues but I am not registered on github nor do I plan to dive into that platform. ;-)

For one on my working PC with Windows 10, Shift+Pos1 doesn't mark the whole line from cursor to the beginning of line. It's like ignoring the shift key. Mind that this happens in every text editing application. Interestingly this issue doesn't appear on my home PC with Windows 7.

But there I work with a software called Cockos Reaper, which relies heavily on shortcuts. Actually I came to Colemak because a user blogged this.
But for some reason Reaper won't accept the Del, Pos1, PicUp and Down key zone. Instead it receives the numbers from the number block. But the rest is working like expected - also the number block. :-)
Also there is a weird behaviour when holding a key with some functions in the software.

Any hints to troubleshoot?

I am already aiming at a hardware solution to avoid these issues. But at the moment the budget is pretty tight.

With best regards.

Offline
  • 0
  • Reputation: 97
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,582

Hi! Glad you're enjoying EPKL!

Asking in here is totally okay. It's nice that we have several access channels. On the other hand, registering a GitHub account and reporting a bug isn't much work so if you do feel tempted to try at some point I can recommend it. ^_^ But I do understand that there are many platforms and little time.

By 'Pos1' you mean the 'Home' key, right? So Ext+S+L should select to the beginning of the line, as it does for me, but doesn't for you on your Win10 PC? Or did you mean the physical Shift and the physical Home keys – which also work for me? I really can't tell what's happening there, but you can try some debugging techniques:
• Turn on the "AHK Key History" from the EPKL menu (with AdvancedMode on as is the default). Press those keys then F5 to update its window.
• Try with physical Shift vs the Extend one. Ext+Shift+L works like Ext+S+L for me, since Shift isn't mapped to anything in the Extend layers.
• If you look in your BaseLayout.ini file, you can comment out the definitions of the offending keys and see if it makes a difference.

Same with the Cockos Reaper app: I don't know, but have a look at the key history and see if you notice anything interesting.

If you're indeed talking about the physical Home etc keys, then commenting out this part of the relevant BaseLayout.ini should work:

SC152 = INSERT  	VirtualKey
SC153 = DELETE  	VirtualKey
SC147 = HOME    	VirtualKey
SC14f = END     	VirtualKey
SC149 = PRIOR   	VirtualKey
SC151 = NEXT    	VirtualKey

This means that you cannot use those keys for Extend mappings. But you probably didn't need that anyway, and nowadays you can always use another Extend layer instead! Meanwhile, I use those keys with Extend to produce arcane demos like writing Colemak-ⲔⲰ[eD] or Θώθ with Koptic/Greek letters, calling the Emoji menu or summoning daemons:

Spoiler:
             ______             
 Col    .d$$$******$$$$c.  mak  
 \e/ .d$P"            "$$c \-/  
    $$$$$.     C     .$$$*$.    
  .$$ 4$L*$$.     .$$Pd$  '$b   
  $F   *$. "$$e.e$$" 4$F   ^$b  
 d$     $$   z$$$e   $$     '$. 
 $P  m  `$L$$P` `"$$d$"   k  $$ 
 $$     e$$F   C   4$$b.     $$ 
 $b  .$$" $$   o  .$$ "4$b.  $$ 
 $$e$P"    $b     d$`    "$$c$F 
 '$P$$$$$$$$$$$$$$$$$$$$$$$$$$  
  "$c.      4$.  $$       .$$   
   ^$$.  DH  $$ d$"  AW  d$P    
     "$$c.   `$b$F    .d$P"     
 CAW   `4$$$c.$$$..e$$P"   [eD] 
           `^^^^^^^`            
Last edited by DreymaR (12-Feb-2019 09:44:15)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 1
  • Reputation: 0
  • Registered: 02-Nov-2018
  • Posts: 7

Thanks for the hint with the AHK key history - I wasn't aware that the program is keylogging. ;-)

I will have a look into your troubleshooting tips - time is limited for all that details and the pressure isn't that high.

A quick question about the "relevant" BaseLayout.ini - which is it for Cmk-eD-De_ISO_CurlAWide?
My guess would be Cmk-eD_ISO.(?)

I am currently also thinking about editing the layout. Actually I loved the Umlaute (üäö) under my right pinky in the QUWERTZ layout. So now the heavy motion my hands need to do for going in the middle is more strain than using my pinky. At least my feeling tells me that I need the Umlaute more often than ;/':?", So I will switch those when I understand the BaseLayout.ini and Layout.ini better.

Another strange but for me not surprising behaviour is the incompatibility to work with the auto type functionality of KeePass2. To use that I have to disable EPiKaL temporarely otherwise the input gets messed up.

Thank you for all the helpful answers!

Offline
  • 0
  • Reputation: 97
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,582

Yes, Cmk-eD_ISO should be the right BaseLayout for the German-ISO one. But it's seen in the layout.ini file if you're in doubt.

I like having the üäö (or rather, their Norwegian counterparts åæø) under indexes. I use a Wide ergo mod for this, which is what you have too. If you semi-hover while typing it's not hard to move your hand in, and you can even choose whether to use the right or left hand for them. If you want to use pinkies, you can easily get this by using only Angle (I really recommend that!). Then your bracket keys will be back where they started, and with them the special glyphs.

For the smoothest experience, switch to another set of dead key images and generate new help images or use the standard Angle ones. All this is set in the first section of layout.ini.

Yes, KeePass2 likely has a low-level keyboard hook that competes with EPKL. It's not something we can do so much about unfortunately. I use Ctrl+Shift+` to suspend EPKL which usually works in these cases.

Last edited by DreymaR (19-Feb-2019 09:00:12)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 1
  • Reputation: 0
  • Registered: 02-Nov-2018
  • Posts: 7

I am currently editing my way through the ini files to get my wishes working. Not that easy when you are not familar with the formating. xD
So I duplicated the Cmk-eD-De_ISO_CurlAWide folder and started to mess around. Some observations:
Beside the mapping of the keys the help images are also modular.
The extended mapping is very powerful. Is there an ISO Angled version available?
While editing and testtyping I thought the wide option isn't the problem for me - it's really just the Umlaute (öüä) not under the pinkies and the punctuation differences from the classic German layout (: is over/shift . and ; is over/shift ,).
So maybe the easiest (=way less time involved) thing would be to add some lines to the layout section of the ini file and be done. This wouldn't update the help images automatically? At least the extend mapping can than stay the way it works now with the  Cmk-eD-De_ISO_CurlAWide layout.

Edit1: Commenting the Home,End etc. keys out in the baseLayout.ini did the trick with the hassle within Reaper. Thanks for that!

Edit2: When checking the AHK key history is it normal that one key press will lead to four lines of entries in the log?

Last edited by CoolCole (03-Mar-2019 14:01:07)
Offline
  • 0
  • Reputation: 97
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,582

The Extend mappings are by scan code without ergo mods. The recommended way to get, e.g., the Angle mod for them is to set the "hard" remap in your layout.ini file, like this:

mapSC_extend    = Angle_ISO

The layout and extend SC maps may differ concerning "soft" mods like Curl-DH, but are usually the same for "hard" mods like AngleWide.

Yes, the easiest way to change a few mappings is to add a few lines to your layout.ini file. And the easiest way to point to your file is to change the locale (e.g., from 'De' to 'De-Cool') by renaming the folder and changing the locale accordingly in EPKL_Settings.

To update the help images you need to generate new ones, and for that you have to have the Inkscape program. But for most people, using help images that are mostly similar to your actual layout will be good enough.

The AHK history will indeed show four events per key for a remapped key:
1) The actual physical key-down (marked h since it's hooked as an AHK hotkey)
2) The key-down sent by EPKL (AHK artificial key event)
3) The sent key-up
4) The actual key-up (suppressed)

Last edited by DreymaR (09-Mar-2019 23:07:42)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 1
  • Reputation: 0
  • Registered: 02-Nov-2018
  • Posts: 7

So I finally understand how it works and how to edit it. You edit the edit of the edit! :D
I first thought you have to remap the key pressed actually on the keyboard but then realized that I have to change the mapping of the current layout I am editing (and not the key on the keyboard). Currently I am very happy with my edit. I honestly feel it makes more sense because I need öäü way more often than '</. I also "corrected" the punctuation mapping which differed from the standard German QWERTZ layout.
Thanks for your support.

Regarding my main tool - Reaper - again. I just discovered another culprit: Some functions are implemented by pressing and holding(!) a key / shortcut command. But with EPKL the key gets pressed repeatedly in milliseconds instead. Any hint how to avoid that?

Also somehow it messes my mice mappings up. I have a Roccat Kova and a Logitech G402. On their additional buttons I have for example on my browsers the tab switch shortcuts mapped to quickly change tabs. These are pretty simple COMMAND+TAB and COMMAND+Shift+TAB. And the last one is acting weirdly as if the shift key gets missing sometimes. Of course one can expect trouble when using multiple "key software" but this simple shortcut should work, since they are not including any remapped keys. (?)

For the future I believe I am will purchase some form of USB implementation of the remapping just to be 100 % sure that it's not interfering and works at every moment. For now I don't have much budget for that fun. :)

EDIT1: Regarding the repeating key pressing in Reaper: It also looks like a lot of events in the AHK key history.

Last edited by CoolCole (10-Mar-2019 20:19:59)
Offline
  • 0
  • Reputation: 97
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,582

EPKL has autorepeat of held keys, as that is the expected behavior of a held key. I'm therefore not sure how to skirt your problem as long as the key in question is used by EPKL. Maybe if I added a setting to disable autorepeat... phew...

The Shift keys are mapped by default in EPKL, to allow Sticky Shift. If you don't need that you could try unmapping LShift and RShift (and RCtrl) in your (base)layout.ini file. Maybe that'll solve your mouse button problem. The Alt (Command) and Tab keys aren't mapped so you wouldn't expect trouble with those – as confirmed by your experience.

On a side note, mapping Alt and Tab are both troublesome with AHK/EPKL vs other programs, so I try to avoid those.

Last edited by DreymaR (13-Mar-2019 11:10:45)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 02-Nov-2018
  • Posts: 7
DreymaR said:

EPKL has autorepeat of held keys, as that is the expected behavior of a held key. I'm therefore not sure how to skirt your problem as long as the key in question is used by EPKL. Maybe if I added a setting to disable autorepeat... phew...

That would be gorgeous! I honestly expected that this feature is implemented or got realized by "the OS" itself because of the setting in the windows keyboard settings. Even when checking there (there is a test field) it influences the parameters. Thinking about it I have to say I can't remember when I used that feature anyway. I would even say that the internet would have been a more cultivated discussion place due to the lack of !!!!!!!!!111!1!!1! ;)

DreymaR said:

The Shift keys are mapped by default in EPKL, to allow Sticky Shift. If you don't need that you could try unmapping LShift and RShift (and RCtrl) in your (base)layout.ini file.

I have found the shift keys in the base layout and outcommented them - that fixed the problem. Thanks for the hint.
For me it's not exactly clear what side effects this action have. AFAIK it's not relevant when you don't use any "exotic" dead key combinations.(?)

Offline
  • 0
  • Reputation: 97
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,582

Sticky Shift or OneShotModifiers is very useful for some, especially fast typists. Instead of having to hold down the modifier you can tap it and then quickly hit the key you want modified. In the EPKL settings you can set the tap timer in milliseconds.

Apart from that functionality, I don't think you're missing anything by commenting out the modifiers.

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 17-Oct-2018
  • Posts: 3

Hello Dreymar, thank you very much for your latest release, this multiple extend layers feature is awesome!
I have just installed it, and everything works fine except a small issue: I can't get the extend_key to be LAlt…
I have set it in the base_layout.ini file

extend_key      = LAlt

Is there anything else I need to do? I have tried to add the following line, without much success

SC038 = LALT    0    --    --    --    --    --    ; Lalt

I am currently using the EPKL executable.

Thank you very much!

Edit: found myself the fix by putting the SC code directly:

extend_key      = SC038

Last edited by Suntheran (21-Mar-2019 17:53:33)
Offline
  • 0
  • Reputation: 97
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,582

There's an old semi-bug from the PKL days, which the next release will change and fix. But for now, the mapping of the extend_key must be exactly like the key mapped. Grats on finding that one out!

You could've used 'SC038 = VK' for simplicity instead of mapping its levels.

In the next release, the 'extend_key = ' setting is replaced by mapping the key in question as 'SC### = Extend Modifier'.

I've had some problems with mapping a key to be LAlt, since that key works a bit particularly. So be aware of that.

Last edited by DreymaR (22-Mar-2019 09:38:32)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0