<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tmuxrdr.git/src/layout.rs, branch v0.9.3</title>
<subtitle>herdr but with less disrespect for the tmux community
</subtitle>
<id>https://git.soarez.net/sz/tmuxrdr.git/atom?h=v0.9.3</id>
<link rel='self' href='https://git.soarez.net/sz/tmuxrdr.git/atom?h=v0.9.3'/>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/'/>
<updated>2026-09-27T19:48:44+00:00</updated>
<entry>
<title>perf: avoid rebuilding bsp subtrees when splitting panes (#4670)</title>
<updated>2026-09-27T19:48:44+00:00</updated>
<author>
<name>Eric Yue</name>
<email>jiacheng.yue@foxmail.com</email>
</author>
<published>2026-09-27T19:48:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=6502492fbaa0ac0e5883208a20e3d99584319611'/>
<id>urn:sha1:6502492fbaa0ac0e5883208a20e3d99584319611</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(layout): return focus to the pane a split was opened from (#2266)</title>
<updated>2026-08-04T21:35:15+00:00</updated>
<author>
<name>Jon Kinney</name>
<email>jonkinney@gmail.com</email>
</author>
<published>2026-08-04T21:35:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=09cdd88d0aca35617eb05468c2421b0467656e4f'/>
<id>urn:sha1:09cdd88d0aca35617eb05468c2421b0467656e4f</id>
<content type='text'>
Closing a focused pane handed focus to the next pane in tree order.
For a pane opened beside another one -- a plugin split, a file viewer,
any transient tool pane -- that is rarely where the user was: it lands
on some unrelated neighbour rather than the pane that opened it.

Track the pane focus came from in TileLayout and prefer it when the
focused pane closes, falling back to tree order when there is no
history, when it points at the pane being closed, or when it points at
a pane that has since gone away. The history lives in the layout, so it
can only ever name a pane in the same tab.

A one-slot history is only sound if internal focus excursions never
write it, so the tree edits that used to bounce focus around now go
through target-taking primitives instead. close_pane removes a
background pane directly, so detach_pane and take_pane_for_move stop
focus-close-refocusing. split_pane splits a target without moving
focus: the runtime split path only focuses the new pane once the spawn
succeeds, which makes a failed split a pure rollback, and the targeted
and unfocused workspace split paths stop fabricating history.
insert_pane_near now takes the focus intent, so an unfocused pane move
leaves the target tab's history alone. The layout-level focused-split
helpers become test-only; production splits all flow through the
target-taking path.

Co-authored-by: Can Celik &lt;ogulcancelik@gmail.com&gt;</content>
</entry>
<entry>
<title>refactor: route tui mutations through runtime authority</title>
<updated>2026-06-29T15:09:25+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-06-29T15:09:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=1a4e94e57e181379e2ed42d63a49fbc56ed1dba4'/>
<id>urn:sha1:1a4e94e57e181379e2ed42d63a49fbc56ed1dba4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: add configurable pane gaps</title>
<updated>2026-06-21T11:03:59+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-06-21T11:02:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=4421c0febbb03a1a4264729a70fb7c440a3b9ca8'/>
<id>urn:sha1:4421c0febbb03a1a4264729a70fb7c440a3b9ca8</id>
<content type='text'>
refs #271
</content>
</entry>
<entry>
<title>feat: add pane move api and cli</title>
<updated>2026-06-12T22:59:24+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-06-12T22:59:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=d35c642ef36ee5ac2afe7c1b18ad5a717bc807d8'/>
<id>urn:sha1:d35c642ef36ee5ac2afe7c1b18ad5a717bc807d8</id>
<content type='text'>
refs #299
</content>
</entry>
<entry>
<title>fix: allow resize keys to shrink panes</title>
<updated>2026-06-11T23:13:29+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-06-11T23:13:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=6e7ce87bab6a5d4f277613658d0f19afb114128b'/>
<id>urn:sha1:6e7ce87bab6a5d4f277613658d0f19afb114128b</id>
<content type='text'>
refs #562
</content>
</entry>
<entry>
<title>feat: add pane navigation controls</title>
<updated>2026-06-05T19:06:02+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-06-05T18:59:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=556b16b2df7ea2c3e9b8ad13db4ad7370c1ad838'/>
<id>urn:sha1:556b16b2df7ea2c3e9b8ad13db4ad7370c1ad838</id>
<content type='text'>
refs #421

refs #330

related discussions:

https://github.com/ogulcancelik/herdr/discussions/422

https://github.com/ogulcancelik/herdr/discussions/438

https://github.com/ogulcancelik/herdr/discussions/442
</content>
</entry>
<entry>
<title>feat: add global last-pane navigation</title>
<updated>2026-05-26T11:50:13+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-05-26T11:48:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=57c880f0ebaa5011abc90f4e2fd4f84fc072ce35'/>
<id>urn:sha1:57c880f0ebaa5011abc90f4e2fd4f84fc072ce35</id>
<content type='text'>
refs #287
</content>
</entry>
<entry>
<title>fix: keep pane scrollbar gutter stable</title>
<updated>2026-05-06T17:59:57+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-05-06T17:59:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=b83737bddb369777412a2e05c3bdd3518f49d122'/>
<id>urn:sha1:b83737bddb369777412a2e05c3bdd3518f49d122</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: reserve pane width for visible scrollbars</title>
<updated>2026-03-31T13:03:34+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-03-31T13:03:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=f826fb78dcac89b4ba23e399ac5d141459c14ae9'/>
<id>urn:sha1:f826fb78dcac89b4ba23e399ac5d141459c14ae9</id>
<content type='text'>
</content>
</entry>
</feed>
