You signed in w
8000
ith another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Straight answer: I'm not building a plugin runtime, but your use case is shipped as a first-class feature in 0.44.0.
The reasoning on plugins: the thing you'd want a plugin for sits directly in the terminal input path. Third-party code there means an API I have to keep stable across releases, a sandbox story, and a new way for a bad plugin to eat your keystrokes or your PTY. That's a large permanent surface for what is, in your case, a one-line preference. So instead of a plugin API, wmux now lets you change what a key sends.
Ctrl+K now transmits 0x0B followed by the Delete sequence (ESC [ 3 ~), in that order, on every press — literally "Ctrl+K, then DEL once". Run wmux reload-config and it's live; no restart.
The general form is "chord" = "sequence":
[keys]
"ctrl+alt+r" = "clear<CR>"# text outside <> is typed literally"alt+left" = "<Home>""ctrl+shift+q" = ""# empty value swallows the key
Chords accept either ctrl+shift+k or the vim spelling <C-S-k>. Sequence tokens cover <CR> <Esc> <Tab> <S-Tab> <BS> <Delete> <Ins> <Home> <End> <PgUp> <PgDn>, arrows, <F1>–<F12>, <C-x>, <A-x>, <Space>, and <lt> for a literal <. Full table: docs/config.md.
Worth knowing:
Remaps apply inside terminal panes and take priority over wmux's own shortcuts there — remap ctrl+t and Ctrl+T stops opening a tab while a terminal has focus. That's deliberate; it's the point of remapping.
Modifiers match exactly, so a ctrl+k remap won't fire on Ctrl+Shift+K.
A binding that doesn't parse is reported by wmux config show and skipped — one typo doesn't cost you the rest of your bindings.
Deleting the entry and running reload-config unbinds it; the file is the whole state.
Carrying over the conclusion from #112: wmux transmits the bytes, the program decides what they mean. <C-k><Delete> makes wmux send both keys — whether your shell or coding tool then joins the lines is still that program's line editor. In an editor that forward-deletes across a newline (which is the behaviour you described wanting), that's exactly the pull-up you were after.
If what you actually want from plugins goes beyond key remaps, open an issue describing the behaviour rather than the mechanism — the same way this one turned out to be a config line rather than a plugin host. Cross-posted on #112 so anyone who lands there finds the config line.
<
9D7B
div data-testid="timeline-divider-connector" class="Box_1__gSBsk4">
Ok first of all thanks for adding this - much appreciated!
Second - the funny thing is when i used wave with the same coding tool i got it out of the box (CTRL+k delete entireline and swallow it so i can hammer CTRL+K to delete line by line. So imho its not the coding tool that has to interpret this.
btw CTRL-K is now working how i was used to it and i love it!
Glad it landed. Closing on that.
On the Wave point — fair criticism, and I won't guess at their internals. What I'll concede is the part that doesn't depend on how they did it: you got the behaviour without configuring anything, and here you had to write a config line for something common enough that a default would have served you better. That's a defaults question, not an architecture one, and it's a reasonable thing to hold against the first cut.
Leaving the plugin-runtime answer as-is: still not building one. But the pattern this issue established holds — describe the behaviour you want and it may turn out to be a config line rather than a plugin API. Reopen or file fresh if a remap ever swallows a key it shouldn't.
Activity
fix(session): keep browser state in the update backup; feat(config): …
amirlehmam commentedon Aug 5, 2026
Straight answer: I'm not building a plugin runtime, but your use case is shipped as a first-class feature in 0.44.0.
The reasoning on plugins: the thing you'd want a plugin for sits directly in the terminal input path. Third-party code there means an API I have to keep stable across releases, a sandbox story, and a new way for a bad plugin to eat your keystrokes or your PTY. That's a large permanent surface for what is, in your case, a one-line preference. So instead of a plugin API, wmux now lets you change what a key sends.
What you asked for:
Ctrl+K now transmits
0x0Bfollowed by the Delete sequence (ESC [ 3 ~), in that order, on every press — literally "Ctrl+K, then DEL once". Runwmux reload-configand it's live; no restart.The general form is
"chord" = "sequence":Chords accept either
ctrl+shift+kor the vim spelling<C-S-k>. Sequence tokens cover<CR> <Esc> <Tab> <S-Tab> <BS> <Delete> <Ins> <Home> <End> <PgUp> <PgDn>, arrows,<F1>–<F12>,<C-x>,<A-x>,<Space>, and<lt>for a literal<. Full table: docs/config.md.Worth knowing:
ctrl+tand Ctrl+T stops opening a tab while a terminal has focus. That's deliberate; it's the point of remapping.ctrl+kremap won't fire on Ctrl+Shift+K.wmux config showand skipped — one typo doesn't cost you the rest of your bindings.reload-configunbinds it; the file is the whole state.Carrying over the conclusion from #112: wmux transmits the bytes, the program decides what they mean.
<C-k><Delete>makes wmux send both keys — whether your shell or coding tool then joins the lines is still that program's line editor. In an editor that forward-deletes across a newline (which is the behaviour you described wanting), that's exactly the pull-up you were after.If what you actually want from plugins goes beyond key remaps, open an issue describing the behaviour rather than the mechanism — the same way this one turned out to be a config line rather than a plugin host. Cross-posted on #112 so anyone who lands there finds the config line.
arnonuem commentedon Aug 5, 2026
Ok first of all thanks for adding this - much appreciated!
Second - the funny thing is when i used wave with the same coding tool i got it out of the box (CTRL+k delete entireline and swallow it so i can hammer CTRL+K to delete line by line. So imho its not the coding tool that has to interpret this.
arnonuem commentedon Aug 5, 2026
btw CTRL-K is now working how i was used to it and i love it!
amirlehmam commentedon Aug 6, 2026
Glad it landed. Closing on that.
On the Wave point — fair criticism, and I won't guess at their internals. What I'll concede is the part that doesn't depend on how they did it: you got the behaviour without configuring anything, and here you had to write a config line for something common enough that a default would have served you better. That's a defaults question, not an architecture one, and it's a reasonable thing to hold against the first cut.
Leaving the plugin-runtime answer as-is: still not building one. But the pattern this issue established holds — describe the behaviour you want and it may turn out to be a config line rather than a plugin API. Reopen or file fresh if a remap ever swallows a key it shouldn't.
merge(upstream): bring amirlehmam/wmux master (0.46.0) into oh-my-pi