summaryrefslogtreecommitdiff
path: root/src/config.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.zig')
-rw-r--r--src/config.zig20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/config.zig b/src/config.zig
index 15a21866..8d186435 100644
--- a/src/config.zig
+++ b/src/config.zig
@@ -228,6 +228,26 @@ pub const leader_path = paths: {
table.set(.ThemeFile, null);
table.set(.DumpThemes, null);
}
+ // ...and the one native word that DOES earn a chord. Gated on `can_attach`
+ // and NOT on `hosted`, because this table may only name a builtin that
+ // exists: macOS is hosted but never polls `takeAttach`, so the two words
+ // below are compiled out there and naming them would be a compile error —
+ // which is the good outcome, and the reason the predicate exists.
+ if (pardes.can_attach) {
+ // In the `s` session group beside Dump and Restore. Bare Attach means
+ // "whichever detached session is there", which is the whole case worth
+ // a key; the named form is typed, like every other builtin that takes
+ // an operand. Safe to press by accident, uniquely among the three: it
+ // connects before it swaps, so nothing to attach to costs you a
+ // message row.
+ table.set(.Attach, "sa");
+ // ...and the way back out, which is where the group runs out of
+ // letters: `sd` has been Dump's since before there was anything to
+ // detach from, and Detach is not worth breaking that muscle memory
+ // for. A capital where the lowercase is taken is what this table
+ // already does one group over (`lS` beside `ls`, `lD` beside `ld`).
+ table.set(.Detach, "sD");
+ }
// The bare-metal memory words. Peek, Poke and Hexdump all take an ADDRESS,
// so none of them can have a leader path for the reason Theme and Msg have
// none: a key path names a builtin and can never carry an operand.