mirror of
https://github.com/elwrcl/copnix.git
synced 2026-10-31 06:18:03 +03:00
zellij
This commit is contained in:
1 parent
ed173a0af2
commit
ec8d0d2432
4 files changed
+97
-22
No files matched your search
@@ -9,29 +9,34 @@
|
||||
runtimeInputs = [
|
||||
config.programs.zellij.finalPackage
|
||||
pkgs.coreutils
|
||||
pkgs.gnugrep
|
||||
pkgs.gawk
|
||||
];
|
||||
text = ''
|
||||
case "''${1:-}" in
|
||||
-h | --help)
|
||||
echo "usage: ide [directory]"
|
||||
echo
|
||||
echo "opens re-attaches to a Zellij session named after the"
|
||||
echo "directory, running Helix in the 'ide' layout."
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
case "''${1:-}" in
|
||||
-h | --help)
|
||||
echo "usage: ide [directory]"
|
||||
echo
|
||||
echo "opens re-attaches to a Zellij session named after the"
|
||||
echo "directory, running Helix in the 'ide' layout."
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
cd "''${1:-.}"
|
||||
cd "''${1:-.}"
|
||||
|
||||
session=$(basename "$PWD")
|
||||
session=$(printf '%s' "$session" | tr -c 'A-Za-z0-9._-' '-')
|
||||
session=$(basename "$PWD")
|
||||
session=$(printf '%s' "$session" | tr -c 'A-Za-z0-9._-' '-')
|
||||
|
||||
if zellij list-sessions --short 2>/dev/null | grep -qx "$session"; then
|
||||
exec zellij attach "$session"
|
||||
fi
|
||||
if zellij list-sessions --no-formatting 2>/dev/null |
|
||||
awk -v s="$session" '$1 == s && $0 !~ /EXITED/ { hit = 1 } END { exit !hit }'; then
|
||||
exec zellij attach "$session"
|
||||
fi
|
||||
|
||||
exec zellij --session "$session" --new-session-with-layout ide
|
||||
# Drop any dead session squatting on the name so the layout is rebuilt
|
||||
# from scratch rather than resurrected.
|
||||
zellij delete-session "$session" >/dev/null 2>&1 || true
|
||||
|
||||
exec zellij --session "$session" --new-session-with-layout ide
|
||||
'';
|
||||
})
|
||||
];
|
||||
|
||||
Reference in new issue
Block a user