Hyperkey question

I never actually needed the caps lock key, so I use it to change input language (Latin ←→ Greek) and Karabiner profile (Latin ←→ Greek) using a Keyboard Maestro macro. For a hyper key of sorts, I use the right option key in the MBP keyboard or the application key in the CloudNine keyboard (when I am sitting in my desk).

Thanks everyone! I figured most hyperkeyers just didn’t miss caps lock. But good to see there are some alternatives to abandoning it altogether.

1 Like

Back to my original question: Has anybody managed to make Fn a modifier?

It may be possible, because this Simple Modifications with Karabiner works as stated—make fn as (left) ⌘:

but as far as I search, there is currently no complex modifications provided by community to make fn as hyper. I also not familiar on how to create one. So, maybe try to make your own complex modification, or ask the community to provide one (or give tutorial on how to create one)

1 Like

Hey, I’ve just found a way!

  1. Go here: Karabiner Complex Rules Generator
  2. Copy the snippet attached below
  3. Paste to the text field in the website below the button that says “INSTALL!”
  4. Click your mouse outside the aforementioned text field. So it will generate the rules based on the one you pasted
  5. You can now press “INSTALL!” button to import the modification to Karabiner Elements and enable it
{
  "title": "Function key to Hyper/Escape",
  "rules": [
    {
      "description": "Function to Hyper/Escape",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "fn",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_shift",
              "modifiers": [
                "right_command",
                "right_control",
                "right_option"
              ]
            }
          ],
          "to_if_alone": [
            {
              "key_code": "escape"
            }
          ]
        }
      ]
    }
  ]
}

small print: snippet is modified from here.

2 Likes

[EDIT:]

Managed to get it working – seems it was correctly set-up initially, but for whatever reason, took a few hours before it began working as expected… :man_shrugging:t3:
I just followed the BTT guide, as below.

Regardless, many thanks!

[/Edit]

Do you mind sharing a screen-shot of how you set that up – specifically the alternative Caps Lock state?

I’ve worked through the BTT guide, and even though I have set up a “Named Trigger” that is supposed to trigger Caps Lock when I hit the hyper without any other keys, it’s not working as of yet… Maybe a reboot will help, but I’ve too many things open currently to try that.

1 Like

I do it with BetterTouchTool and Caps Lock works as normal when not pressed together with other buttons.

1 Like

Not using the Caps Lock key is something only non accentuated languages can do. I literally need it all the time for accented caps in French. I suspect many other languages face the same issue. The hyper key is a very English-centric trick.

… unless it can be mapped in conjunction to a shortcut :smiley:

1 Like

Can you explain what the issue is?
My only use of accented capitals is to write someone’s name, Éclair, and I hold the shift and E key, then tap 2 to get the accent. Which would be terrible if it was my native language.

I don’t have a non-English keyboard (well, I use the combined English/Thai one so caps is not an issue), so I’m curious.

2 Likes

To get accented capitals, let’s say É, the easier way on Mac is to turn caps lock on then press 2 (which is also é) and turn it off again. Same goes for the innumerable French diacritics (È, À, Ç and so on). That means I’m using the caps lock key hundreds of times per day (and I yell at my HomePod whenever a tech podcaster says, talking about the caps lock key, « bah, it has no use ». Guys, there’s a world out there beyond English).

Honestly, it’s not great, but the Mac is still vastly superior to Windows in that regard where you don’t have such an easy way to do so. (I used to learn the character codes to achieve the same results: alt + 201, alt + 199… also for «, » and so on which are not easily accessible either on the Windows French layout. Madness.)

Sorry in advance if this sounds ignorant, genuinely curious.

I watched this video and it uses alt key, followed by specific accent key then the character. I tested and it works êéè. I tried disabling my capslock to hyper modifier and try using capslock instead of alt and it does not work. I also tried changing my keyboard type to ISO (European), but capslock still not work as accent trigger.

How can you make capslock to trigger accent?

No worries, I get that’s it’s not that intuitive especially with an unfamiliar language :slightly_smiling_face: I don’t trigger the accent, I type the accented letter directly. The French layout has those directly accessible on secondary keys (é, è, à, ç - circonflex accents and trémas, ê / ë, are yet different cases). Switching to caps lock, then typing that exact key, gives you the accented letter directly, which is why it’s so important to keep it accessible and avoid binding it to anything. :slightly_smiling_face:

