mirror of
https://github.com/elwrcl/copnix.git
synced 2026-10-31 22:28:03 +03:00
editor: drop zellij IDE layer, keep helix as terminal editor
This commit is contained in:
1 parent
31f883a0cd
commit
fde7614c99
6 files changed
+1
-275
No files matched your search
@@ -1,44 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-zellij-ide-command =
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
(pkgs.writeShellApplication {
|
||||
name = "ide";
|
||||
runtimeInputs = [
|
||||
config.programs.zellij.finalPackage
|
||||
pkgs.coreutils
|
||||
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
|
||||
|
||||
cd "''${1:-.}"
|
||||
|
||||
session=$(basename "$PWD")
|
||||
session=$(printf '%s' "$session" | tr -c 'A-Za-z0-9._-' '-')
|
||||
|
||||
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
|
||||
|
||||
# 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
|
||||
'';
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-zellij-layout-ide =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
p = config.elars.theme.palette;
|
||||
c = hex: "#${hex}";
|
||||
bg = c p.base00;
|
||||
bgAlt = c p.base01;
|
||||
dim = c p.base03;
|
||||
muted = c p.base04;
|
||||
accent = c p.accent;
|
||||
|
||||
mode =
|
||||
key: background: label:
|
||||
''mode_${key} "#[bg=${background},fg=${bg},bold] ${label} "'';
|
||||
|
||||
modes = lib.concatStringsSep "\n " [
|
||||
(mode "normal" (c p.base0B) "NORMAL")
|
||||
(mode "tmux" (c p.base09) "ZELLIJ")
|
||||
(mode "locked" dim "LOCKED")
|
||||
(mode "resize" (c p.base0D) "RESIZE")
|
||||
(mode "scroll" (c p.base0C) "SCROLL")
|
||||
(mode "search" (c p.base0C) "SEARCH")
|
||||
(mode "entersearch" (c p.base0C) "SEARCH")
|
||||
(mode "renametab" (c p.base0E) "RENAME")
|
||||
(mode "renamepane" (c p.base0E) "RENAME")
|
||||
];
|
||||
in
|
||||
{
|
||||
programs.zellij.layouts.ide = ''
|
||||
layout {
|
||||
default_tab_template {
|
||||
pane size=1 borderless=true {
|
||||
plugin location="file:${pkgs.zellijPlugins.zjstatus}" {
|
||||
format_left "{mode}#[bg=${bgAlt},fg=${accent},bold] {session} #[bg=${bg}] {tabs}"
|
||||
format_right "#[bg=${bg},fg=${dim}]{swap_layout} {datetime}"
|
||||
format_space "#[bg=${bg}]"
|
||||
|
||||
border_enabled "false"
|
||||
hide_frame_for_single_pane "false"
|
||||
|
||||
${modes}
|
||||
|
||||
tab_normal "#[bg=${bgAlt},fg=${muted}] {index} {name} "
|
||||
tab_active "#[bg=${accent},fg=${bg},bold] {index} {name} "
|
||||
|
||||
datetime "#[bg=${bg},fg=${muted},bold] {format} "
|
||||
datetime_format "%H:%M"
|
||||
datetime_timezone "Europe/Istanbul"
|
||||
}
|
||||
}
|
||||
children
|
||||
}
|
||||
|
||||
tab name="edit" focus=true {
|
||||
pane split_direction="vertical" {
|
||||
pane size=40 name="files" command="hx-sidebar" close_on_exit=true {
|
||||
args "."
|
||||
}
|
||||
pane focus=true command="hx" close_on_exit=true
|
||||
}
|
||||
|
||||
floating_panes {
|
||||
pane name="terminal" command="nu" {
|
||||
x "5%"
|
||||
y "52%"
|
||||
width "90%"
|
||||
height "44%"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
swap_tiled_layout name="vertical" {
|
||||
tab {
|
||||
pane split_direction="vertical" { children; }
|
||||
}
|
||||
}
|
||||
|
||||
swap_tiled_layout name="horizontal" {
|
||||
tab {
|
||||
pane split_direction="horizontal" { children; }
|
||||
}
|
||||
}
|
||||
|
||||
swap_tiled_layout name="stacked" {
|
||||
tab {
|
||||
pane stacked=true { children; }
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user