Author Topic: The SpaceFN layout: trying to end keyboard inflation  (Read 125807 times)

0 Members and 1 Guest are viewing this topic.

Offline EvilOlivE

  • Posts: 12
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #300 on: Wed, 07 October 2015, 10:48:16 »
Quote
Here's a working solution:

Code: [Select]
q::
    dual.combo()
    if (GetKeyState("F22")) {
        dual.Send("hello, world")
    } else {
        Hotkey, q, Off
        SendInput q
        Hotkey, q, On
    }
    return

I agree that the Dual API documentation is confusing. A partial solution can be found under this section. I just added a couple of calls to the Hotkey function to prevent the hotkey from being recursive.


Thanks joc!  I saw that example with the message box but I couldn't figure out how to format it correctly.  This is what ended up working for me:
Code: [Select]
*q::
    dual.combo(F22)
    if (GetKeyState("F22")) {
        dual.Send("hello world{ENTER}" )
    } else {
        SendInput q
    }
    return

I was getting a "Nonexistent Hotkey" error when I included the extra Hotkey lines and press Q without space.  But this seems to work, so far. 
I really like the idea of using the space bar as the Fn key, its position is really comfortable and intuitive.  The next best thing would maybe be a second space bar as a dedicated Fn switch below the space bar, or like the button on the Smart68 keyboard.  Eventually id like to get something custom like that but in the meantime this is pretty fun to play around with on the software side. 

Thank you for your help!

Offline joc

  • Posts: 15
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #301 on: Wed, 07 October 2015, 16:07:56 »
Thanks joc!  I saw that example with the message box but I couldn't figure out how to format it correctly.  This is what ended up working for me:

Code: [Select]
*q::
    dual.combo(F22)
    if (GetKeyState("F22")) {
        dual.Send("hello world{ENTER}" )
    } else {
        SendInput q
    }
    return

I was getting a "Nonexistent Hotkey" error when I included the extra Hotkey lines and press Q without space.  But this seems to work, so far. 
I really like the idea of using the space bar as the Fn key, its position is really comfortable and intuitive.  The next best thing would maybe be a second space bar as a dedicated Fn switch below the space bar, or like the button on the Smart68 keyboard.  Eventually id like to get something custom like that but in the meantime this is pretty fun to play around with on the software side. 

Thank you for your help!

You're welcome. I forgot to mention that error. My solution only works when it's outside an #If block for some reason. Here's the default spacefn-win.ahk file with a working and nonworking solution at the bottom:

Code: [Select]
; Note: This implementation assumes an en-US QWERTY layout.


SendMode Input
#NoEnv
#SingleInstance force


options := {delay: 150, timeout: 300, doublePress: -1, swap_backtick_escape: false, mode: "ijkl"}
loop %0% {
arg := %A_Index%
argSplit := StrSplit(arg, "=")
option := argSplit[1]
value := argSplit[2]
options[option] := value
}


#Include <dual/dual>
dual := new Dual


#Include <dual/defaults>


#If options.swap_backtick_escape
*`::dual.comboKey({F22: "Escape"})
#If


#If options.mode == "ijkl"
*i::dual.comboKey({F22: "Up"})
*j::dual.comboKey({F22: "Left"})
*k::dual.comboKey({F22: "Down"})
*l::dual.comboKey({F22: "Right"})

*u::dual.comboKey({F22: "Home"})
*o::dual.comboKey({F22: "End"})
*h::dual.comboKey({F22: "PgUp"})
*n::dual.comboKey({F22: "PgDn"})

*m::dual.comboKey({F22: "``"})
*,::dual.comboKey({F22: "~"})
#If


#If options.mode == "ijkl2"
*i::dual.comboKey({F22: "Up"})
*j::dual.comboKey({F22: "Left"})
*k::dual.comboKey({F22: "Down"})
*l::dual.comboKey({F22: "Right"})
*,::dual.comboKey({F22: "Down"})

*u::dual.comboKey({F22: "Home"})
*m::dual.comboKey({F22: "End"})
*o::dual.comboKey({F22: "PgUp"})
*.::dual.comboKey({F22: "PgDn"})
#If


#If options.mode == "hjkl"
*h::dual.comboKey({F22: "Left"})
*j::dual.comboKey({F22: "Down"})
*k::dual.comboKey({F22: "Up"})
*l::dual.comboKey({F22: "Right"})

*y::dual.comboKey({F22: "Home"})
*u::dual.comboKey({F22: "PgUp"})
*i::dual.comboKey({F22: "PgDn"})
*o::dual.comboKey({F22: "End"})

*n::dual.comboKey({F22: "Home"})
*m::dual.comboKey({F22: "PgUp"})
*,::dual.comboKey({F22: "PgDn"})
*.::dual.comboKey({F22: "End"})
#If


#If options.mode == "wasd"
*w::dual.comboKey({F22: "Up"})
*a::dual.comboKey({F22: "Left"})
*s::dual.comboKey({F22: "Down"})
*d::dual.comboKey({F22: "Right"})

*q::dual.comboKey({F22: "Home"})
*e::dual.comboKey({F22: "End"})
*f::dual.comboKey({F22: "PgUp"})
*c::dual.comboKey({F22: "PgDn"})
#If


#If true ; Override defaults.ahk. There will be "duplicate hotkey" errors otherwise.
*Space::
*Space UP::dual.combine("F22", A_ThisHotkey, {delay: options.delay, timeout: options.timeout, doublePress: options.doublePress})

*BackSpace::dual.comboKey({F22: "Delete"})

*\::dual.comboKey({F22: "Insert"})

*b::dual.comboKey({F22: "Space"})

*1::dual.comboKey({F22: "F1"})
*2::dual.comboKey({F22: "F2"})
*3::dual.comboKey({F22: "F3"})
*4::dual.comboKey({F22: "F4"})
*5::dual.comboKey({F22: "F5"})
*6::dual.comboKey({F22: "F6"})
*7::dual.comboKey({F22: "F7"})
*8::dual.comboKey({F22: "F8"})
*9::dual.comboKey({F22: "F9"})
*0::dual.comboKey({F22: "F10"})
*-::dual.comboKey({F22: "F11"})
*=::dual.comboKey({F22: "F12"})

*p::dual.comboKey({F22: "PrintScreen"})
*[::dual.comboKey({F22: "ScrollLock"})
*]::dual.comboKey({F22: "Pause"})

*e::dual.comboKey({F22: "Escape"})
*`::dual.comboKey("Escape", {F22: "``"})
#If