On that matter, Markdown is yet another thing that betrays its English origins. Asterisks and brackets are not as straightforward to type on other keyboard layouts and if you see foreign speakers who prefer to type cmd-B for bold, for instance, it might be that it’s faster to type on their layout than double asterisks. I do not think John Gruber ever took that into account when introducing Markdown.

2 Likes

It’s like the touchbar designers who at first argued people don’t need an escape key. :flushed: Some of us don’t go five minutes at a keyboard without needing to escape out of something.

1 Like

Not sure why this would be the case. Example: É or À are simply a matter of hitting the accent and then ⇧E or ⇧A.

I write in languages that use diacritical marks all the time (Portuguese, Greek, German, Spanish and so on) and I never really needed the caps lock key to do so :slight_smile:

Now that you said about layout, I just realized that French keyboard uses AZERTY by default, and number row will be <&é"'(§è!çà)- if pressed without Shift⇧ key. Thanks for the explanation!

If that’s the case and you still want to try Hyper key, you might be able to make Caps Lock as Hyper if hold, and still act as Caps Lock if pressed individually

EDIT: here is the Karabiner Elements snippet if you want to try Hyper Key when pressed with other key, otherwise act as Caps Lock. I tested with AZERTY layout and it works. Use the steps I wrote above.

Snippet for Karabiner Elements, Caps Lock to Caps Lock/Hyper
{
  "title": "Caps Lock key to Caps Lock/Hyper",
  "rules": [
    {
      "description": "Caps Lock to Caps Lock/Hyper",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "caps_lock",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_shift",
              "modifiers": [
                "right_command",
                "right_control",
                "right_option"
              ]
            }
          ],
          "to_if_alone": [
            {
              "key_code": "caps_lock"
            }
          ]
        }
      ]
    }
  ]
}

That’s what I thought originally.
It might be the case of QWERTY-AZERTY layout, or KillerWhale have used that specific layout for years. It’s quite hard and unproductive to learn new layout, also personal preferences matter.

I uses Vim to make a living and I often press Escape⎋ or jk after I write anywhere else :rofl: Old habits die hard

1 Like

Yessss well, you would need the accent there. Indeed, the grave accent exists (which is another pain in Markdown for code blocks, in passing), but all the accents that we need do not exist on the French Mac keyboard layout. I also need É and Ç, and there are no accessible acute accents (in a reasonable manner, at least – shift-option-& is not a great option) nor cedillas (at all) there. So it’s easier to just use the caps lock and hit the key you would normally hit while writing, since everything cannot be composed readily. (It’s funny that I can write ñ more easily on my French layout, which does not exist in the language, than Ç which I use all the time, for which there’s no option.)

@ybbond , you’re the best! Thanks a bunch for that script. That could be a real great help. (Indeed, the AZERTY keyboard does not use numbers on the top row – another pain with keyboard shortcuts :sweat_smile:)
You rock! And thank you so much for putting the time and effort to understand this (rather stupid) problem. :+1:

1 Like

You’re welcome :smiley:
To me, it’s not stupid at all. Just one of interesting cases where Computer Science and Linguistic world collide.

A follow up information, if you haven’t use Karabiner Elements but already using BetterTouchTool, you can prevent installing more apps and use BTT’s hyper key modification instead. See the official docs on folivora.ai that already mentioned above.

1 Like

Thank you again! I have used Karabiner Elements but I find it messes up my MX Keys with Xcode, so I’ll probably go the BTT route, that’s great to have that alternative.

1 Like

Oh, I see. A suggestion then: try the Portuguese or the USA International - PC! You will have everything in the exact same place (I am using a mac with a standard american keyboard) and all the accents will work as they should (including the ç which you can input by typing ' + c).

Using this keyboard layout I can type in pt, eng, fr, es without ever switching layouts (I only switch when I need to type in Greek).

I think it is worth a try :wink:

1 Like

Huh. (Color me intrigued! :smiley:)
Thanks for the tip, indeed, that’s definitely worth digging into! Especially as I type in English a lot as well, could make my life a lot easier!

1 Like