<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tmuxrdr.git/src/config, branch tmuxrdr</title>
<subtitle>herdr but with less disrespect for the tmux community
</subtitle>
<id>https://git.soarez.net/sz/tmuxrdr.git/atom?h=tmuxrdr</id>
<link rel='self' href='https://git.soarez.net/sz/tmuxrdr.git/atom?h=tmuxrdr'/>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/'/>
<updated>2026-10-05T12:45:17+00:00</updated>
<entry>
<title>tmuxrdr: tmux's status line as the tab row (ui.tab_style = "tmux")</title>
<updated>2026-10-05T12:45:17+00:00</updated>
<author>
<name>Igor Soarez</name>
<email>igor@soarez.org</email>
</author>
<published>2026-10-05T12:45:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=9a12d7fb0eae23c016d3e941a16765084fbf0eaa'/>
<id>urn:sha1:9a12d7fb0eae23c016d3e941a16765084fbf0eaa</id>
<content type='text'>
herdr draws each tab as a centred, padded block, and a named tab shows its
name without its number. With ui.tab_style = "tmux" the row is tmux 3.7c's
default status line: "[session] " cut to status-left-length 10, then each
window as "#I:#W#{?window_flags,#{window_flags}, }" -- current "*", last
"-", zoomed "Z" -- one space apart, plain text in the status line's colours.
Unnamed tabs are called after their active pane's directory, like
automatic-rename-format '#{b:pane_current_path}'.

The logic is in src/client/shell/tabs_tmux.rs; render_tab_bar keeps its
layout, scrolling, mouse hits and + button, with three one-line hooks for
width, text and style, and the session at the left. Each tab's active pane
and each workspace's previous tab are remembered by the client, so nothing
changes in the protocol and the client works against a stock herdr server.
The default, herdr, draws as before.
</content>
</entry>
<entry>
<title>tmuxrdr: own directories, to run beside stock herdr</title>
<updated>2026-10-05T09:02:45+00:00</updated>
<author>
<name>Igor Soarez</name>
<email>igor@soarez.org</email>
</author>
<published>2026-10-05T09:02:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=2312d3978b7d123968e834c0e0080ad2ff5559df'/>
<id>urn:sha1:2312d3978b7d123968e834c0e0080ad2ff5559df</id>
<content type='text'>
app_dir_name() names the directory every herdr path is built from --
config, sessions, sockets, logs, plugin registry, state. A release build of
tmuxrdr now uses "tmuxrdr", so ~/.config/tmuxrdr and ~/.local/state/tmuxrdr,
and shares nothing with a stock herdr on the same machine. Debug builds keep
"herdr-dev", which herdr's own tests expect.
</content>
</entry>
<entry>
<title>feat: support multiple prefix keys (#4653)</title>
<updated>2026-09-28T09:58:09+00:00</updated>
<author>
<name>JJ Liebig</name>
<email>jonathan.liebig@gmail.com</email>
</author>
<published>2026-09-28T09:58:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=7f89b11a11160874ba89f3be7c64b29960bd2df3'/>
<id>urn:sha1:7f89b11a11160874ba89f3be7c64b29960bd2df3</id>
<content type='text'>
* feat: support multiple prefix keys

keys.prefix accepts an array in addition to a single string so one
config can define several prefix keys. Every configured prefix enters
the same prefix mode, and the help panel lists them all.

Published keybinding profiles keep the primary prefix as a scalar and
carry the rest in an optional extra_prefixes field so older clients
keep working with the primary prefix.

* fix: reject an empty prefix list on reload

An explicitly empty keys.prefix array now stays empty through config
parsing so validation rejects it and a reload keeps the current
keybindings instead of silently falling back to ctrl+b.</content>
</entry>
<entry>
<title>fix: stagger restored agent startups (#4487)</title>
<updated>2026-09-22T13:23:31+00:00</updated>
<author>
<name>JJ Liebig</name>
<email>jonathan.liebig@gmail.com</email>
</author>
<published>2026-09-22T13:23:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=46a5091838de66c1be193990afc3ad9145e6b4f5'/>
<id>urn:sha1:46a5091838de66c1be193990afc3ad9145e6b4f5</id>
<content type='text'>
* fix: stagger restored agent startups

refs #4102

* fix: report startup delay changes requiring restart

refs #4102</content>
</entry>
<entry>
<title>feat: add configurable pane screen and scrollback clearing (#4383)</title>
<updated>2026-09-19T11:47:18+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-19T11:47:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=cc7c696cd0772e466da403eb4e3f00f4e8d8ae1e'/>
<id>urn:sha1:cc7c696cd0772e466da403eb4e3f00f4e8d8ae1e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add Letta Code detection and restore (#3107)</title>
<updated>2026-09-13T15:36:47+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-13T15:36:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=fc1cb77f0572948552377b23f7754a3016ac7dfa'/>
<id>urn:sha1:fc1cb77f0572948552377b23f7754a3016ac7dfa</id>
<content type='text'>
refs #3106

Co-authored-by: Cameron &lt;cameron@pfiffer.org&gt;</content>
</entry>
<entry>
<title>fix(config): keep utf8 bom from breaking config reads and writes (#3962)</title>
<updated>2026-09-11T16:36:06+00:00</updated>
<author>
<name>JJ Liebig</name>
<email>jonathan.liebig@gmail.com</email>
</author>
<published>2026-09-11T16:36:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=eba7758cedd1bd3a86c527b8a458075e8ef1efc2'/>
<id>urn:sha1:eba7758cedd1bd3a86c527b8a458075e8ef1efc2</id>
<content type='text'>
* fix(config): keep utf8 bom from breaking config reads and writes

refs #3678

* fix(config): only strip displaced boms when config is invalid

refs #3678

* fix(config): strip only boms the toml parser rejects

refs #3678</content>
</entry>
<entry>
<title>feat: support conditional sidebar token hiding (#3925)</title>
<updated>2026-09-10T21:55:19+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-10T21:55:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=58271459401fa461707c042f7f03867ddcfff3ea'/>
<id>urn:sha1:58271459401fa461707c042f7f03867ddcfff3ea</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: make ui.pane_borders a three-state auto/always/off mode (#3234)</title>
<updated>2026-09-07T12:04:54+00:00</updated>
<author>
<name>Rudolf S.</name>
<email>rud.schmidt@gmail.com</email>
</author>
<published>2026-09-07T12:04:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=482818130407691154d1635d4029b95d0e730104'/>
<id>urn:sha1:482818130407691154d1635d4029b95d0e730104</id>
<content type='text'>
* feat: make ui.pane_borders a three-state auto/always/off mode

Legacy booleans keep parsing (true = auto, false = off); "always" frames
a lone pane while pane_outer_borders is enabled.

* fix: align pane border reload test and documentation

---------

Co-authored-by: Rudolf Schmidt &lt;me@rudionrails.com&gt;
Co-authored-by: Jonathan Liebig &lt;jonathan.liebig@gmail.com&gt;</content>
</entry>
<entry>
<title>feat: add conditional styles for sidebar tokens (#3693)</title>
<updated>2026-09-06T20:44:15+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-06T20:44:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=c7b79294e28fe7c835691a25597fabf226ecfc20'/>
<id>urn:sha1:c7b79294e28fe7c835691a25597fabf226ecfc20</id>
<content type='text'>
</content>
</entry>
</feed>
