| 98 |
98 |
|
scrollback_lines = 10000
|
| 99 |
99 |
|
|
| 100 |
100 |
|
# Which chords shop keeps for itself. Shop sees a key before the program
|
| 101 |
|
- |
# inside it does, so anything bound here never reaches the shell -- or tmux.
|
|
101 |
+ |
# inside it does, so anything bound here never reaches the shell, or tmux.
|
| 102 |
102 |
|
# Every default can be moved, and `none` gives the key back entirely.
|
| 103 |
103 |
|
[keys]
|
| 104 |
104 |
|
scroll_page_up = "shift+page_up"
|
| 146 |
146 |
|
|
| 147 |
147 |
|
The alt screen has none, by definition: a program that takes the whole window
|
| 148 |
148 |
|
repaints it, so a row leaving the top is overdraw rather than history. A wheel
|
| 149 |
|
- |
turn inside vim or htop does nothing for now — translating it into arrow keys
|
| 150 |
|
- |
is a separate question.
|
|
149 |
+ |
turn inside vim or htop does nothing.
|
| 151 |
150 |
|
|
| 152 |
151 |
|
A resize rewraps scrollback. Each history row records whether it ran off the
|
| 153 |
152 |
|
right edge, so a run of those rows plus the one ending it is a logical line the
|
| 205 |
204 |
|
the first build in a fresh checkout needs network and the rest do not. A font in
|
| 206 |
205 |
|
the repo would be a second source of truth that nothing rebuilds.
|
| 207 |
206 |
|
|
| 208 |
|
- |
It replaced a nerd-patched IosevkaTerm, 13 MB committed in `assets/` against 70
|
| 209 |
|
- |
KB cut here. What that costs is braille and the legacy-computing sextants, which
|
| 210 |
|
- |
now come from fallback; nothing shop draws for itself emits either. What it buys
|
| 211 |
|
- |
is that the marks are the same drawings the rest of the house uses, rather than
|
| 212 |
|
- |
whichever face the OS happened to order first.
|
|
207 |
+ |
Braille and the legacy-computing sextants are not in it and come from fallback;
|
|
208 |
+ |
nothing shop draws for itself emits either.
|
| 213 |
209 |
|
|
| 214 |
210 |
|
The face is variable, `wght` 200 to 800 in one file, and **its own default is the
|
| 215 |
211 |
|
light end**. Shop names the weight it draws at (`shop_font::WEIGHT`) rather than
|
| 228 |
224 |
|
row of mixed scripts wander.
|
| 229 |
225 |
|
|
| 230 |
226 |
|
Ligatures are a different thing and shop does not do them. `>=` drawn as one
|
| 231 |
|
- |
connected glyph is the font's business, not the buffer's — the two characters
|
| 232 |
|
- |
still occupy two cells — and a ligature makes a cursor sitting between them land
|
|
227 |
+ |
connected glyph is the font's business, not the buffer's: the two characters
|
|
228 |
+ |
still occupy two cells, and a ligature makes a cursor sitting between them land
|
| 233 |
229 |
|
visually inside a glyph. Column-accurate editing wins that trade.
|
| 234 |
230 |
|
|
| 235 |
231 |
|
Colour emoji are not drawn either, and that is a decision rather than a gap.
|
| 236 |
232 |
|
Drawing them means a second atlas in colour, glyphs that carry their own colour
|
| 237 |
233 |
|
instead of taking the cell's, and bitmap strikes at a fixed size that is never
|
| 238 |
|
- |
the cell's — a colour pipeline running the whole length of the renderer to put
|
|
234 |
+ |
the cell's: a colour pipeline running the whole length of the renderer to put
|
| 239 |
235 |
|
pictures in a terminal. An emoji still takes the columns it is owed, so text
|
| 240 |
236 |
|
around one stays where it belongs and a line of somebody else's output is read
|
| 241 |
237 |
|
exactly as it was written. The cell is simply empty.
|
| 251 |
247 |
|
selection; both are actions like any other and ship unbound, because every
|
| 252 |
248 |
|
default binding is a key the program inside shop never sees.
|
| 253 |
249 |
|
|
| 254 |
|
- |
What opens it is the `[emit] runner`. Shop is the bottom of the stack -- it *is*
|
| 255 |
|
- |
the thing that runs programs -- so it cannot shell out without answering "and
|
|
250 |
+ |
What opens it is the `[emit] runner`. Shop is the bottom of the stack: it *is*
|
|
251 |
+ |
the thing that runs programs, so it cannot shell out without answering "and
|
| 256 |
252 |
|
where does the output appear?", and that answer is yours. One key, and shop
|
| 257 |
253 |
|
carries no code for any particular multiplexer. Shop does not read `$TMUX` and
|
| 258 |
254 |
|
quietly behave differently; a window that opens somewhere surprising should be
|
| 261 |
257 |
|
The region goes to a file and `{file}` is substituted into each argument, rather
|
| 262 |
258 |
|
than being piped: stdin does not survive `tmux display-popup` or a detached
|
| 263 |
259 |
|
window, so a pipe would work for exactly one runner. The file lands in
|
| 264 |
|
- |
`$XDG_RUNTIME_DIR` and is not deleted -- an editor can outlive the terminal that
|
| 265 |
|
- |
opened it.
|
|
260 |
+ |
`$XDG_RUNTIME_DIR` and is not deleted, because an editor can outlive the
|
|
261 |
+ |
terminal that opened it.
|
| 266 |
262 |
|
|
| 267 |
263 |
|
It only goes one way. Kakoune's `|` replaces the selection with the program's
|
| 268 |
264 |
|
output; shop's primitive is `>`. The scrollback is a transcript of something
|