aboutsummaryrefslogtreecommitdiffstats
path: root/src/screen.c
diff options
context:
space:
mode:
authoruser <user@clank>2026-08-15 16:27:50 +0200
committeruser <user@clank>2026-08-15 16:27:50 +0200
commit4f64774f910347ce8a27c3aecc7f1c2ac167301b (patch)
treef1c762382e86171de1b9212aa0c04a9e7b655a72 /src/screen.c
parentsl0ppty: render the config instead of shipping a copy of it (diff)
downloadslosh-4f64774f910347ce8a27c3aecc7f1c2ac167301b.tar.gz
slosh-4f64774f910347ce8a27c3aecc7f1c2ac167301b.tar.xz
slosh-4f64774f910347ce8a27c3aecc7f1c2ac167301b.zip
sl0ppty: watch the config directory even when it is not there yet
You were right. The watch is on the *directory* -- editors write a new file and rename it over the old one, so watching the file stops working the first time you save -- but a directory that does not exist cannot be watched at all. inotify_add_watch failed, the session gave up on watching for good, and writing a config later did nothing until a restart. Which is exactly the state a fresh machine is in, and exactly the state C-a e leaves you in. sl0ppty creates its own config directory at startup now, so there is always something to watch and a file appearing later is picked up. Tested from a home directory with no .config at all. Answering the other half of the question -- which settings actually reload -- turned up one that never worked at all: `shell`. main.c read $SHELL directly and nobody read the config's value, so the setting parsed, rendered in --dump-config, and did nothing. It is resolved per pane now, which fixes it and makes it live: edit it, save, and the next pane you open uses it. Everything else measured rather than assumed, and it is nearly everything: colours, geometry, the status bar and line, frame marks, shader chains and their states, and the keys including the leader itself. The two exceptions are about *when* a value is read, not reluctance -- `shell` at pane creation, and shader plugins which load on reload but never unload. Both are now written down where someone would look. One test needed rescuing from itself: it asserted the new leader worked by splitting, in panes that were by then too narrow to split. A test that fails on geometry while claiming to be about the prefix is worse than no test; it opens a tab instead.
Diffstat (limited to 'src/screen.c')
0 files changed, 0 insertions, 0 deletions