I use i3wm, and to map cap lock to escape, I run:

setxkbmap -option caps:swapescape

This works fine, but sometimes while hitting the F1 key, my pinky can accidentally hit the Escape key, which turns on CapsLock.

Gnome has a very nice way to do this, where Shift + Escape = CapsLock. Hitting Escape on its own will do nothing.

  • degen@midwest.social
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    22 hours ago

    I use keyd for software remapping now, and I like it a lot more than xkb’s esoteric options. It has functionality for layers like layer:C, where any “passthrough” input will have the defined modifier (or combo like C-S-M), but you can define whatever other bindings inside.

    Long story short, I’ve used it to remap caps, control, shift (with a custom shift layer for some symbols), and meta, with overloads, double tap/hold into layers, oneshots, timeouts, and all sorts of (surprisingly fluid) nonsense. It’s so much easier than wading through xkb options for me.

    To sidestep the question slightly less, I always got rid of capslock altogether instead of swapping. That still leaves true escape to be hit accidentally, but I think there should be an option to change escape too?

    Edit: what I always used was

    # make CapsLock behave like Ctrl:
    setxkbmap -option ctrl:nocaps
    
    # make short-pressed Ctrl behave like Escape:
    xcape -e 'Control_L=Escape'
    

    from here

  • floquant@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    0
    ·
    22 hours ago

    Not what you asked for, but you may be interested in getting a keyboard running QMK where you can define these kind of modifier overloading (and much much more) on the keyboard itself, so it’s “portable” and doesn’t require OS/DE settings

  • gomp@lemmy.ml
    link
    fedilink
    arrow-up
    0
    ·
    1 day ago

    I don’t use that so I’m mostly shooting in the dark, but… does caps:escape_shifted_capslock do what you want?

    (source: localectl list-x11-keymap-options | grep esc)

    • bdonvr@thelemmy.club
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      1 day ago

      Wait why do people want escape there???

      I like the backspace there like Colemak has. I can do Fn-Backspace(capslock) to activate Caps Lock but that’s something I added to my Keyboard separately.

        • ShittyBeatlesFCPres@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          23 hours ago

          I do that too. I almost never want to hit CAPS LOCK (and can type holding shift) but if you map it to CTRL or even something not on modern keyboards (like F15 or any number over 12, I guess), you can use it as a shortcut key.

          Personally, I use CAPS (remapped to CTRL) plus Tilde as my shortcut to show/dismiss a Quake-style terminal overlay window. That key combo actually can be made to work on Windows and macOS too so it’s basically cross-platform.

          I’m 99% sure macOS (with iTerm 2 setup for Quake-style) has a built-in system option to remap CAPS LOCK but it only allows a few keys. I forget the Windows method. I used to have to use Windows sometimes but it’s been awhile. I’ve definitely got it working with a third party terminal emulator and WSL2, though.

      • BaconIsAVeg@lemmy.ml
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 day ago

        I have a ZSA Voyager and my escape key is on my left thumb, beside the space key.

        For the life of me though I can’t imagine why anyone is still using CAPSLOCK, vbU.

      • promitheas@programming.dev
        link
        fedilink
        arrow-up
        0
        ·
        1 day ago

        I switched because of neovim, and got used to it. I was never the kind of guy to press caps to type capitals, always just kept shift pressed down with my pinky, so i basically never used the caps key anyway