241 lines
6.4 KiB
Nix
241 lines
6.4 KiB
Nix
# SPDX-FileCopyrightText: 2025 Ethan Reece <contact@ethanreece.com>
|
||
#
|
||
# SPDX-License-Identifier: MIT
|
||
|
||
{
|
||
config,
|
||
inputs,
|
||
lib,
|
||
pkgs,
|
||
system,
|
||
...
|
||
}:
|
||
{
|
||
home.shell = {
|
||
enableNushellIntegration = true;
|
||
enableZshIntegration = true;
|
||
enableFishIntegration = true;
|
||
};
|
||
programs = {
|
||
nix-your-shell = {
|
||
enable = true;
|
||
};
|
||
eza = {
|
||
enable = true;
|
||
};
|
||
fzf = {
|
||
enable = true;
|
||
};
|
||
direnv = {
|
||
enable = true;
|
||
mise.enable = true;
|
||
nix-direnv.enable = true;
|
||
};
|
||
nushell = {
|
||
enable = true;
|
||
settings = {
|
||
completions = {
|
||
algorithm = "fuzzy";
|
||
case_sensitive = false;
|
||
external = {
|
||
enable = true;
|
||
};
|
||
};
|
||
};
|
||
# set -x ZATHURA_PLUGINS_PATH $GUIX_HOME/lib/zathura
|
||
shellAliases = config.home.shellAliases;
|
||
environmentVariables = config.home.sessionVariables // config.systemd.user.sessionVariables;
|
||
};
|
||
starship = {
|
||
enable = true;
|
||
settings = {
|
||
format =
|
||
"[](red)"
|
||
+ "$os"
|
||
+ "$username"
|
||
+ "[](bg:peach fg:red)"
|
||
+ "$directory"
|
||
+ "[](bg:yellow fg:peach)"
|
||
+ "$git_branch"
|
||
+ "$git_status"
|
||
+ "[](fg:yellow bg:green)"
|
||
+ "$c"
|
||
+ "$rust"
|
||
+ "$golang"
|
||
+ "$nodejs"
|
||
+ "$php"
|
||
+ "$java"
|
||
+ "$kotlin"
|
||
+ "$haskell"
|
||
+ "$python"
|
||
+ "[](fg:green bg:sapphire)"
|
||
+ "$conda"
|
||
+ "$nix_shell"
|
||
+ "[](fg:sapphire bg:lavender)"
|
||
+ "$time"
|
||
+ "[ ](fg:lavender)"
|
||
+ "$cmd_duration"
|
||
+ "$line_break"
|
||
+ "$character";
|
||
os = {
|
||
disabled = false;
|
||
style = "bg:red fg:crust";
|
||
symbols = {
|
||
Windows = "";
|
||
Ubuntu = "";
|
||
SUSE = "";
|
||
Raspbian = "";
|
||
Mint = "";
|
||
Macos = "";
|
||
Manjaro = "";
|
||
Linux = "";
|
||
Gentoo = "";
|
||
Fedora = "";
|
||
Alpine = "";
|
||
Amazon = "";
|
||
Android = "";
|
||
Arch = "";
|
||
Artix = "";
|
||
CentOS = "";
|
||
Debian = "";
|
||
Redhat = "";
|
||
RedHatEnterprise = "";
|
||
NixOS = "";
|
||
};
|
||
};
|
||
username = {
|
||
show_always = true;
|
||
style_user = "bg:red fg:crust";
|
||
style_root = "bg:red fg:crust";
|
||
format = ''[ $user]($style)'';
|
||
};
|
||
directory = {
|
||
style = "bg:peach fg:crust";
|
||
format = "[ $path ]($style)";
|
||
truncation_length = 3;
|
||
truncation_symbol = "…/";
|
||
substitutions = {
|
||
"Documents" = " ";
|
||
"Downloads" = " ";
|
||
"Music" = " ";
|
||
"Pictures" = " ";
|
||
"Developer" = " ";
|
||
};
|
||
};
|
||
git_branch = {
|
||
symbol = "";
|
||
style = "bg:yellow";
|
||
format = ''[[ $symbol $branch ](fg:crust bg:yellow)]($style)'';
|
||
};
|
||
git_status = {
|
||
style = "bg:yellow";
|
||
format = ''[[($all_status$ahead_behind )](fg:crust bg:yellow)]($style)'';
|
||
};
|
||
nodejs = {
|
||
symbol = "";
|
||
style = "bg:green";
|
||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||
};
|
||
c = {
|
||
symbol = " ";
|
||
style = "bg:green";
|
||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||
};
|
||
rust = {
|
||
symbol = "";
|
||
style = "bg:green";
|
||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||
};
|
||
golang = {
|
||
symbol = "";
|
||
style = "bg:green";
|
||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||
};
|
||
php = {
|
||
symbol = "";
|
||
style = "bg:green";
|
||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||
};
|
||
java = {
|
||
symbol = " ";
|
||
style = "bg:green";
|
||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||
};
|
||
kotlin = {
|
||
symbol = "";
|
||
style = "bg:green";
|
||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||
};
|
||
haskell = {
|
||
symbol = "";
|
||
style = "bg:green";
|
||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||
};
|
||
python = {
|
||
symbol = "";
|
||
style = "bg:green";
|
||
format = ''[[ $symbol( $version)(\(#$virtualenv\)) ](fg:crust bg:green)]($style)'';
|
||
};
|
||
docker_context = {
|
||
symbol = "";
|
||
style = "bg:sapphire";
|
||
format = ''[[ $symbol( $context) ](fg:crust bg:sapphire)]($style)'';
|
||
};
|
||
conda = {
|
||
symbol = " ";
|
||
style = "fg:crust bg:sapphire";
|
||
format = ''[$symbol$environment ]($style)'';
|
||
ignore_base = false;
|
||
};
|
||
nix_shell = {
|
||
symbol = "";
|
||
style = "fg:crust bg:sapphire";
|
||
format = ''[[ $symbol( $name) ](fg:crust bg:sapphire)]($style)'';
|
||
};
|
||
time = {
|
||
disabled = false;
|
||
time_format = "%R";
|
||
style = "bg:lavender";
|
||
format = ''[[ $time ](fg:crust bg:lavender)]($style)'';
|
||
};
|
||
line_break = {
|
||
disabled = false;
|
||
};
|
||
character = {
|
||
disabled = false;
|
||
success_symbol = "[❯](bold fg:green)";
|
||
error_symbol = "[❯](bold fg:red)";
|
||
vimcmd_symbol = "[❮](bold fg:green)";
|
||
vimcmd_replace_one_symbol = "[❮](bold fg:lavender)";
|
||
vimcmd_replace_symbol = "[❮](bold fg:lavender)";
|
||
vimcmd_visual_symbol = "[❮](bold fg:yellow)";
|
||
};
|
||
cmd_duration = {
|
||
show_milliseconds = true;
|
||
format = " in $duration ";
|
||
style = "bg:lavender";
|
||
disabled = false;
|
||
show_notifications = true;
|
||
min_time_to_notify = 45000;
|
||
};
|
||
};
|
||
};
|
||
carapace = {
|
||
enable = true;
|
||
enableFishIntegration = false;
|
||
};
|
||
zoxide = {
|
||
enable = true;
|
||
};
|
||
};
|
||
services = {
|
||
gpg-agent = {
|
||
enable = true;
|
||
enableSshSupport = true;
|
||
pinentry = {
|
||
package = pkgs.pinentry-tty;
|
||
program = "pinentry";
|
||
};
|
||
};
|
||
};
|
||
}
|