; This works fine because it's not within an #If block.
q::
   dual.combo()
   if (GetKeyState("F22")) {
       dual.Send("hello, world")
    } else {
        Hotkey, q, Off
        SendInput q
        Hotkey, q, On
    }
    return

; This results in an error => "Error: Nonexistent hotkey variant (IfWin)."
#If true
q::
    dual.combo()
    if (GetKeyState("F22")) {
        dual.Send("hello, world")
    } else {
        Hotkey, q, Off
        SendInput q
        Hotkey, q, On
    }
    return
#If

I found that using *q is less responsive than temporarily disabling the hotkey (Hotkey, q, Off ... Hotkey, q, On); by "less responsive" I mean that you need to hold down the space bar for a longer amount of time before it's recognized as SpaceFn.

Offline EvilOlivE

  • Posts: 12
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #302 on: Fri, 09 October 2015, 10:35:30 »
Quote
You're welcome. I forgot to mention that error. My solution only works when it's outside an #If block for some reason. Here's the default spacefn-win.ahk file with a working and nonworking solution at the bottom:

Code: [Select]
; Note: This implementation assumes an en-US QWERTY layout.


SendMode Input
#NoEnv
#SingleInstance force


options := {delay: 150, timeout: 300, doublePress: -1, swap_backtick_escape: false, mode: "ijkl"}
loop %0% {
arg := %A_Index%
argSplit := StrSplit(arg, "=")
option := argSplit[1]
value := argSplit[2]
options[option] := value
}


#Include <dual/dual>
dual := new Dual


#Include <dual/defaults>


#If options.swap_backtick_escape
*`::dual.comboKey({F22: "Escape"})
#If


#If options.mode == "ijkl"
*i::dual.comboKey({F22: "Up"})
*j::dual.comboKey({F22: "Left"})
*k::dual.comboKey({F22: "Down"})
*l::dual.comboKey({F22: "Right"})

*u::dual.comboKey({F22: "Home"})
*o::dual.comboKey({F22: "End"})
*h::dual.comboKey({F22: "PgUp"})
*n::dual.comboKey({F22: "PgDn"})

*m::dual.comboKey({F22: "``"})
*,::dual.comboKey({F22: "~"})
#If


#If options.mode == "ijkl2"
*i::dual.comboKey({F22: "Up"})
*j::dual.comboKey({F22: "Left"})
*k::dual.comboKey({F22: "Down"})
*l::dual.comboKey({F22: "Right"})
*,::dual.comboKey({F22: "Down"})

*u::dual.comboKey({F22: "Home"})
*m::dual.comboKey({F22: "End"})
*o::dual.comboKey({F22: "PgUp"})
*.::dual.comboKey({F22: "PgDn"})
#If


#If options.mode == "hjkl"
*h::dual.comboKey({F22: "Left"})
*j::dual.comboKey({F22: "Down"})
*k::dual.comboKey({F22: "Up"})
*l::dual.comboKey({F22: "Right"})

*y::dual.comboKey({F22: "Home"})
*u::dual.comboKey({F22: "PgUp"})
*i::dual.comboKey({F22: "PgDn"})
*o::dual.comboKey({F22: "End"})

*n::dual.comboKey({F22: "Home"})
*m::dual.comboKey({F22: "PgUp"})
*,::dual.comboKey({F22: "PgDn"})
*.::dual.comboKey({F22: "End"})
#If


#If options.mode == "wasd"
*w::dual.comboKey({F22: "Up"})
*a::dual.comboKey({F22: "Left"})
*s::dual.comboKey({F22: "Down"})
*d::dual.comboKey({F22: "Right"})

*q::dual.comboKey({F22: "Home"})
*e::dual.comboKey({F22: "End"})
*f::dual.comboKey({F22: "PgUp"})
*c::dual.comboKey({F22: "PgDn"})
#If


#If true ; Override defaults.ahk. There will be "duplicate hotkey" errors otherwise.
*Space::
*Space UP::dual.combine("F22", A_ThisHotkey, {delay: options.delay, timeout: options.timeout, doublePress: options.doublePress})

*BackSpace::dual.comboKey({F22: "Delete"})

*\::dual.comboKey({F22: "Insert"})

*b::dual.comboKey({F22: "Space"})

*1::dual.comboKey({F22: "F1"})
*2::dual.comboKey({F22: "F2"})
*3::dual.comboKey({F22: "F3"})
*4::dual.comboKey({F22: "F4"})
*5::dual.comboKey({F22: "F5"})
*6::dual.comboKey({F22: "F6"})
*7::dual.comboKey({F22: "F7"})
*8::dual.comboKey({F22: "F8"})
*9::dual.comboKey({F22: "F9"})
*0::dual.comboKey({F22: "F10"})
*-::dual.comboKey({F22: "F11"})
*=::dual.comboKey({F22: "F12"})

*p::dual.comboKey({F22: "PrintScreen"})
*[::dual.comboKey({F22: "ScrollLock"})
*]::dual.comboKey({F22: "Pause"})

*e::dual.comboKey({F22: "Escape"})
*`::dual.comboKey("Escape", {F22: "``"})
#If

