GHOSCHT
56af3a2118
add nh alias "nrs" for easy system rebuild remove custom tide prompt colors (they looked ugly) remove vim abbreviations
85 lines
2.5 KiB
Nix
85 lines
2.5 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf;
|
|
hasPackage = pname: lib.any (p: p ? pname && p.pname == pname) config.home.packages;
|
|
hasRipgrep = hasPackage "ripgrep";
|
|
hasExa = hasPackage "eza";
|
|
hasLazygit = config.programs.lazygit.enable;
|
|
hasLazydocker = hasPackage "lazydocker";
|
|
hasNixYourShell = hasPackage "nix-your-shell";
|
|
hasShellColor = config.programs.shellcolor.enable;
|
|
shellcolor = "${pkgs.shellcolord}/bin/shellcolor";
|
|
in {
|
|
programs.fish = {
|
|
enable = true;
|
|
interactiveShellInit = ''
|
|
${
|
|
if hasNixYourShell
|
|
then "nix-your-shell fish | source"
|
|
else ""
|
|
}
|
|
'';
|
|
plugins = [
|
|
{
|
|
name = "grc";
|
|
src = pkgs.fishPlugins.grc.src;
|
|
}
|
|
{
|
|
name = "fzf";
|
|
src = pkgs.fishPlugins.fzf.src;
|
|
}
|
|
{
|
|
name = "tide";
|
|
src = pkgs.fishPlugins.tide.src;
|
|
}
|
|
{
|
|
name = "sponge";
|
|
src = pkgs.fishPlugins.sponge.src;
|
|
}
|
|
{
|
|
name = "autopair";
|
|
src = pkgs.fishPlugins.autopair.src;
|
|
}
|
|
];
|
|
shellAliases = {
|
|
lzg = mkIf hasLazygit "lazygit";
|
|
lzd = mkIf hasLazydocker "lazydocker";
|
|
batt = ''upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep -e "percentage" -e "state"'';
|
|
hx = "~/Documents/heliox-cli/target/debug/heliox-cli --mode";
|
|
slp = "systemctl suspend";
|
|
sdn = "shutdown 0";
|
|
nrs = "nh os switch ~/.setup";
|
|
};
|
|
shellAbbrs = rec {
|
|
jqless = "jq -C | less -r";
|
|
|
|
n = "nix";
|
|
nd = "nix develop -c $SHELL";
|
|
ns = "nix shell";
|
|
nsn = "nix shell nixpkgs#";
|
|
nb = "nix build";
|
|
nbn = "nix build nixpkgs#";
|
|
nf = "nix flake";
|
|
|
|
ls = mkIf hasExa "eza";
|
|
exa = mkIf hasExa "eza";
|
|
};
|
|
functions = {
|
|
# Disable greeting
|
|
fish_greeting = "";
|
|
fish_init_custom = ''
|
|
tide configure --auto --style=Rainbow --prompt_colors='True color' --show_time=No --rainbow_prompt_separators=Vertical --powerline_prompt_heads=Slanted --powerline_prompt_tails=Flat --powerline_prompt_style='Two lines, frame' --prompt_connection=Solid --powerline_right_prompt_frame=No --prompt_connection_andor_frame_color=Darkest --prompt_spacing=Compact --icons='Many icons' --transient=Yes
|
|
'';
|
|
};
|
|
};
|
|
home.packages = with pkgs; [grc fzf nix-your-shell];
|
|
|
|
# Applies tide configure on rebuild
|
|
home.activation.configureTide = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
|
${pkgs.fish}/bin/fish -c "fish_init_custom"
|
|
'';
|
|
}
|