<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sl0ppij.git/default-plugins/compact-bar/src, branch main</title>
<subtitle>a sl0p.foo repository</subtitle>
<id>https://git.sl0p.foo/sl0ppij.git/atom/default-plugins/compact-bar/src?h=main</id>
<link rel='self' href='https://git.sl0p.foo/sl0ppij.git/atom/default-plugins/compact-bar/src?h=main'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/'/>
<updated>2026-07-27T16:24:37Z</updated>
<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>Layout string flag (#4956)</title>
<updated>2026-03-30T14:02:09Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-03-30T14:02:09Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=8ce05f0bbd58acbbca95f95ae14fdc4e866f7391'/>
<id>urn:sha1:8ce05f0bbd58acbbca95f95ae14fdc4e866f7391</id>
<content type='text'>
* allow sending a stringified layout with --layout-string

* add --tab-id to all the things

* fix windows tests

* add pr</content>
</entry>
<entry>
<title>fix: performance regression when switching tabs (#4918)</title>
<updated>2026-03-26T11:49:05Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-03-26T11:49:05Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=12ee607532d8894b7dff1f29143f073783bd4445'/>
<id>urn:sha1:12ee607532d8894b7dff1f29143f073783bd4445</id>
<content type='text'>
* remove pane render report

* only collect pane contents if pane should render

* add logs

* conditional keybinding serialization

* remove logs

* rustfmt

* fix tests

* tests

* rustfmt</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>Visual indication for terminal bells (#4781)</title>
<updated>2026-03-03T07:20:04Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-03-03T07:20:04Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=f618b0653abc918f9c34b5a4e8a06e4a11745b43'/>
<id>urn:sha1:f618b0653abc918f9c34b5a4e8a06e4a11745b43</id>
<content type='text'>
* initial implementation

* rustfmt

* allow disabling with config

* add missing kdl

* add pr

* fix tests</content>
</entry>
<entry>
<title>Allow toggling pane frames for specific panes (#4615)</title>
<updated>2026-01-20T09:13:37Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2026-01-20T09:13:37Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=03c86d09cf301db9a62427170f956a632812d67e'/>
<id>urn:sha1:03c86d09cf301db9a62427170f956a632812d67e</id>
<content type='text'>
* initial implementation

* add borderless to edit and plugin cli commands

* allow changing existing pane to borderless

* allow setting in layouts and keybindings

* get to work through the existing plugin api commands

* fix when applying (swap) layouts

* fix tests

* allow setting pane as bordered (borderful?) when changing its coordinates (eg. through the cli)

* allow explicitly setting a pane as bordered or borderless without toggling

* rustfmt

* adjust snapshots

* docs(changelog): add PR</content>
</entry>
<entry>
<title>Command Sequences, Blocking CLI Commands, New Plugin APIs (#4546)</title>
<updated>2025-12-11T13:25:42Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2025-12-11T13:25:42Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=693fa082def5ef0fe030cd7fdc3b1df051b35dc6'/>
<id>urn:sha1:693fa082def5ef0fe030cd7fdc3b1df051b35dc6</id>
<content type='text'>
* fix deadlocks

* initial logging to plugin implementation

* only log actions, include keys as Action::Write

* send actions to plugins as a new Event::UserAction

* add Action::Write metadata to plugin API

* run_action plugin command and permission

* block-until-exit/success/failure in the cli

* fix tests

* add NewBlockingPane to the plugin API

* run actions in a different thread so as not to block plugin execution

* add custom context to run_action flow

* fixes for floating pane z_index sorting and unknown protobuf events not crashing plugins

* always render the frame of pinned panes

* macros module

* add macros to config

* KDL macro parsing

* thread macros to the plugin thread

* get/update/delete macros from plugins

* add macros updated event

* add ability to rename macros

* fix deadlock

* fix z_indices with pinned unselectable panes bug

* allow plugins to opt-in to show_cursor

* change show_cursor(bool) to show_cursor(Option&lt;coordinates&gt;)

* test

* upgrade strum to allow proper enum iteration and case insensitive fromstr implementation for Actions

* better cwd tracking for exited command panes

* add initial panes to NewTab Action (no-op for now)

* add initial panes to cli newtab action

* make initial panes work

* add close_on_exit and start_suspended to the cli

* properly convert newtab action (potentially breaking for plugins)

* allow first pane in tab to block

* make distinction between opening panes with the last active client and the current pane in the cli

* improve some apis

* fix fixed size closing pane bug

* fix plugin cursor coordinates

* fix issues with launch-or-focus-plugin having to do with in-place and suppressed panes

* fix: set affected pane in replace pane

* allow setting a pane in place when it is suppressed and being focused (tests failing)

* fix tests

* some fixes for unsuppression of panes

* some fixes for completion_tx in new tab action

* allow replace/suppressed rather than replace/close only

* fixes for inserting suppressed panes without conflicts

* pane focus history and explicit unsuppress plugin api

* fix: prefer explicitly provided pane id in placement in actions that provide it

* fix floating pane coordinate change and z_index

* fix plugin cache dir to persist between sessions

* fix some stack focusing issues when adding panes without a client id

* make sure pinned panes are always above non-pinned floating panes

* allow plugins to copy to clipboard

* initial text styling additions implementations - buggy

* fix dimming issues

* remove extras, stay with just dim and unbold

* unbold and dim as indices

* allow ui components to render success/error colors

* allow plugins to send sigint/sigkill to processes, as well as receive their pid

* ui component fixes and send originating plugin context with run_action

* originating plugin for new tab too

* make plugn show pane command also expand stacked panes

* add sequence plugin

* remove macros

* remove snapshots

* add shortcut for sequence plugin

* fix plugin tests

* plugin tests for new apis

* update snapshots for sequence shortcut

* cleanups and formatting

* Event::CwdChanged

* moar cleanups

* remove some warnings

* remove mroe warnings

* remove dead code

* remove more dead code

* fix minor bugs in sequence plugin

* update sequence help and format codebase

* fix conditional blocking cli commands

* fix initial-command new-tab cli flag

* add client_ids to CwdChanged Event

* last fixes

* add pr</content>
</entry>
<entry>
<title>build(cargo): Update Rust toolchain to 1.90.0 (#4457)</title>
<updated>2025-10-06T17:11:34Z</updated>
<author>
<name>har7an</name>
<email>99636919+har7an@users.noreply.github.com</email>
</author>
<published>2025-10-06T17:11:34Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=80de7f462c80dab77f3535981a2428a3fc1ffc11'/>
<id>urn:sha1:80de7f462c80dab77f3535981a2428a3fc1ffc11</id>
<content type='text'>
* build(cargo): Define shared manifest properties workspace-wide

in order to allow workspace members to easily copy their values, rather
than copying the actual values manually between files. Prepare for a
future update of the Rust edition this way by defining the edition in
one central location.

* build(cargo): Share the license between all workspace members

and don't copy the actual license value manually between crates.

* build(cargo): Share the rust edition between workspace members

rather than manually defining the value per crate. There is no
apparent advantage in having different parts of the code use different
rust editions. It only makes the code inconsistent, which is not a goal
worth striving for.

* build(cargo): Share the crate version between workspace members

at least for those workspace members that are versioned in lockstep.

* refactor(session-manager): Migrate to Rust edition 2021

from edition 2018 in order to use a single unified Rust edition across
the entire workspace. Apparently the migration does not involve changes
to the actual code.

* refactor(plugin-manager): Migrate to Rust edition 2021

from edition 2018 in order to use a single unified Rust edition across
the entire workspace. Apparently the migration does not involve changes
to the actual code.

* build(zellij-utils): Remove the obsolete build script

which has contained nothing but comments for two years now. The initial
"workaround" has by now become the proper solution and the original
issue (see &lt;https://github.com/zellij-org/zellij/pull/2711&gt;) has never
been heard of since.

The real motivation for this change is the simple fact that this version
of prost-build pulled in a pretty old version of the `which` crate which
doesn't appear to build with Rust 1.89 (latest stable as of now).

* build(cargo): Update Rust toolchain to 1.89

which is the latest stable toolchain as of writing this and has support
for the 2024 Rust edition, unlike the previously used 1.84.

* fixup! build(zellij-utils): Remove the obsolete build script

* refactor: Make implicitly elided lifetimes explicit

in cases where a functions return type has an actual lifetime that
depends on a non `'static` argument.

* build(cargo): Update Rust toolchain to 1.90.0

which is the latest stable toolchain as of writing this. Compared to
1.89.0 this changes the default linker and should, hence, cut down
iteration times during development significantly.

* ci: Force configured rust toolchain version in release builds

for the tagged release assets. Previously the rust version was
unconditionally overwritten to be `stable` regardless of what
`rust-toolchain.toml` configured.

* docs(changelog): Add MR #4457

to list of unreleased changes.

* build: Read package version from workspace version value

since it no longer resides directly in the `package` object.</content>
</entry>
<entry>
<title>fix(ipc): make sessions compatible between versions (#4439)</title>
<updated>2025-09-24T10:56:56Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2025-09-24T10:56:56Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=533140831d825829afaf864d940c435056788d3e'/>
<id>urn:sha1:533140831d825829afaf864d940c435056788d3e</id>
<content type='text'>
* translate ipc tuple enum variants to struct enum variants

* initial client/server contract

* tests and missing types

* migrate web server and remove rmp_serde

* change socket folder

* fix crash on unknown messages

* fix client  logout on unknown message

* fix web client logout on unknown message

* rustfmt

* add comment and change  log level

* address compilation warnings

* style(fmt): rustfmt

* fix plugin system test assertions

* add pr</content>
</entry>
<entry>
<title>fix(compact-bar): make tooltip hints use opaque bg (#4356)</title>
<updated>2025-08-08T08:46:51Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2025-08-08T08:46:51Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=7fc8a0308c083400959e6bbe02e4260450b6c1bb'/>
<id>urn:sha1:7fc8a0308c083400959e6bbe02e4260450b6c1bb</id>
<content type='text'>
* fix(compact-bar): make tooltip hints use opaque bg

* docs(changelog): add PR</content>
</entry>
</feed>