; This works fine because it's not within an #If block.
q::
   dual.combo()
   if (GetKeyState("F22")) {
       dual.Send("hello, world")
    } else {
        Hotkey, q, Off
        SendInput q
        Hotkey, q, On
    }
    return

; This results in an error => "Error: Nonexistent hotkey variant (IfWin)."
#If true
q::
    dual.combo()
    if (GetKeyState("F22")) {
        dual.Send("hello, world")
    } else {
        Hotkey, q, Off
        SendInput q
        Hotkey, q, On
    }
    return
#If

I found that using *q is less responsive than temporarily disabling the hotkey (Hotkey, q, Off ... Hotkey, q, On); by "less responsive" I mean that you need to hold down the space bar for a longer amount of time before it's recognized as SpaceFn.

Interesting.  I was trying to make my own "mode" and add everything within that modes #If.  I noticed the delay you were talking about so I started to play around with the delay option.  I think your script works better.  Thanks again!

Offline ideus

  • * Exalted Elder
  • Posts: 7624
  • Location: In the middle of nowhere.
  • Björkö.
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #303 on: Sun, 25 October 2015, 14:37:14 »
Can someone explains the advantages and drawbacks of using AHK scripts against Touch-Coursor?

Offline g012

  • Posts: 2
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #304 on: Sat, 28 November 2015, 10:00:53 »
Hey,

Concerning the rollover detection, has anyone tried considering the duration of the overlap ?
Code: [Select]
  FN  ----------------------
  KEY               ------------------
             x          y        z
Using some user-defined constants DX, DY, and DZ, how about:
Code: [Select]
if (x > DX || y > DY) ismod = true;
if (x + y > DZ && z == 0) cancel = true;

From what I gather, in the current implementation only the part "x > DX" is considered for "ismod". Using this version would allow setting a higher value for DX, reducing the number of mis-fn triggers. After all, the main thing that matters is the duration between the press of the modified key and the release (if any) of space bar (fn).

