Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Home row mods M-S-], C-M-<Backspace> missing? #764

Open
brosasaki opened this issue Nov 4, 2023 · 0 comments
Open

Home row mods M-S-], C-M-<Backspace> missing? #764

brosasaki opened this issue Nov 4, 2023 · 0 comments

Comments

@brosasaki
Copy link

brosasaki commented Nov 4, 2023

After setting up home row modifiers keys via e.g. C/a (tap-hold-next-release 200 a lctl), KMonad works excellently!
Save for one issue: M-S-] (AKA Gui-Shift-], Command-}, Super-}, etc.), in particular when using the left home-row-mods, does not pass through, despite the normal right modifiers, left modifiers, and right home-row-mods working perfectly with it. I've checked sudo kmonad config.kbd -l debug and the log shows KMonad recognizing the meta and shift layers from the home row mods and all other keys except for ]; debug simply doesn't output anything at all upon press. I've looked my config up and down, but the odd, asymmetrical nature of the issue makes me suspect that it's a KMonad issue, and not a config or Firefox (which uses Command-Shift-] for moving right one tab) issue.
My system is a MacBook Pro 12,1 running macOS Monterey 12.6.8, and I am using the vosaica/kmonad branch and dext version 2.1.0 according to amiorin's guide. It appears that the fork has been merged, but I couldn't get kmonad/kmonad to work with a dext 2.1.0 from a Karabiner-Elements install (now removed) and the documentation doesn't reflect the merged branch; LMK if there is a way to use the features from vosaica/kmonad in the main branch, and I can try and make a PR for the documentation.
Here's my config, for good measure:

;; See keymap/tutorial.kbd for a more complete tutorial

#|
(deflayer template
  _    _    _    _    _    _    _    _    _    _    _    _    _   
  _    _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _              _              _    _    _    _    _   )

|#

;;;; Setup
(defcfg
  input (iokit-name "Apple Internal Keyboard / Trackpad")
  output (kext) ;; shouldn't this be called "dext" now?
  fallthrough true
  allow-cmd true)

(defsrc
  esc  f1   f2   f3   f4   f5   f6   f7   f8   f9   f10  f11  f12
  grv  1    2    3    4    5    6    7    8    9    0    -    =    bspc
  tab  q    w    e    r    t    y    u    i    o    p    [    ]    \
  caps a    s    d    f    g    h    j    k    l    ;    '    ret
  lsft z    x    c    v    b    n    m    ,    .    /    rsft up
  fn   lctl lalt lmet           spc            rmet ralt left down rght)

;;;; Configuration
;;;;; Base layer
(deflayer default
  _    brdn brup mctl lp   bldn blup prev pp   next mute vold volu
  _    _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _    _    _    _    _    _    _    _    _    _    _
  _    @C/a @A/s @M/d @S/f _    _    @S/j @M/k @A/l @C/; _    _
  _    _    _    _    _    _    _    _    _    _    _    _    _
  @Y   _    _    _              _              _    _    _    _    _   )

(defalias fn
  ;; Below, I use `around' to compose `layer-toggle' with `fn' (instead
  ;; of using `layer-toggle' directly) so that the `fn' keypress
  ;; actually gets emitted. This matters when using an application that
  ;; can use `fn' as a modifier (like Emacs).
  (around (layer-toggle yabaifocus)
	  (around (layer-toggle function)
		  fn)))

(deflayer function
  _    f1   f2   f3   f4   f5   f6   f7   f8   f9   f10  f11  f12
  _    _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _              _              _    _    _    _    _   )

;;;;; Home row mods
(defalias ;; home row aliases
  ;; KMonad calls gui-key “meta”; Emacs calls it “super”
  C/a (tap-hold-next-release 200 a lctl)
  A/s (tap-hold-next-release 200 s lalt)
  M/d (tap-hold-next-release 200 d lmet)
  S/f (tap-hold-next-release 200 f lsft)
  S/j (tap-hold-next-release 200 j rsft)
  M/k (tap-hold-next-release 200 k rmet)
  A/l (tap-hold-next-release 200 l lalt)
  C/; (tap-hold-next-release 200 ; rctl))

(deflayer homerowmods
  _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _    _    _    _    _    _    _    _    _    _    _
  _    @C/a @A/s @M/d @S/f _    _    @S/j @M/k @A/l @C/; _    _
  _    _    _    _    _    _    _    _    _    _    _    _    _
  _    _    _    _              _              _    _    _    _    _   )

...

Edit: C-M-Backspace (aka control-alt-backspace, control-option-backspace) also suffers from a similar issue. I've heard this is a low-level "restart" command in GNU/Linux; do the missing key combos have something to do with that?

@brosasaki brosasaki changed the title Home row mods meta-shift right square bracket missing? Home row mods M-S-], C-M-<Backspace> missing? Nov 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant