This commit is contained in:
Finn Linck Ryan 2026-01-11 01:42:54 +00:00
commit aae151cee6
33 changed files with 1351 additions and 0 deletions

View file

@ -0,0 +1,10 @@
{ ...
}:
{
imports = [
./direnv.nix
./fish.nix
./zellij.nix
];
}

View file

@ -0,0 +1,24 @@
{ lib
, config
, ...
}:
let
cfg = config.custom.shells.direnv;
in
{
options.custom.shells.direnv = {
enable = lib.mkEnableOption "Whether to enable the direnv shell environment tool.";
};
config = lib.mkIf cfg.enable {
programs.direnv = {
enable = true;
nix-direnv.enable = true;
enableBashIntegration = config.programs.bash.enable;
enableFishIntegration = config.programs.fish.enable;
};
};
}

View file

@ -0,0 +1,93 @@
{ lib
, config
, pkgs
, ...
}:
let
cfg = config.custom.shells.fish;
in
{
options.custom.shells.fish = {
enable = lib.mkEnableOption "Whether to enable the Fish shell";
};
config = lib.mkIf cfg.enable {
programs = {
fish = {
enable = true;
# Disable annoying welcome message.
shellInit = ''
set fish_greeting
'';
shellAliases = {
e = "$EDITOR";
".." = "cd ..";
"..." = "cd ../..";
"...." = "cd ../../..";
"....." = "cd ../../../..";
"......" = "cd ../../../../..";
tree = "${pkgs.eza}/bin/eza --color=always --tree";
ls = "${pkgs.eza}/bin/eza --color=always --group-directories-first --icons";
ll = "${pkgs.eza}/bin/eza -la --icons --octal-permissions --group-directories-first";
l = "${pkgs.eza}/bin/eza --long --all --group --group-directories-first --icons";
lx = "${pkgs.eza}/bin/eza -lbhHigUmuSa@ --time-style=long-iso --git --color-scale --color=always --group-directories-first --icons";
cat = "${pkgs.bat}/bin/bat -Pp";
};
};
starship = {
enable = true;
settings = {
character = {
success_symbol = "[[](mauve) ](maroon)";
error_symbol = "[](red)";
vimcmd_symbol = "[](green)";
};
directory = {
truncation_length = 4;
style = "bold pink";
};
palette = "catppuccin_mocha";
palettes.catppuccin_mocha = {
rosewater = "#f5e0dc";
flamingo = "#f2cdcd";
pink = "#f5c2e7";
mauve = "#cba6f7";
red = "#f38ba8";
maroon = "#eba0ac";
peach = "#fab387";
yellow = "#f9e2af";
green = "#a6e3a1";
teal = "#94e2d5";
sky = "#89dceb";
sapphire = "#74c7ec";
blue = "#89b4fa";
lavender = "#b4befe";
text = "#cdd6f4";
subtext1 = "#bac2de";
subtext0 = "#a6adc8";
overlay2 = "#9399b2";
overlay1 = "#7f849c";
overlay0 = "#6c7086";
surface2 = "#585b70";
surface1 = "#45475a";
surface0 = "#313244";
base = "#1e1e2e";
mantle = "#181825";
crust = "#11111b";
};
};
};
};
};
}

View file

@ -0,0 +1,21 @@
{ config
, lib
, pkgs
, ...
}:
let
cfg = config.custom.shells.zellij;
in
{
options.custom.shells.zellij = {
enable = lib.mkEnableOption "Enable the Zellij multiplexer.";
};
config = lib.mkIf cfg.enable {
programs.zellij = {
enable = true;
};
};
}