refactor(devkit): simplify devkit wrapper packages
This commit is contained in:
@@ -1,18 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
inputs,
|
||||
}: rec {
|
||||
ghostty = pkgs.callPackage ./ghostty {};
|
||||
git = pkgs.callPackage ./git {};
|
||||
lazygit = pkgs.callPackage ./lazygit {};
|
||||
starship = pkgs.callPackage ./starship {};
|
||||
tmux = pkgs.callPackage ./tmux {shell = zsh;};
|
||||
yazi = pkgs.callPackage ./yazi {};
|
||||
# CURRENTLY BORKED https://github.com/zellij-org/zellij/issues/3970
|
||||
zellij = pkgs.callPackage ./zellij {
|
||||
shell = zsh;
|
||||
zellij = pkgs-unstable.zellij;
|
||||
};
|
||||
zsh = pkgs.callPackage ./zsh {};
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
ghostty ? pkgs.ghostty,
|
||||
command ? null,
|
||||
}: let
|
||||
colors = import ../colors.nix;
|
||||
colors = import ./colors.nix;
|
||||
theme = pkgs.writeText "theme" ''
|
||||
palette = 0=${colors.base00}
|
||||
palette = 1=${colors.base08}
|
||||
@@ -31,7 +31,8 @@
|
||||
selection-background = ${colors.base02}
|
||||
selection-foreground = ${colors.base07}
|
||||
'';
|
||||
drv = symlinkJoin ({
|
||||
in
|
||||
symlinkJoin ({
|
||||
paths = [ghostty];
|
||||
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
@@ -45,24 +46,4 @@
|
||||
}
|
||||
'';
|
||||
}
|
||||
// {inherit (ghostty) name pname meta shell_integration terminfo;});
|
||||
in
|
||||
pkgs.stdenv.mkDerivation (rec {
|
||||
name = drv.name;
|
||||
pname = drv.pname;
|
||||
|
||||
buildCommand = let
|
||||
desktopEntry = pkgs.makeDesktopItem {
|
||||
name = pname;
|
||||
desktopName = name;
|
||||
exec = "${lib.getExe drv}";
|
||||
};
|
||||
in ''
|
||||
mkdir -p $out/bin
|
||||
cp ${lib.getExe drv} $out/bin
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
cp ${desktopEntry}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
'';
|
||||
}
|
||||
// {inherit (ghostty) meta shell_integration terminfo;})
|
||||
// {inherit (ghostty) name pname meta shell_integration terminfo;})
|
||||
30
packages/devkit/git.nix
Normal file
30
packages/devkit/git.nix
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
symlinkJoin,
|
||||
makeWrapper,
|
||||
pkgs,
|
||||
lib,
|
||||
git ? pkgs.git,
|
||||
}:
|
||||
symlinkJoin ({
|
||||
paths = [git];
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/git \
|
||||
--set-default 'GIT_CONFIG_COUNT' 7 \
|
||||
--set-default 'GIT_CONFIG_KEY_0' 'core.pager' \
|
||||
--set-default 'GIT_CONFIG_VALUE_0' '${lib.getExe pkgs.delta}' \
|
||||
--set-default 'GIT_CONFIG_KEY_1' 'credentials.helper' \
|
||||
--set-default 'GIT_CONFIG_VALUE_1' 'store' \
|
||||
--set-default 'GIT_CONFIG_KEY_2' 'interactive.diffFilter' \
|
||||
--set-default 'GIT_CONFIG_VALUE_2' '${lib.getExe pkgs.delta} --color-only' \
|
||||
--set-default 'GIT_CONFIG_KEY_3' 'signing.signByDefault' \
|
||||
--set-default 'GIT_CONFIG_VALUE_3' 'true' \
|
||||
--set-default 'GIT_CONFIG_KEY_4' 'user.email' \
|
||||
--set-default 'GIT_CONFIG_VALUE_4' 'contact@guz.one' \
|
||||
--set-default 'GIT_CONFIG_KEY_5' 'user.name' \
|
||||
--set-default 'GIT_CONFIG_VALUE_5' 'Gustavo "Guz" L de Mello' \
|
||||
--set-default 'GIT_CONFIG_KEY_6' 'commit.gpgsign' \
|
||||
--set-default 'GIT_CONFIG_VALUE_6' 'true'
|
||||
'';
|
||||
}
|
||||
// {inherit (git) name pname meta;})
|
||||
@@ -1,53 +0,0 @@
|
||||
{
|
||||
symlinkJoin,
|
||||
makeWrapper,
|
||||
pkgs,
|
||||
lib,
|
||||
git ? pkgs.git,
|
||||
}: let
|
||||
drv = symlinkJoin ({
|
||||
paths = [git];
|
||||
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/git \
|
||||
--set-default 'GIT_CONFIG_COUNT' 7 \
|
||||
--set-default 'GIT_CONFIG_KEY_0' 'core.pager' \
|
||||
--set-default 'GIT_CONFIG_VALUE_0' '${lib.getExe pkgs.delta}' \
|
||||
--set-default 'GIT_CONFIG_KEY_1' 'credentials.helper' \
|
||||
--set-default 'GIT_CONFIG_VALUE_1' 'store' \
|
||||
--set-default 'GIT_CONFIG_KEY_2' 'interactive.diffFilter' \
|
||||
--set-default 'GIT_CONFIG_VALUE_2' '${lib.getExe pkgs.delta} --color-only' \
|
||||
--set-default 'GIT_CONFIG_KEY_3' 'signing.signByDefault' \
|
||||
--set-default 'GIT_CONFIG_VALUE_3' 'true' \
|
||||
--set-default 'GIT_CONFIG_KEY_4' 'user.email' \
|
||||
--set-default 'GIT_CONFIG_VALUE_4' 'contact@guz.one' \
|
||||
--set-default 'GIT_CONFIG_KEY_5' 'user.name' \
|
||||
--set-default 'GIT_CONFIG_VALUE_5' 'Gustavo "Guz" L de Mello' \
|
||||
--set-default 'GIT_CONFIG_KEY_6' 'commit.gpgsign' \
|
||||
--set-default 'GIT_CONFIG_VALUE_6' 'true'
|
||||
'';
|
||||
}
|
||||
// {inherit (git) name pname meta;});
|
||||
in
|
||||
pkgs.stdenv.mkDerivation (rec {
|
||||
name = drv.name;
|
||||
pname = drv.pname;
|
||||
|
||||
buildCommand = let
|
||||
desktopEntry = pkgs.makeDesktopItem {
|
||||
name = pname;
|
||||
desktopName = name;
|
||||
exec = "${lib.getExe drv}";
|
||||
terminal = true;
|
||||
};
|
||||
in ''
|
||||
mkdir -p $out/bin
|
||||
cp ${lib.getExe drv} $out/bin
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
cp ${desktopEntry}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
'';
|
||||
}
|
||||
// {inherit (git) meta;})
|
||||
39
packages/devkit/lazygit.nix
Normal file
39
packages/devkit/lazygit.nix
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
symlinkJoin,
|
||||
makeWrapper,
|
||||
pkgs,
|
||||
lib,
|
||||
lazygit ? pkgs.lazygit,
|
||||
settings ? {},
|
||||
}:
|
||||
symlinkJoin ({
|
||||
paths = [lazygit];
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/lazygit \
|
||||
--add-flags '--use-config-file' \
|
||||
--add-flags '${pkgs.writeText "config.yml" (builtins.toJSON ({
|
||||
git.pagers = [
|
||||
{
|
||||
colorArg = "always";
|
||||
pager = "${lib.getExe pkgs.delta} --dark --paging=never";
|
||||
}
|
||||
];
|
||||
gui.theme = let
|
||||
colors = import ./colors.nix;
|
||||
in {
|
||||
activeBorderColor = [colors.base07 "bold"];
|
||||
inactiveBorderColor = [colors.base04];
|
||||
searchingActiveBorderColor = [colors.base02 "bold"];
|
||||
optionsTextColor = [colors.base06];
|
||||
selectedLineBgColor = [colors.base03];
|
||||
cherryPickedCommitBgColor = [colors.base02];
|
||||
cherryPickedCommitFgColor = [colors.base03];
|
||||
unstagedChangesColor = [colors.base08];
|
||||
defaultFgColor = [colors.base05];
|
||||
};
|
||||
}
|
||||
// settings))}'
|
||||
'';
|
||||
}
|
||||
// {inherit (lazygit) name pname meta;})
|
||||
@@ -1,64 +0,0 @@
|
||||
{
|
||||
symlinkJoin,
|
||||
makeWrapper,
|
||||
pkgs,
|
||||
lib,
|
||||
lazygit ? pkgs.lazygit,
|
||||
settings ? {},
|
||||
}: let
|
||||
# YAML is a superset of JSON, so any JSON is valid YAML.
|
||||
colors = import ../colors.nix;
|
||||
cfg = pkgs.writeText "config.yml" (builtins.toJSON ({
|
||||
git.pagers = [
|
||||
{
|
||||
colorArg = "always";
|
||||
pager = "${lib.getExe pkgs.delta} --dark --paging=never";
|
||||
}
|
||||
];
|
||||
|
||||
gui.theme = {
|
||||
activeBorderColor = [colors.base07 "bold"];
|
||||
inactiveBorderColor = [colors.base04];
|
||||
searchingActiveBorderColor = [colors.base02 "bold"];
|
||||
optionsTextColor = [colors.base06];
|
||||
selectedLineBgColor = [colors.base03];
|
||||
cherryPickedCommitBgColor = [colors.base02];
|
||||
cherryPickedCommitFgColor = [colors.base03];
|
||||
unstagedChangesColor = [colors.base08];
|
||||
defaultFgColor = [colors.base05];
|
||||
};
|
||||
}
|
||||
// settings));
|
||||
|
||||
drv = symlinkJoin ({
|
||||
paths = [lazygit];
|
||||
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/lazygit \
|
||||
--add-flags '--use-config-file' --add-flags '${cfg}'
|
||||
'';
|
||||
}
|
||||
// {inherit (lazygit) name pname meta;});
|
||||
in
|
||||
pkgs.stdenv.mkDerivation (rec {
|
||||
name = drv.name;
|
||||
pname = drv.pname;
|
||||
|
||||
buildCommand = let
|
||||
desktopEntry = pkgs.makeDesktopItem {
|
||||
name = pname;
|
||||
desktopName = name;
|
||||
exec = "${lib.getExe drv}";
|
||||
terminal = true;
|
||||
};
|
||||
in ''
|
||||
mkdir -p $out/bin
|
||||
cp ${lib.getExe drv} $out/bin
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
cp ${desktopEntry}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
'';
|
||||
}
|
||||
// {inherit (lazygit) meta;})
|
||||
@@ -4,36 +4,13 @@
|
||||
pkgs,
|
||||
lib,
|
||||
starship ? pkgs.starship,
|
||||
}: let
|
||||
drv = symlinkJoin ({
|
||||
paths = [starship];
|
||||
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/starship \
|
||||
--set-default 'STARSHIP_CONFIG' '${./config.toml}'
|
||||
'';
|
||||
}
|
||||
// {inherit (starship) name pname meta;});
|
||||
in
|
||||
pkgs.stdenv.mkDerivation (rec {
|
||||
name = drv.name;
|
||||
pname = drv.pname;
|
||||
|
||||
buildCommand = let
|
||||
desktopEntry = pkgs.makeDesktopItem {
|
||||
name = pname;
|
||||
desktopName = name;
|
||||
exec = "${lib.getExe drv}";
|
||||
terminal = true;
|
||||
};
|
||||
in ''
|
||||
mkdir -p $out/bin
|
||||
cp ${lib.getExe drv} $out/bin
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
cp ${desktopEntry}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
'';
|
||||
}
|
||||
// {inherit (starship) meta;})
|
||||
}:
|
||||
symlinkJoin ({
|
||||
paths = [starship];
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/starship \
|
||||
--set-default 'STARSHIP_CONFIG' '${./config.toml}'
|
||||
'';
|
||||
}
|
||||
// {inherit (starship) name pname meta;})
|
||||
|
||||
@@ -45,36 +45,13 @@
|
||||
|
||||
bind -T prefix g run-shell "tmux neww ${lib.getExe sessionizer}"
|
||||
'';
|
||||
|
||||
drv = symlinkJoin ({
|
||||
in
|
||||
symlinkJoin ({
|
||||
paths = [tmux];
|
||||
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/tmux \
|
||||
--add-flags '-f' --add-flags '${cfg}'
|
||||
'';
|
||||
}
|
||||
// {inherit (tmux) name pname man meta;});
|
||||
in
|
||||
pkgs.stdenv.mkDerivation (rec {
|
||||
name = drv.name;
|
||||
pname = drv.pname;
|
||||
|
||||
buildCommand = let
|
||||
desktopEntry = pkgs.makeDesktopItem {
|
||||
name = pname;
|
||||
desktopName = name;
|
||||
exec = "${lib.getExe drv}";
|
||||
terminal = true;
|
||||
};
|
||||
in ''
|
||||
mkdir -p $out/bin
|
||||
cp ${lib.getExe drv} $out/bin
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
cp ${desktopEntry}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
'';
|
||||
}
|
||||
// {inherit (tmux) man meta;})
|
||||
// {inherit (tmux) name pname man meta;})
|
||||
|
||||
@@ -1,39 +1,74 @@
|
||||
{
|
||||
symlinkJoin,
|
||||
formats,
|
||||
lib,
|
||||
makeWrapper,
|
||||
pkgs,
|
||||
lib,
|
||||
stdenv,
|
||||
symlinkJoin,
|
||||
yazi ? pkgs.yazi,
|
||||
}: let
|
||||
drv = symlinkJoin ({
|
||||
}:
|
||||
with lib; let
|
||||
toml = formats.toml {};
|
||||
|
||||
init = pkgs.writeText "init.lua" ''
|
||||
${builtins.readFile ./init.lua}
|
||||
'';
|
||||
keymapsToml = toml.generate "keymaps.toml" {
|
||||
mgr.prepend_keymap = map (v: {
|
||||
on = [(toString v)];
|
||||
run = "plugin relative-motions ${(toString v)}";
|
||||
}) (range 1 9);
|
||||
manager.keymap = [
|
||||
{
|
||||
on = "<C-n>";
|
||||
run = "shell -- dragon -x -i -T %s1";
|
||||
}
|
||||
];
|
||||
};
|
||||
themeToml = toml.generate "theme.toml" {};
|
||||
yaziToml = toml.generate "yazi.toml" {
|
||||
manager = {
|
||||
linemode = "size";
|
||||
|
||||
show_hidden = true;
|
||||
show_symlink = true;
|
||||
|
||||
sort_by = "natural";
|
||||
sort_dir_first = true;
|
||||
sort_sensitive = false;
|
||||
sort_translit = true;
|
||||
};
|
||||
};
|
||||
plugins = {};
|
||||
in
|
||||
symlinkJoin ({
|
||||
paths = [yazi];
|
||||
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/yazi \
|
||||
--set-default YAZI_CONFIG_HOME ${./.}
|
||||
--set YAZI_CONFIG_HOME ${stdenv.mkDerivation {
|
||||
name = "config-home";
|
||||
src = ./.;
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp ${init} $out/init.lua
|
||||
cp ${keymapsToml} $out/keymaps.toml
|
||||
cp ${themeToml} $out/theme.toml
|
||||
cp ${yaziToml} $out/yazi.toml
|
||||
|
||||
${join "\n" (mapAttrsToList (n: v: ''
|
||||
mkdir -p $out/plugins/${n}
|
||||
cp -r ${v}/* $out/plugins/${n}
|
||||
'')
|
||||
plugins)}
|
||||
'';
|
||||
}} \
|
||||
--set PATH ${with pkgs;
|
||||
makeBinPath [
|
||||
dragon-drop
|
||||
jq
|
||||
poppler
|
||||
]}
|
||||
'';
|
||||
}
|
||||
// {inherit (yazi) name pname meta;});
|
||||
in
|
||||
pkgs.stdenv.mkDerivation (rec {
|
||||
name = drv.name;
|
||||
pname = drv.pname;
|
||||
|
||||
buildCommand = let
|
||||
desktopEntry = pkgs.makeDesktopItem {
|
||||
name = pname;
|
||||
desktopName = name;
|
||||
exec = "${lib.getExe drv}";
|
||||
terminal = true;
|
||||
};
|
||||
in ''
|
||||
mkdir -p $out/bin
|
||||
cp ${lib.getExe drv} $out/bin
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
cp ${desktopEntry}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
'';
|
||||
}
|
||||
// {inherit (yazi) meta;})
|
||||
// {inherit (yazi) name pname meta;})
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
[manager]
|
||||
show_hidden = true
|
||||
show_symlink = true
|
||||
|
||||
sort_by = "natural"
|
||||
sort_dir_first = true
|
||||
sort_sensitive = false
|
||||
sort_translit = true
|
||||
|
||||
linemode = "size"
|
||||
@@ -5,78 +5,51 @@
|
||||
lib,
|
||||
zellij ? pkgs.zellij,
|
||||
shell ? pkgs.zsh,
|
||||
}: let
|
||||
colors = import ../colors.nix;
|
||||
}:
|
||||
symlinkJoin ({
|
||||
paths = [zellij];
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/zellij \
|
||||
--set-default ZELLIJ_CONFIG_FILE ${
|
||||
let
|
||||
colors = import ../colors.nix;
|
||||
in
|
||||
pkgs.writeText "config.kdl" ''
|
||||
plugins {
|
||||
zellij-sessionizer location="file:${builtins.fetchurl {
|
||||
url = "https://github.com/laperlej/zellij-sessionizer/releases/download/v0.4.3/zellij-sessionizer.wasm";
|
||||
sha256 = "0d43jhlhm7p8pvd8kcylfbfy3dahr8q4yngpnjyqivapwip9csq0";
|
||||
}}"
|
||||
|
||||
config = let
|
||||
plugins = {
|
||||
sessionizer = builtins.fetchurl {
|
||||
url = "https://github.com/laperlej/zellij-sessionizer/releases/download/v0.4.3/zellij-sessionizer.wasm";
|
||||
sha256 = "0d43jhlhm7p8pvd8kcylfbfy3dahr8q4yngpnjyqivapwip9csq0";
|
||||
};
|
||||
};
|
||||
in
|
||||
pkgs.writeText "config.kdl" ''
|
||||
plugins {
|
||||
zellij-sessionizer location="file:${plugins.sessionizer}"
|
||||
tab-bar location="zellij:tab-bar"
|
||||
status-bar location="zellij:status-bar"
|
||||
compact-bar location="zellij:compact-bar"
|
||||
session-manager location="zellij:session-manager"
|
||||
}
|
||||
|
||||
tab-bar location="zellij:tab-bar"
|
||||
status-bar location="zellij:status-bar"
|
||||
compact-bar location="zellij:compact-bar"
|
||||
session-manager location="zellij:session-manager"
|
||||
default_shell "${lib.getExe shell}"
|
||||
|
||||
themes {
|
||||
defautl {
|
||||
bg "${colors.base03}";
|
||||
fg "${colors.base05}";
|
||||
red "${colors.base01}";
|
||||
green "${colors.base0B}";
|
||||
blue "${colors.base0D}";
|
||||
yellow "${colors.base0A}";
|
||||
magenta "${colors.base0E}";
|
||||
orange "${colors.base09}";
|
||||
cyan "${colors.base0C}";
|
||||
black "${colors.base00}";
|
||||
white "${colors.base07}";
|
||||
}
|
||||
}
|
||||
theme "default"
|
||||
|
||||
${builtins.readFile ./config.kdl}
|
||||
''
|
||||
}
|
||||
|
||||
default_shell "${lib.getExe shell}"
|
||||
|
||||
themes {
|
||||
defautl {
|
||||
bg "${colors.base03}";
|
||||
fg "${colors.base05}";
|
||||
red "${colors.base01}";
|
||||
green "${colors.base0B}";
|
||||
blue "${colors.base0D}";
|
||||
yellow "${colors.base0A}";
|
||||
magenta "${colors.base0E}";
|
||||
orange "${colors.base09}";
|
||||
cyan "${colors.base0C}";
|
||||
black "${colors.base00}";
|
||||
white "${colors.base07}";
|
||||
}
|
||||
}
|
||||
theme "default"
|
||||
|
||||
${builtins.readFile ./config.kdl}
|
||||
'';
|
||||
|
||||
drv = symlinkJoin ({
|
||||
paths = [zellij];
|
||||
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/zellij \
|
||||
--set-default ZELLIJ_CONFIG_FILE ${config}
|
||||
'';
|
||||
}
|
||||
// {inherit (zellij) name pname meta;});
|
||||
in
|
||||
pkgs.stdenv.mkDerivation (rec {
|
||||
name = drv.name;
|
||||
pname = drv.pname;
|
||||
|
||||
buildCommand = let
|
||||
desktopEntry = pkgs.makeDesktopItem {
|
||||
name = pname;
|
||||
desktopName = name;
|
||||
exec = "${lib.getExe drv}";
|
||||
terminal = true;
|
||||
};
|
||||
in ''
|
||||
mkdir -p $out/bin
|
||||
cp ${lib.getExe drv} $out/bin
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
cp ${desktopEntry}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
'';
|
||||
}
|
||||
// {inherit (zellij) meta version;})
|
||||
}
|
||||
// {inherit (zellij) name pname meta;})
|
||||
|
||||
@@ -82,3 +82,10 @@ alias -- yy='yazi'
|
||||
if [ -f "$ZSHRC_APPEND" ]; then
|
||||
source "$ZSHRC_APPEND"
|
||||
fi
|
||||
|
||||
# Fetch intro
|
||||
if command -v "fastfetch" >/dev/null 2>&1; then
|
||||
if [[ "$TERM" != "dump" ]]; then
|
||||
fastfetch
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
symlinkJoin,
|
||||
makeWrapper,
|
||||
pkgs,
|
||||
lib,
|
||||
zsh ? pkgs.zsh,
|
||||
# .zshrc
|
||||
zshrc-prepend ? "",
|
||||
@@ -10,15 +9,12 @@
|
||||
}: let
|
||||
zsh-syntax-highlighting = "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh";
|
||||
zsh-autosuggestions = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh";
|
||||
|
||||
zshrc-prepend-file = pkgs.writeText ".zshrc_prepend" zshrc-prepend;
|
||||
zshrc-append-file = pkgs.writeText ".zshrc_append" zshrc-append;
|
||||
|
||||
drv = symlinkJoin ({
|
||||
in
|
||||
symlinkJoin ({
|
||||
paths = [zsh];
|
||||
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/zsh \
|
||||
--set-default 'ZSH_PLUGIN_SYNTAXHIGHLIGHING' '${zsh-syntax-highlighting}' \
|
||||
@@ -28,25 +24,4 @@
|
||||
--set-default 'ZDOTDIR' '${./.}'
|
||||
'';
|
||||
}
|
||||
// {inherit (zsh) name pname meta man;});
|
||||
in
|
||||
pkgs.stdenv.mkDerivation (rec {
|
||||
name = drv.name;
|
||||
pname = drv.pname;
|
||||
|
||||
buildCommand = let
|
||||
desktopEntry = pkgs.makeDesktopItem {
|
||||
name = pname;
|
||||
desktopName = name;
|
||||
exec = "${lib.getExe drv}";
|
||||
terminal = true;
|
||||
};
|
||||
in ''
|
||||
mkdir -p $out/bin
|
||||
cp ${lib.getExe drv} $out/bin
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
cp ${desktopEntry}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
'';
|
||||
}
|
||||
// {inherit (zsh) meta man;})
|
||||
// {inherit (zsh) man meta name passthru pname version;})
|
||||
|
||||
Reference in New Issue
Block a user