170 lines
3.4 KiB
Nix
170 lines
3.4 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
environment.systemPackages = with pkgs; [
|
|
util-linux
|
|
rclone
|
|
neovim
|
|
fd
|
|
jq
|
|
btop
|
|
lshw
|
|
gnupg
|
|
git
|
|
git-lfs
|
|
ranger
|
|
nixfmt
|
|
aspell
|
|
aspellDicts.en
|
|
aspellDicts.en-computers
|
|
aspellDicts.en-science
|
|
fishPlugins.done
|
|
fishPlugins.fzf-fish
|
|
fishPlugins.forgit
|
|
killall
|
|
nodejs
|
|
libtool
|
|
grc
|
|
fzf
|
|
ispell
|
|
fishPlugins.grc
|
|
unzip
|
|
ripgrep
|
|
usbutils
|
|
sqlite
|
|
silver-searcher
|
|
bat
|
|
exfatprogs
|
|
eza
|
|
screen
|
|
libsecret
|
|
cmake
|
|
gnumake
|
|
gcc
|
|
lazygit
|
|
];
|
|
|
|
programs.git = {
|
|
package = pkgs.gitFull;
|
|
enable = true;
|
|
config = {
|
|
user = {
|
|
email = "joe@5sigma.io";
|
|
};
|
|
# credential.helper = "libsecret";
|
|
};
|
|
# aliases = {
|
|
# aa = "add --all";
|
|
# c = "commit";
|
|
# co = "checkout";
|
|
# st = "status";
|
|
# };
|
|
};
|
|
|
|
programs.dconf.enable = true;
|
|
programs.partition-manager.enable = true;
|
|
|
|
environment.variables = {
|
|
EDITOR = "nvim";
|
|
ERL_AFLAGS = "-kernel shell_history enabled";
|
|
};
|
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
|
|
users.users.joe.shell = pkgs.nushell;
|
|
|
|
home-manager.users.joe = {
|
|
programs = {
|
|
starship = {
|
|
enableNushellIntegration = true;
|
|
enableFishIntegration = true;
|
|
enableBashIntegration = true;
|
|
enable = true;
|
|
settings = {
|
|
add_newline = true;
|
|
character = {
|
|
success_symbol = "[➜](bold green)";
|
|
error_symbol = "[➜](bold red)";
|
|
};
|
|
};
|
|
};
|
|
|
|
zoxide = {
|
|
enable = true;
|
|
enableFishIntegration = true;
|
|
enableNushellIntegration = true;
|
|
};
|
|
carapace = {
|
|
enable = true;
|
|
enableNushellIntegration = true;
|
|
};
|
|
|
|
direnv = {
|
|
enable = true;
|
|
enableFishIntegration = true;
|
|
enableNushellIntegration = true;
|
|
enableBashIntegration = true;
|
|
};
|
|
|
|
nushell = {
|
|
enable = true;
|
|
# The config.nu can be anywhere you want if you like to edit your Nushell with Nu
|
|
configFile.source = ./dotfiles/config.nu;
|
|
# for editing directly to config.nu
|
|
extraConfig = ''
|
|
let carapace_completer = {|spans|
|
|
carapace $spans.0 nushell ...$spans | from json
|
|
}
|
|
$env.config = {
|
|
show_banner: false,
|
|
completions: {
|
|
case_sensitive: false #
|
|
quick: true
|
|
partial: true
|
|
algorithm: "fuzzy"
|
|
external: {
|
|
enable: true
|
|
max_results: 100
|
|
completer: $carapace_completer # check 'carapace_completer'
|
|
}
|
|
}
|
|
}
|
|
$env.PATH = ($env.PATH |
|
|
split row (char esep) |
|
|
prepend /home/myuser/.apps |
|
|
append /usr/bin/env
|
|
)
|
|
'';
|
|
shellAliases = {
|
|
cat = "bat --theme ansi";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
programs = {
|
|
fish = {
|
|
enable = true;
|
|
shellAliases = {
|
|
ls = "eza";
|
|
cat = "bat --theme ansi";
|
|
};
|
|
};
|
|
|
|
};
|
|
|
|
# programs.bash = {
|
|
# interactiveShellInit = ''
|
|
# if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
|
# then
|
|
# shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
|
# exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
|
# fi
|
|
# '';
|
|
# };
|
|
|
|
}
|