mirror of
https://github.com/elwrcl/copnix.git
synced 2026-10-31 06:18:03 +03:00
40 lines
1.0 KiB
Nix
40 lines
1.0 KiB
Nix
{ ... }:
|
|
{
|
|
flake.homeModules.home-zellij-ide-command =
|
|
{ config, pkgs, ... }:
|
|
{
|
|
home.packages = [
|
|
(pkgs.writeShellApplication {
|
|
name = "ide";
|
|
runtimeInputs = [
|
|
config.programs.zellij.finalPackage
|
|
pkgs.coreutils
|
|
pkgs.gnugrep
|
|
];
|
|
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
|
|
|
|
cd "''${1:-.}"
|
|
|
|
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
|
|
|
|
exec zellij --session "$session" --new-session-with-layout ide
|
|
'';
|
|
})
|
|
];
|
|
};
|
|
}
|