I point this out also because I would not just put arrows or navigation (vi input is here to do that better), or even worse rather useless media keys in the fn layer, but actual letters (éèà etc.) and programming symbols ([]#{} etc.). So speed matters just as with any regular key. As of now, I'm using a layout with a dead key for that (since the last 12 years or so - and yes, I'm totally anti AltGr, never at the same place on different keyboards, and requiring way too much stress on the thumb to activate it except for a few keyboard designs, mostly ISO - and ANSI is far more ergonomic than ISO for everything else).

Any thoughts on this modification of algo ?

Note that I haven't tried the scripts here yet, so I'm speculating for now.

Offline ideus

  • * Exalted Elder
  • Posts: 7624
  • Location: In the middle of nowhere.
  • Björkö.
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #305 on: Sat, 28 November 2015, 15:14:42 »
Can someone explains the advantages and drawbacks of using AHK scripts against Touch-Coursor?


No one?

Offline Lunatique

  • Posts: 285
  • Location: Lincoln, CA
  • Writer, Composer, Artist, Photographer, Gamer
    • Ethereality
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #306 on: Sat, 28 November 2015, 16:00:38 »
Can someone explains the advantages and drawbacks of using AHK scripts against Touch-Coursor?


No one?

Every since I started using TouchCursor, I have stopped using AHK completely. At first I still used AHK to swap Caps Lock and Control on some keyboards, but I realized that my muscle memory is so ingrained to the CTRL+Hotkey combos I've been using for almost two decades that I just can't make the switch to using the Caps Lock key as Control. Since then, I have stopped using AHK completely and only use TouchCursor. TouchCursor is far more stable/reliable and intuitive/easy to use, with no drawbacks. The only advantage AHK offers is if you need a specific function that TouchCursor doesn't offer. If TouchCursor already does everything you need, there's absolutely no need to use AHK at all--it only adds instability and cause weird keyboard input glitches that are really hard to troubleshoot and correct (for me, I'd have to close AHK and repeated press the Shift key).

Seriously, TouchCursor is freaking awesome.
My website + Blog: www.ethereality.info

Offline ideus

  • * Exalted Elder
  • Posts: 7624
  • Location: In the middle of nowhere.
  • Björkö.
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #307 on: Sat, 28 November 2015, 16:46:10 »
Can someone explains the advantages and drawbacks of using AHK scripts against Touch-Coursor?


No one?

Every since I started using TouchCursor, I have stopped using AHK completely. At first I still used AHK to swap Caps Lock and Control on some keyboards, but I realized that my muscle memory is so ingrained to the CTRL+Hotkey combos I've been using for almost two decades that I just can't make the switch to using the Caps Lock key as Control. Since then, I have stopped using AHK completely and only use TouchCursor. TouchCursor is far more stable/reliable and intuitive/easy to use, with no drawbacks. The only advantage AHK offers is if you need a specific function that TouchCursor doesn't offer. If TouchCursor already does everything you need, there's absolutely no need to use AHK at all--it only adds instability and cause weird keyboard input glitches that are really hard to troubleshoot and correct (for me, I'd have to close AHK and repeated press the Shift key).

Seriously, TouchCursor is freaking awesome.


It is similar to my own experience, I have been using AHK for at least 7 years so far; but, even having some skills with it, I do not see any way a auto hot key script may be as efficient as Touch Cursor is.

Offline Phenix

  • Posts: 591
  • Location: Germany
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #308 on: Thu, 07 January 2016, 17:04:19 »
how can I set arrow keys to Space+A/W/S/D??
(W up,A right...)

dont get it(changed every variable i could find)
please sent it to me/a zip archive
thanks
Winter is coming.

Offline ideus

  • * Exalted Elder
  • Posts: 7624
  • Location: In the middle of nowhere.
  • Björkö.
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #309 on: Thu, 07 January 2016, 20:35:52 »
how can I set arrow keys to Space+A/W/S/D??
(W up,A right...)

dont get it(changed every variable i could find)
please sent it to me/a zip archive
thanks

I have been encouraging people to give Touch Cursor a try, you can set pretty anything you want with it.

Offline Phenix

  • Posts: 591
  • Location: Germany
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #310 on: Thu, 07 January 2016, 20:42:28 »
so its really not possible!?
Winter is coming.

Offline ideus

  • * Exalted Elder
  • Posts: 7624
  • Location: In the middle of nowhere.
  • Björkö.
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #311 on: Thu, 11 February 2016, 07:21:33 »
 This is a brief report on the use of the SpaceFN concept: Now I use a 58 keys layout, including the spacebar, with no other Fn key but the space bar on a GON Nerd60. The second layer is accessible by TouchCursor, it allows me to use the same layout on my laptop keyboard. The efficiency is great now. I encourage GH fellows to give SpaceFN a try.

Offline Salt Peanuts

  • Posts: 39
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #312 on: Thu, 17 March 2016, 07:32:48 »
I've been using SpaceFN with TouchCursor and it's been working really well.  Having a pseudo-layer control right under my thumbs is just fantastic.  One problem I have with TouchCursor is that it is only capable of keeping one setup/profile.  This usually wouldn't be a problem, but I'm in the process of learning Colemark and that means anything I setup with TouchCursor in QWERTY wouldn't work when I'm typing in Colemark (and vice versa).  So I bought a Frosty Flake to use with my QFR that's been collecting dust hoping it'll be solution to my problem (QWERTY in one layer, Colemark in another layer, with access to the SpaceFN layer from both).  I setup the whole thing using EasyAVR and everything was working swimmingly - until I started typing.  The rollover problem with this setup was such that I was consistently missing space and/or activating SpaceFN layer while typing.  This surprised me since I had no issue with rollover with TouchCursor.  So for now, back to TouchCursor for me and QFR is also back collecting dust again.

And I havne’t even tackled the work Mac yet.

Offline FuriousGeorge

  • Posts: 134
  • Location: United States
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #313 on: Thu, 17 March 2016, 11:44:11 »
I've been using SpaceFN with TouchCursor and it's been working really well.  Having a pseudo-layer control right under my thumbs is just fantastic.  One problem I have with TouchCursor is that it is only capable of keeping one setup/profile.  This usually wouldn't be a problem, but I'm in the process of learning Colemark and that means anything I setup with TouchCursor in QWERTY wouldn't work when I'm typing in Colemark (and vice versa).  So I bought a Frosty Flake to use with my QFR that's been collecting dust hoping it'll be solution to my problem (QWERTY in one layer, Colemark in another layer, with access to the SpaceFN layer from both).  I setup the whole thing using EasyAVR and everything was working swimmingly - until I started typing.  The rollover problem with this setup was such that I was consistently missing space and/or activating SpaceFN layer while typing.  This surprised me since I had no issue with rollover with TouchCursor.  So for now, back to TouchCursor for me and QFR is also back collecting dust again.

And I havne’t even tackled the work Mac yet.

You may want to give TMK a try instead. I just recently got a Frosty Flake for my QFR, but haven't installed it yet so I don't know for sure it would solve your issue. I use SpaceFN on a couple other keyboards with TMK and it works great. I like it even better than TouchCursor. I haven't used EasyAVR before, so I can't compare them, but my guess is TMK will give you what you are looking for. Maybe I'll have some free time this weekend and give it a go on my QFR.

Offline Salt Peanuts

  • Posts: 39
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #314 on: Thu, 17 March 2016, 14:23:29 »
You may want to give TMK a try instead. I just recently got a Frosty Flake for my QFR, but haven't installed it yet so I don't know for sure it would solve your issue. I use SpaceFN on a couple other keyboards with TMK and it works great. I like it even better than TouchCursor. I haven't used EasyAVR before, so I can't compare them, but my guess is TMK will give you what you are looking for. Maybe I'll have some free time this weekend and give it a go on my QFR.

Thanks for the tip.  I'll see how far I'll get with TMK since I have absolutely no coding background.

Offline FuriousGeorge

  • Posts: 134
  • Location: United States
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #315 on: Thu, 17 March 2016, 16:35:30 »
Thanks for the tip.  I'll see how far I'll get with TMK since I have absolutely no coding background.

I'm pretty sure the last time I did any coding was with a 16 bit version of visual basic, but I managed to figure it out eventually. :) Hopefully I can get my frosty flake installed and figured out soon. If I do, I'll let you know what I did.

Offline Salt Peanuts

  • Posts: 39
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #316 on: Fri, 25 March 2016, 06:32:04 »
After much trial and error, I finally have the TMK working on my QFR w/ Frosty Flake.  The whole process got a lot easier once I realized that someone else had done most of the work for me (https://github.com/bgould/costar_tmk_keyboard).  SpaceFN is now working beautifully with no rollover issues.  I still need to fix one of the keyswitch LED being constantly on, but that is a TMK issue not SpaceFN.
« Last Edit: Fri, 25 March 2016, 08:06:30 by Salt Peanuts »

Offline ideus

  • * Exalted Elder
  • Posts: 7624
  • Location: In the middle of nowhere.
  • Björkö.
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #317 on: Fri, 25 March 2016, 09:12:08 »
After much trial and error, I finally have the TMK working on my QFR w/ Frosty Flake.  The whole process got a lot easier once I realized that someone else had done most of the work for me (https://github.com/bgould/costar_tmk_keyboard).  SpaceFN is now working beautifully with no rollover issues.  I still need to fix one of the keyswitch LED being constantly on, but that is a TMK issue not SpaceFN.

Well, space FN is a concept, not a software; thus, how could it be the culprit of your keyboard malfunctioning. In the other hand, I wonder why you want your keyboard to have the space FN flashed, while a simple software solution could do the trick, and work along any laptop or PC you might have with for example TouchCursor.

Offline Salt Peanuts

  • Posts: 39
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #318 on: Fri, 25 March 2016, 19:13:45 »
Well, space FN is a concept, not a software; thus, how could it be the culprit of your keyboard malfunctioning. In the other hand, I wonder why you want your keyboard to have the space FN flashed, while a simple software solution could do the trick, and work along any laptop or PC you might have with for example TouchCursor.
I never said anything about SpaceFN causing my keyboard to malfunction.  As stated earlier, I'm in the process of (slowly) learning Colemark and that means anything I had setup with TouchCursor in QWERTY wouldn't work when I'm typing in Colemark since TouchCursor can't keep multiple setups.  This is why I wanted to use Frosty Flake - QWERTY in one layer, Colemark in another layer, with access to the SpaceFN layer from both.  I initially used EasyAVR Keymapper, but that resulted in rollover issues that I couldn't solve via settings available on EasyAVR Keymapper.  TMK allows me to use SpaceFN in both Colemark and QWERTY with no rollover issues.  If I didn't want SpaceFN working on both Colemark and QWERTY, I'd been perfectly happy with just using TouchCursor without going through the trouble of using TMK.

Also, now that I've managed to get TMK working, this keyboard will eventually be used at work where I can't rely on software solutions.

Offline ideus

  • * Exalted Elder
  • Posts: 7624
  • Location: In the middle of nowhere.
  • Björkö.
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #319 on: Fri, 25 March 2016, 19:52:06 »
Well, space FN is a concept, not a software; thus, how could it be the culprit of your keyboard malfunctioning. In the other hand, I wonder why you want your keyboard to have the space FN flashed, while a simple software solution could do the trick, and work along any laptop or PC you might have with for example TouchCursor.
I never said anything about SpaceFN causing my keyboard to malfunction.  As stated earlier, I'm in the process of (slowly) learning Colemark and that means anything I had setup with TouchCursor in QWERTY wouldn't work when I'm typing in Colemark since TouchCursor can't keep multiple setups.  This is why I wanted to use Frosty Flake - QWERTY in one layer, Colemark in another layer, with access to the SpaceFN layer from both.  I initially used EasyAVR Keymapper, but that resulted in rollover issues that I couldn't solve via settings available on EasyAVR Keymapper.  TMK allows me to use SpaceFN in both Colemark and QWERTY with no rollover issues.  If I didn't want SpaceFN working on both Colemark and QWERTY, I'd been perfectly happy with just using TouchCursor without going through the trouble of using TMK.

Also, now that I've managed to get TMK working, this keyboard will eventually be used at work where I can't rely on software solutions.


That makes sense.

Offline spanyam

  • Posts: 180
  • Location: USA
  • Enjoy the gift of life!
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #320 on: Fri, 25 March 2016, 19:54:39 »
I just tried this out on Karabiner, and I'm not liking the experience of basic typing. The fact that a space only actuates when letting go of the space bar completely messes up my typing memory. I usually do around 120 wpm when not accounting for typos, and a lot of the spaces are getting skipped because my fingers are hitting the next word before the spacebar has been fully released. I guess I'm sticking with the HHKB style fn key for now :P
SKCM Orange ALPS on Infinity 60% bent-metal case w/ hasu ALPS64 PCB and PBT blank DSA caps | KBP V60 w/ Matias Quiet Linears | IBM Model M | QFR w/ MX Blues


Offline U47

  • Posts: 78
  • Location: YEG
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #321 on: Tue, 03 May 2016, 14:25:37 »
Question: has anyone tried to replicate SpaceFN in software on Linux? I love that I have my own SpaceFN hybrid on all my boards with TMK controllers, but using the built-in keyboard on my Linux laptop is posing a challenge.

Offline mike52787

  • Posts: 1029
  • Location: South-West Florida
  • Alps Aficionado
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #322 on: Tue, 03 May 2016, 14:43:50 »
Im a huge fan of this idea. I would definitely buy a board like this.

Offline hasu

  • Posts: 2986
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #323 on: Wed, 04 May 2016, 00:45:33 »
Never tried but these tools were found and seems to be promising for start point.
Solution which works also on console in addition to Xorg would be preferable.

at-home-modifier:
https://gitlab.com/at-home-modifier/at-home-modifier-evdev/wikis/home

xcape:
https://github.com/alols/xcape
TMK products:HHKB Alt  ⌨ConvertersAlps64FC660C AltFC980C Alt

Offline U47

  • Posts: 78
  • Location: YEG
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #324 on: Wed, 04 May 2016, 13:19:14 »
Solution which works also on console in addition to Xorg would be preferable.
Yeah, I think it's going to prove far easier to do it in X than the console, but doing it in the console would be preferable (since it logically would work in X, too).
« Last Edit: Wed, 04 May 2016, 17:40:17 by U47 »

Offline U47

  • Posts: 78
  • Location: YEG
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #325 on: Tue, 26 July 2016, 14:24:29 »
Solution which works also on console in addition to Xorg would be preferable.
Yeah, I think it's going to prove far easier to do it in X than the console, but doing it in the console would be preferable (since it logically would work in X, too).
On second though, the impending demise of X for Wayland/Mir makes a console port really the only (sane) way to go. :/

Offline vincentalpha

  • Posts: 24
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #326 on: Mon, 17 October 2016, 10:25:44 »
hi guys,
I love this feature and would like to apply spacefn with my XD60 using TMK controller. I am asking if you can guy help me to set up this feature with my keyboard. Sorry if this question has been answer before. I don't have the programming background to understand the concept and how to use. Please answer in plain English.
Thanks.

Offline hasu

  • Posts: 2986
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
TMK products:HHKB Alt  ⌨ConvertersAlps64FC660C AltFC980C Alt

Offline ideus

  • * Exalted Elder
  • Posts: 7624
  • Location: In the middle of nowhere.
  • Björkö.
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #328 on: Mon, 17 October 2016, 12:16:12 »
Thank you for the file, I am waiting for a couple of programmers to "upgrade" my GON to TMK and be able to implement the Space-Fn concept on it.

Offline vincentalpha

  • Posts: 24
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #329 on: Sun, 23 October 2016, 09:44:20 »
I spend sometime to create this QMK code to make my XD60 programable.
Can you please let me have your comment?
Thanks.

Quote
#include "s60-x.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LEGACY_KEYMAP(
ESC,    1,    2,   3,   4,   5,   6,   7,   8,    9,    0, MINS,  EQL,   NO, BSPC, \
TAB,    Q,    W,   E,   R,   T,   Y,   U,   I,    O,    P, LBRC, RBRC, DELETE,       \
CAPS,    A,    S,   D,   F,   G,   H,   J,   K,    L, SCLN, QUOT,   NO,  ENT,       \
LSFT,   NO,    Z,   X,   C,   V,   B,   N,   M, COMM,  DOT, SLSH,   UP,  FN2, \
LCTL, LGUI, LALT,                FN0,       MYCM,       FN1, LEFT,  DOWN, RIGHT),

LEGACY_KEYMAP(
GRV,   F1,   F2,   F3,   F4,   F5,   F6,   F7,   F8,   F9,  F10,  F11,  F12, TRNS,  INS, \
HOME, TRNS, UP,  ESC, TRNS, TRNS, TRNS, TRNS,  TRNS,  END, INS, HOME, PGUP,  BSLASH ,       \
END, LEFT, DOWN, RIGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, DELETE, END, PGDN, TRNS,       \
PGUP, TRNS, TRNS, TRNS, TRNS,  SPC, TRNS,  TRNS,  TRNS, TRNS, VOLUP, VOLDOWN, MUTE, PGUP, FN2, \
PGDN, PSCR, LALT,                    TRNS,         CALC,        FN1, HOME, PGDN, END),
};

const uint16_t PROGMEM fn_actions[] = {
  • = ACTION_LAYER_TAP_KEY(1, KC_SPACE),
  • [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV),    // tilde
    };

    LEGACY_KEYMAP(
    EQL,    1,    2,   3,   4,   5,   6,   7,   8,    9,    0, MINS,  EQL,   NO, BSPC, \
    PPLS ,    4,    5,   6,   TRNS,   TRNS,   TRNS,   4,   5,    6,    , LBRC, RBRC, DELETE,       \
    PMNS , 7,    8,   9,   0,   TRNS,   TRNS,TRNS,   1,   2,    3, SCLN, QUOT,   NO,  ENT,       \
    PAST ,NO,    0,   PDOT   ,   NO,NO,   NO,   NO,   0, COMM,  DOT, RSFT,   UP,  FN2, \
    PSLS ,LGUI,ENT, SPC,  CALC, FN1,    LEFT,  DOWN, RIGHT)


Offline vincentalpha

  • Posts: 24
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #330 on: Tue, 01 November 2016, 06:38:51 »
hey guys,
I am stuck with TMK software and the spacefn. Can you guys please help? Here's my layout and my screen short:
http://imgur.com/a/rZexl
Thanks.

Offline jcoffin1981

  • Posts: 706
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #331 on: Wed, 02 November 2016, 14:11:04 »
It's nice that arrows for navigation are right on the home key row.  However, holding down the Fn key with the pinky is just second nature.  To me this seems awkward, but it may not be once you have ridden the learning curve.

For some reason I only use my right thumb on the space bar, I just don't use my left.  In doing so you with the right thumb you are going to lose some dexterity in the other fingers which makes it awkward.
KPB V60 Gateron Browns and Leopold Keycaps.  Poker 3 with Gateron Browns and Poker keycaps.  Poker 3 with Cherry MX Browns, ABS keycaps and white LED's.

Leopold FC660M- my new favorite, right out of the box.

Offline ideus

  • * Exalted Elder
  • Posts: 7624
  • Location: In the middle of nowhere.
  • Björkö.
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #332 on: Wed, 02 November 2016, 17:47:09 »
It's nice that arrows for navigation are right on the home key row.  However, holding down the Fn key with the pinky is just second nature.  To me this seems awkward, but it may not be once you have ridden the learning curve.

For some reason I only use my right thumb on the space bar, I just don't use my left.  In doing so you with the right thumb you are going to lose some dexterity in the other fingers which makes it awkward.


Using the right thumb to activate the Fn plus ijkl for arrows is easier than use the Pinky, at least from my experience. The thumb is heavy and strong, so there is no problem to use it for Fn.

Offline JaydrVernanda

  • Posts: 24
  • Location: Inside your keyboard, stabalizing your spacebar.
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #333 on: Thu, 12 January 2017, 15:17:47 »
KeyRemap4MacBook/Karabiner doesn't work with macOS Sierra. Is there another way to set up SpaceFN on a MacBook with software alone?

Offline HeroXLazer

  • Posts: 70
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #334 on: Tue, 14 February 2017, 18:47:33 »
So, I'm confused, what are the hardware limitations to this, and how do I implement this into TMK? Can I use a Teensy 2.0?

Offline Tactile

  • Posts: 1245
  • Location: Portland, OR
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #335 on: Tue, 14 February 2017, 18:59:08 »
So, I'm confused, what are the hardware limitations to this, and how do I implement this into TMK? Can I use a Teensy 2.0?

There are no hardware limitations. You can program it onto a Teensy 2.0.

Offline HeroXLazer

  • Posts: 70
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #336 on: Wed, 15 February 2017, 22:02:49 »
Okay, what about an ATMEGA32U2?

Offline pixelpusher

  • Posts: 3209
  • Location: Tennessee - USA
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #337 on: Wed, 15 February 2017, 22:23:21 »
Just just freaking fn on capslock.  who needs capslock?  OH, and if you do, fn shift
« Last Edit: Wed, 15 February 2017, 22:31:30 by reececonrad »

Offline U47

  • Posts: 78
  • Location: YEG
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #338 on: Thu, 16 February 2017, 18:09:40 »
So, I'm confused, what are the hardware limitations to this, and how do I implement this into TMK? Can I use a Teensy 2.0?

Here's how I've implemented it using Hasu's HHKB controller, which uses TMK on an ATMega32U4. Pretty easy to convert it to any layout on any board or controller that uses TMK.

https://github.com/U47/tmk_keyboard/blob/a2e26010d341e7c54073ee7239389cc2d77ccf5d/keyboard/hhkb/keymap_u47.c

Offline U47

  • Posts: 78
  • Location: YEG
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #339 on: Sun, 20 August 2017, 19:28:39 »
Here's my implementation for Karabiner-Elements (for when I'm on my MBP's keyboard: https://github.com/U47/KE-complex_modifications/commit/55107588edd5e4017abb3a80524d379e5c707fa2

Pull req for inclusion directly in Karabiner-Elements: https://github.com/pqrs-org/KE-complex_modifications/pull/97

Still some timing issues with space (which I think are solved in TMK with oneshot.

Offline asgeirtj

  • Posts: 518
  • Location: Iceland
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #340 on: Wed, 27 September 2017, 16:39:48 »
Here's my implementation for Karabiner-Elements (for when I'm on my MBP's keyboard: https://github.com/U47/KE-complex_modifications/commit/55107588edd5e4017abb3a80524d379e5c707fa2

Pull req for inclusion directly in Karabiner-Elements: https://github.com/pqrs-org/KE-complex_modifications/pull/97

Still some timing issues with space (which I think are solved in TMK with oneshot.

I have Karabiner, how do I add this to it to get spacefn?  :)
Leopold FC900 w/ 67g Purple Zealios - Silver Duck Octagon w/ 62 Purple Zealios

Offline ideus

  • * Exalted Elder
  • Posts: 7624
  • Location: In the middle of nowhere.
  • Björkö.
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #341 on: Wed, 27 September 2017, 17:48:41 »
Just just freaking fn on capslock.  who needs capslock?  OH, and if you do, fn shift

That position is ideal for Control, that is why SpaceFN comes really handy. The best of both worlds.

Offline U47

  • Posts: 78
  • Location: YEG
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #342 on: Thu, 28 September 2017, 23:10:04 »
Here's my implementation for Karabiner-Elements (for when I'm on my MBP's keyboard: https://github.com/U47/KE-complex_modifications/commit/55107588edd5e4017abb3a80524d379e5c707fa2

Pull req for inclusion directly in Karabiner-Elements: https://github.com/pqrs-org/KE-complex_modifications/pull/97

Still some timing issues with space (which I think are solved in TMK with oneshot.

I have Karabiner, how do I add this to it to get spacefn?  :)

If you have Karabiner Elements, it's been merged upstream. You can find it by opening Preferences > Complex Modifications > Add Rule > Import more rules from the internet, and importing SpaceFN (it's under Emulation Modes).

Haven't had a chance to see about implementing something along the lines of TMK's oneshot modifiers, so I'm finding dropped spaces in out-of-order releasing of space. Minor annoyance, but annoying nonetheless.

Offline Nerarith

  • Posts: 1
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #343 on: Tue, 10 October 2017, 14:41:39 »
Are there a working Linux solution? I have tried Xcape, but I don't think it's good enough. I can't write faster than 30-40 WPM with Xcape.

Offline marsbars

  • Posts: 1
  • Location: Sydney
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #344 on: Wed, 11 October 2017, 07:38:38 »
SpaceFN is such a fantastic idea! Thanks a lot for that.

Offline Pro XKB

  • Posts: 25
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #345 on: Wed, 11 October 2017, 13:46:58 »
Quote
Are there a working Linux solution? I have tried Xcape, but I don't think it's good enough. I can't write faster than 30-40 WPM with Xcape.
I made a little XTEST/RECORD-based implementation a few years ago.  I never really used it, but I still have the source code around, if anyone wants to have it.

Offline U47

  • Posts: 78
  • Location: YEG
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #346 on: Thu, 12 October 2017, 00:15:50 »
Are there a working Linux solution? I have tried Xcape, but I don't think it's good enough. I can't write faster than 30-40 WPM with Xcape.

Not that I'm aware of. I looked into it a year or so ago but decided not to pursue it. I didn't want to devote time to making it work in X since I was using Wayland, didn't want to spend the effort hacking away at the USB HID driver level, and couldn't find out where it might fit within Wayland. Since all my desktop keyboards run TMK/QMK and I just implement it there, I just don't use my laptop keyboard all that much.

Offline helpme

  • Posts: 1
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #347 on: Fri, 10 November 2017, 14:29:04 »
Hi sorry I'm completely new at this so forgive if someone asked this already. Here is my novice question: How do you increase the time to activate SpaceFN? I figured it out a long time ago, but recently updated my os. The problem I have is that when I type fast it activates SpaceFN. I would like the time to activate SpaceFN when pressing the Space Bar to be a bit longer. I am using the new Karabiner-Elements. Thanks in advance.
« Last Edit: Fri, 10 November 2017, 17:21:20 by helpme »

Offline Ngt

  • * Elevated Elder
  • Posts: 2348
  • Location: Lyon, France
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #348 on: Tue, 14 November 2017, 14:43:55 »
Hi sorry I'm completely new at this so forgive if someone asked this already. Here is my novice question: How do you increase the time to activate SpaceFN? I figured it out a long time ago, but recently updated my os. The problem I have is that when I type fast it activates SpaceFN. I would like the time to activate SpaceFN when pressing the Space Bar to be a bit longer. I am using the new Karabiner-Elements. Thanks in advance.


I'm using SpaceFn on TMK as well. I'd be really interested in how to play with the activation time as well.

Silenced Novatouch w/ Hack'd by Geeks

Sold: Ducky Zero Shine (Brown) | Poker 2 (Blue) | HHKB 55g Type-S

Offline ljosa

  • Posts: 12
  • Location: Massachusetts
Re: The SpaceFN layout: trying to end keyboard inflation
« Reply #349 on: Thu, 28 December 2017, 18:48:22 »
I wanted to use SpaceFn with Linux, so I implemented it in the Xorg input driver. The code is on GitHub:
https://github.com/ljosa/xf86-input-evdev-spacefn

This web page describes the implementation and how to build, install, and configure it:
http://www.ljosa.com/~ljosa/software/spacefn-xorg/

This algorithm seems to work very well for me, but people type in different ways, so if you try it and find that it causes mistakes when you type, I'd love to hear from you. We may have to adjust the timeouts or revise the algorithm. A big thanks to spiceBar for coming up with the idea and describing it so eloquently.