News for hackers. Stuff that matters.
Re:Modeless Vim by sodapopcan on Tuesday January 16, 2024 @09:24AM (#39013530)
Best use for capslock in my book is tap for escape, hold for ctrl.
Re:Modeless Vim by ta988 on Tuesday January 16, 2024 @10:55AM (#39014759)
Where do you map it that way?
Re:Modeless Vim by sodapopcan on Tuesday January 16, 2024 @11:27AM (#39015151)
As my sibling commenter said, use Karabiner Elements if you are on macos. Though it's not an out-of-the-box thing.

Add this config to ~/.config/karabiner/assets/complex_modifications/custom-capslock.json

    {
      "title": "Change caps_lock to Esc and Control",
      "rules": [
        {
          "description": "Post Esc if Caps is tapped, Control if held.",
          "manipulators": [
            {
              "type": "basic",
              "from": {
                "key_code": "left_control",
                "modifiers": {
                  "optional": [
                    "any"
                  ]
                }
              },
              "to": [
                {
                  "key_code": "left_control",
                  "lazy": true
                }
              ],
              "to_if_alone": [
                {
                  "key_code": "escape"
                }
              ]
            }
          ]
        }
      ]
    }
and then in the GUI enable it in the Complex Modifications tab. Last you need to map "capslock" to "left_control" in the Simple Modifications tab.
Re:Modeless Vim by linsomniac on Tuesday January 16, 2024 @12:56PM (#39016372)
Ooh! Can I do this with "z" and "/" (letter if tapped, control if held)?
Re:Modeless Vim by sodapopcan on Tuesday January 16, 2024 @01:09PM (#39016514)
My GUESS is that it would be something like this:

    {
      "title": "Hold z or / for control",
      "rules": [
        {
          "description": "Hold z for control",
          "manipulators": [
            {
              "type": "basic",
              "from": {
                "key_code": "z",
                "modifiers": {
                  "optional": [
                    "any"
                  ]
                }
              },
              "to_if_alone": [
                {
                  "key_code": "left_control"
                }
              ]
            }
          ]
        },
        {
          "description": "Hold / for control",
          "manipulators": [
            {
              "type": "basic",
              "from": {
                "key_code": "/",
                "modifiers": {
                  "optional": [
                    "any"
                  ]
                }
              },
              "to_if_alone": [
                {
                  "key_code": "right_control"
                }
              ]
            }
          ]
        }
      ]
    }
Re:Modeless Vim by sodapopcan on Tuesday January 16, 2024 @01:06PM (#39016486)
Yep! You can do whatever you want with complex modifications. The only tricky part is figuring it out. It shouldn't be TOO different than the above if you replace the appropriate values.
Re:Modeless Vim by ink_13 on Tuesday January 16, 2024 @11:16AM (#39015047)
Karabiner-Elements will do this for you on Mac.

I consider it indispensable.

Re:Modeless Vim by wonger_ on Tuesday January 16, 2024 @01:58PM (#39017285)
I use this executable for Windows: https://github.com/ililim/dual-key-remap
Re:Modeless Vim by svilen_dobrev on Tuesday January 16, 2024 @02:30PM (#39017841)
as said here: https://superuser.com/questions/1716264/xmodmap-holding-a-ke... using this https://github.com/alols/xcape :

  $ setxkbmap -option caps:ctrl_modifier
  $ xcape  -e 'Caps_Lock=Escape'
if that need be run multiple times (i.e. in bashrc), add a guard:

  pgrep xcape >/dev/null || (
   setxkbmap -option caps:ctrl_modifier
   xcape  -e 'Caps_Lock=Escape'
  )
Re:Modeless Vim by joenot443 on Tuesday January 16, 2024 @02:15PM (#39017598)
That sounds awesome! I'm going to look into that.