<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sl0ppij.git/zellij-utils/src/ipc.rs, branch main</title>
<subtitle>a sl0p.foo repository</subtitle>
<id>https://git.sl0p.foo/sl0ppij.git/atom/zellij-utils/src/ipc.rs?h=main</id>
<link rel='self' href='https://git.sl0p.foo/sl0ppij.git/atom/zellij-utils/src/ipc.rs?h=main'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/'/>
<updated>2026-07-31T17:19:49Z</updated>
<entry>
<title>Support the Kitty Image Protocol (#5428)</title>
<updated>2026-07-31T17:19:49Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-07-31T17:19:49Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=0e6e4404027a187f1399a43bf91bdbd13d9636e1'/>
<id>urn:sha1:0e6e4404027a187f1399a43bf91bdbd13d9636e1</id>
<content type='text'>
* initial implementation - kinda working

* tests and fixes

* fix bounds

* tests and compatibility fixes

* fix: cursor scroll, clears, deletes, key tolerance, and host id range

* fix: keep images alive across resize, relayout and history scroll

* anchor to lines, not pixels

* fix image/text alignments

* config to allow disabling

* fix pinned pane issue

* never let host graphics replies reach the keyboard parser

* fix nested session

* properly handle fullscreening a pane

* rustfmt

* cleanup of ignored test

* add pr</content>
</entry>
<entry>
<title>Nested session handling (#5417)</title>
<updated>2026-07-27T16:24:37Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-07-27T16:24:37Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=ea07e2d5b6bbc9ea6f9c765b0838b3e91156a58d'/>
<id>urn:sha1:ea07e2d5b6bbc9ea6f9c765b0838b3e91156a58d</id>
<content type='text'>
* fix: theme query and updated pixel dimensions

* add no-ui-fullscreen key/action/capability

* protocol core

* integration test harness

* fix integration tests

* fix flaky tests

* nested ui (dimming) and directional focus initial implementation

* integration tests for nested ui dimming and directional focus

* initial full screen nesteed implementation

* fix: keep hidden floating panes hidden across nested no-ui fullscreen

* fix integration tests

* no ui fullscreen integration tests

* hardening behavior/tests

* fix(nested): re-derive descend/dim on host tab switch and new-tab so clicking dimmed chrome ascends

* initial modal implementation

* initial ui improvements

* fix integration tests

* improve nested selection ui

* nested session modal refactoring and tests

* improve integration test speed somewhat

* some ui adjustments

* simplify full/auto nested session handling

* hints in compact-bar

* guest stdin leak fix

* allow floating panes to be fullscreen

* make nested session handling configurable

* protocol reannounce

* refactor: naming confusion

* improve ux somewhat

* rustfmt

* merge fixes

* improve integration test rate limiting (fix ci)

* add pr</content>
</entry>
<entry>
<title>Mobile layout (#5241)</title>
<updated>2026-06-10T14:50:55Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-06-10T14:50:55Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=b6a5ad0e5a93d9f584b3f7a0fc90f497a09cbdb0'/>
<id>urn:sha1:b6a5ad0e5a93d9f584b3f7a0fc90f497a09cbdb0</id>
<content type='text'>
* phase 2+3

* initial mobile plugin (phases 4 + 5 + 6)

* some bugfixes

* implement stage 7

* mobile interface improvements

* improve mobile pane/tab picker

* more ui improvements and fixes

* various mobile fixes

* some mobile fixes

* mobile keyboard triggering fix

* some cleanups

* initial plugin keyboard implementation

* improve keyboard hit zones

* improve keyboard

* pinch resize

* pinching fixes

* implement scrolling + panning

* initial keyboard resizing

* fix: mobile first render issues

* keyboard responsiveness

* fix some issues with the keyboard

* implement fit

* fix mobile scrolling

* add tilde cell to compact

* improve mobile keyboard

* fix starting mobile terminal font to natural keyboard size

* fix mobile resize blank screen flash

* shadow focus for mobile

* more keyboard fixes

* improve mobile status bar

* fix: render plugins to mobile clients

* allow opening new panes/tabs from the mobile plugin

* allow configuring

* fix dot slash

* improve mobile native soft keyboard interaction

* switch to native keyboard - initial implementation

* dirty hacks, but phone keyboard works now

* adjust keyboard help strip

* fix cursor in mobile

* fix keyboard and help line

* rename keyboard to modifier bar

* allow starting new session

* make clicking session name bring us to new session menu

* allow switching to desktop from the mobile ui

* mobile welcome screen initial implementation

* mobile welcome screen fixes

* various welcome screen fixes

* more mobile fixes

* moar mobile fixes

* mobile ui redesign

* fix: swallowed backspace bug

* switch session screen improvement

* touch up some interfaces

* refactor: move mobile state to own struct

* refactor: move fit resizing to the server

* remove dead flash code

* some cleanups

* refactor: clear fit on close

* refactor: improve fit api

* refactor: pane sync functions

* refactor: mouse

* refactor: break into modules

* some cleanups for the sessions screen

* fix scrolling and other stuff

* refactor: sessions screen

* refactor: panes screen

* refactor: new session screen

* refactor: menu screen

* refactor: render

* cleanups

* refactor: plugin structure

* remove unused welcome screen path

* Rename api

* refactor input.js

* cleanup useless comments

* fit/mobile refactoring

* take out the garbage

* remove more comments

* remove mobile flash on startup/attach

* fix: various mobile startup issues

* fix space bugs

* cleanup

* rustfmt

* fix windows build

* adjust modifier bar ui

* add pr</content>
</entry>
<entry>
<title>Welcome screen del fix (#5160)</title>
<updated>2026-05-12T10:20:23Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-05-12T10:20:23Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=fc6c5942a12d7314f606be390de9d05497f20bd3'/>
<id>urn:sha1:fc6c5942a12d7314f606be390de9d05497f20bd3</id>
<content type='text'>
* fix: session-manager delete

* rustfmt

* add pr</content>
</entry>
<entry>
<title>Support CSI2031 (dark/light theme switching) + remove STDIN cache to avoid stale color queries (#5105)</title>
<updated>2026-04-28T15:14:59Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-04-28T15:14:59Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=227142dd567ee72bcc137c116bc1ce2b818975e7'/>
<id>urn:sha1:227142dd567ee72bcc137c116bc1ce2b818975e7</id>
<content type='text'>
* initial phase 1 implementation

* various fies

* some fixes

* fix fragmented stdin cases

* some fixes

* renaming

* guard against old clients

* implement csi 2031

* allow toggling theme with actions

* rustfmt

* fix: finalize trailing characters in ansi parser as well

* add pr</content>
</entry>
<entry>
<title>Support OSC-99 desktop notifications (#4931)</title>
<updated>2026-03-28T08:19:54Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-03-28T08:19:54Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=608cc9905d0e53cda32f22b184578915b7f0f7b4'/>
<id>urn:sha1:608cc9905d0e53cda32f22b184578915b7f0f7b4</id>
<content type='text'>
* initial implementation

* tests

* fix: always report to zellij, only report to app if it wants a report

* rustfmt

* fix: always report capabilities to panes requesting them

* rustfmt

* add pr</content>
</entry>
<entry>
<title>Ansi dump support (#4848)</title>
<updated>2026-03-14T07:35:00Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-03-14T07:35:00Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=a1e224754759252778d8d3c30050e10bc9a82f84'/>
<id>urn:sha1:a1e224754759252778d8d3c30050e10bc9a82f84</id>
<content type='text'>
* add missing pane-id and tab-id arguments to all cli actions

* rustfmt

* dump-screen --ansi

* edit-scrollback --ansi

* add --ansi to subscribe

* add tests for ansi additions

* add ansi render report to plugins

* rustfmt

* fix e2e tests

* add pr</content>
</entry>
<entry>
<title>Allow subscribing to pane viewport updates (renders) from the CLI (#4814)</title>
<updated>2026-03-07T15:33:05Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-03-07T15:33:05Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=58cb2267fd7994ad9abb2df9792ec452a2deab45'/>
<id>urn:sha1:58cb2267fd7994ad9abb2df9792ec452a2deab45</id>
<content type='text'>
* initial subscribe implementation

* tests for subscribe

* update cli help

* rustfmt

* add pr</content>
</entry>
<entry>
<title>[Windows port PR5] refactor: upgrade interprocess to v2+ and abstract IPC for cross-platform support (#4740)</title>
<updated>2026-02-21T07:58:37Z</updated>
<author>
<name>divens</name>
<email>divens@users.noreply.github.com</email>
</author>
<published>2026-02-21T07:58:37Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=c5ba0dee80f817f140b22f62d386cc10988008e1'/>
<id>urn:sha1:c5ba0dee80f817f140b22f62d386cc10988008e1</id>
<content type='text'>
* refactor: upgrade interprocess to v2+ with cross-platform IPC support

Replace interprocess 1.2.1 with 2.2+ which provides cross-platform
local socket support (Unix domain sockets on Unix, named pipes on
Windows). Migrate all call sites from the flat v1 API to the v2
enum-dispatch API, and replace nix::unistd::dup fd-duplication with
interprocess::TryClone::try_clone().

* refactor: abstract FD duplication in IPC behind IpcStream trait

Decouple IPC structs from the concrete transport by introducing an
IpcStream trait that abstracts read/write/clone. Internal fields change
from BufWriter&lt;LocalSocketStream&gt; to BufWriter&lt;Box&lt;dyn IpcStream&gt;&gt;,
while the public new() constructors still accept LocalSocketStream so
no callers need updating.

* refactor: abstract session discovery behind is_ipc_socket() helper

Replace all 6 direct uses of std::os::unix::fs::FileTypeExt::is_socket()
with a cross-platform is_ipc_socket() helper in consts.rs. On Unix it
delegates to FileTypeExt::is_socket(); on non-Unix it returns false as a
placeholder for platform-specific session discovery added later.

---------

Co-authored-by: divens &lt;divens.dev@gmail.com&gt;</content>
</entry>
<entry>
<title>fix: do not attempt to reconnect from the web if kicked from the session (#4730)</title>
<updated>2026-02-19T16:25:46Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-02-19T16:25:46Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=007aa2930b5593b75ef503b97c1f83f17a3c21b2'/>
<id>urn:sha1:007aa2930b5593b75ef503b97c1f83f17a3c21b2</id>
<content type='text'>
* fix: do not attempt to reconnect from the web if kicked from the session

* fix: add missing protobuf definition

* add pr</content>
</entry>
</feed>
