<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tmuxrdr.git/src/config/keybinds.rs, 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-09-28T09:58:09+00:00</updated>
<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>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>refactor: render the shell in the client (#3487)</title>
<updated>2026-09-01T12:48:22+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-01T12:48:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=207be3c771d281baae6e5fa0fb74be9a056e97a2'/>
<id>urn:sha1:207be3c771d281baae6e5fa0fb74be9a056e97a2</id>
<content type='text'>
* feat: add opt-in client-rendered shell

* feat: add client-owned shell mouse controls

* feat: complete client-owned shell chrome

* feat: add client-owned shell settings and notifications

* feat: run client shell custom commands

* feat: render popup terminals in client shell

* feat: add client-owned scrollback and copy mode

* fix: preserve client worktree trust defaults

* feat: render startup diagnostics in client shell

* feat: render onboarding in client shell

* feat: render product announcements in client shell

* feat: render release notes in client shell

* feat: render mobile switcher in client shell

* feat: render kitty graphics in client shell

* fix: preserve client shell lifecycle coherence

* refactor: route client shell commands through endpoint connections

* refactor: make the client-rendered shell the default

* refactor: remove monolithic launch mode

* refactor: complete client-rendered shell cutover

* perf: retain client pane surface updates

* perf: scale retained pane surface updates

* perf: remove remote pane input latency

* test: make client shell checks platform-independent

* fix: prevent client timer starvation

* test: fix client shell platform gates

* test: accept retained surfaces in cross-area checks

* test: make client mode assertions platform-neutral

* fix: badge only outdated integrations</content>
</entry>
<entry>
<title>fix: disambiguate shifted punctuation keybinds (#2676)</title>
<updated>2026-08-11T20:08:34+00:00</updated>
<author>
<name>akbash</name>
<email>akbash@herdr.dev</email>
</author>
<published>2026-08-11T20:08:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=d004089dee8a51d2083fef1bf58ef66b2b166448'/>
<id>urn:sha1:d004089dee8a51d2083fef1bf58ef66b2b166448</id>
<content type='text'>
refs #2674

Co-authored-by: akbash-bot &lt;300245827+akbash-bot@users.noreply.github.com&gt;
Co-authored-by: Can Celik &lt;ogulcancelik@gmail.com&gt;</content>
</entry>
<entry>
<title>feat: add move tab keybind actions (#2561)</title>
<updated>2026-08-09T22:55:28+00:00</updated>
<author>
<name>David Heinemeier Hansson</name>
<email>david@hey.com</email>
</author>
<published>2026-08-09T22:55:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=f5067ed829ae5743499916b941b2310c50681f29'/>
<id>urn:sha1:f5067ed829ae5743499916b941b2310c50681f29</id>
<content type='text'>
* feat: add move tab keybind actions

Add optional keys.move_tab_previous/move_tab_next actions that reorder
the active tab one position, wrapping at either end. Reuses the
existing tab.move runtime path that mouse drag reordering already
drives.

* fix: exit navigate mode on single-tab move attempts</content>
</entry>
<entry>
<title>feat: add direct pane resize keybindings (#2558)</title>
<updated>2026-08-09T16:10:52+00:00</updated>
<author>
<name>David Heinemeier Hansson</name>
<email>david@hey.com</email>
</author>
<published>2026-08-09T16:10:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=4e31084495120674a0cf403a27d3d91c5efb34fe'/>
<id>urn:sha1:4e31084495120674a0cf403a27d3d91c5efb34fe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(input): preserve native key lifecycle across routing (#2142)</title>
<updated>2026-08-01T01:27:50+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-08-01T01:27:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=b76adc155d979705a353fd6dc87c702f9dfc6c22'/>
<id>urn:sha1:b76adc155d979705a353fd6dc87c702f9dfc6c22</id>
<content type='text'>
refs #2077

Co-authored-by: Jonathan Liebig &lt;jonathan.liebig@gmail.com&gt;</content>
</entry>
<entry>
<title>fix: support non-us shifted keybindings (#1876)</title>
<updated>2026-07-26T01:22:05+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-07-26T01:22:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=e536bd8bd99de975cb2d15bb384e6e35f88ef88e'/>
<id>urn:sha1:e536bd8bd99de975cb2d15bb384e6e35f88ef88e</id>
<content type='text'>
* fix: support non-us shifted keybindings

refs #1870

* docs: require current pull request base</content>
</entry>
<entry>
<title>feat: add floating popup panes</title>
<updated>2026-07-15T01:02:14+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-07-15T00:58:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=2c7c8beb079c5fd58a2e53efd2058df050ad9f55'/>
<id>urn:sha1:2c7c8beb079c5fd58a2e53efd2058df050ad9f55</id>
<content type='text'>
refs #1125
</content>
</entry>
<entry>
<title>fix: match shifted indexed number keybinds</title>
<updated>2026-07-08T19:31:40+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-07-08T19:31:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=b708f85e7d17d8109bef70ea3f595cea0ae40c46'/>
<id>urn:sha1:b708f85e7d17d8109bef70ea3f595cea0ae40c46</id>
<content type='text'>
refs #1184
</content>
</entry>
</feed>
