feat: make zellij persist

This commit is contained in:
Jet 2026-04-05 20:32:08 -07:00
parent 3ed33ed2cb
commit cf18c87bff
No known key found for this signature in database

View file

@ -20,8 +20,8 @@ let
kittyZellijStartup = pkgs.makeDesktopItem { kittyZellijStartup = pkgs.makeDesktopItem {
name = "kitty-zellij-startup"; name = "kitty-zellij-startup";
desktopName = "Kitty Zellij Startup"; desktopName = "Kitty Zellij Startup";
comment = "Open Kitty, pick a directory, and launch Zellij"; comment = "Open Kitty and attach to the main Zellij session";
exec = "${pkgs.kitty}/bin/kitty --start-as=fullscreen ${zellijNewTabZoxide}/bin/zellij-new-tab-zoxide"; exec = "${pkgs.kitty}/bin/kitty --start-as=fullscreen ${zellijPersistentSession}/bin/zellij-persistent-session";
terminal = false; terminal = false;
categories = [ categories = [
"TerminalEmulator" "TerminalEmulator"
@ -224,6 +224,15 @@ let
exec ${pkgs.zellij}/bin/zellij -l "$layout_file" exec ${pkgs.zellij}/bin/zellij -l "$layout_file"
''; '';
}; };
zellijPersistentSession = pkgs.writeShellApplication {
name = "zellij-persistent-session";
runtimeInputs = [ pkgs.zellij ];
text = ''
set -euo pipefail
exec ${pkgs.zellij}/bin/zellij attach --create main --force-run-commands
'';
};
zellijSyncTabName = pkgs.writeShellApplication { zellijSyncTabName = pkgs.writeShellApplication {
name = "zellij-sync-tab-name"; name = "zellij-sync-tab-name";
runtimeInputs = [ runtimeInputs = [
@ -480,9 +489,11 @@ in
show_startup_tips = false; show_startup_tips = false;
show_release_notes = false; show_release_notes = false;
attach_to_session = false; attach_to_session = true;
on_force_close = "quit"; session_name = "main";
session_serialization = false; on_force_close = "detach";
session_serialization = true;
serialize_pane_viewport = true;
ui = { ui = {
pane_frames = { pane_frames = {
@ -699,7 +710,7 @@ in
xdg.desktopEntries.kitty = { xdg.desktopEntries.kitty = {
name = "Kitty"; name = "Kitty";
genericName = "Terminal Emulator"; genericName = "Terminal Emulator";
exec = "${pkgs.kitty}/bin/kitty --start-as=fullscreen ${zellijNewTabZoxide}/bin/zellij-new-tab-zoxide"; exec = "${pkgs.kitty}/bin/kitty --start-as=fullscreen ${zellijPersistentSession}/bin/zellij-persistent-session";
icon = "kitty"; icon = "kitty";
type = "Application"; type = "Application";
categories = [ categories = [