nixfleet/hmModules/shell/default.nix

170 lines
4.1 KiB
Nix

{
lib,
pkgs,
age,
hostname,
...
}:
{
programs.bat.enable = true;
programs.ranger = {
enable = true;
settings = {
"preview_images" = true;
"preview_images_method" = "sixel";
};
};
programs.fzf.enable = true;
programs.ripgrep.enable = true;
programs.direnv = {
enable = true;
config = {
warn_timeout = "60s"; # default was 5s
};
nix-direnv.enable = true;
};
programs.lsd = {
enable = false;
enableAliases = true;
};
programs.vim.enable = true;
programs.ssh = {
enable = true;
controlMaster = "auto";
};
systemd.user.services.atuind = {
Unit.Description = "Atuin daemon";
Install = {
WantedBy = [ "default.target" ];
};
Service.ExecStart = "${lib.getExe pkgs.atuin} daemon";
};
programs.atuin = {
enable = true;
settings = {
daemon.enabled = true;
auto_sync = true;
sync_frequency = "5m";
sync_address = "http://sisko.fleet:8889";
search_mode = "fuzzy";
style = "compact";
};
};
programs.fish = {
enable = true;
shellInit = lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) ''
export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path})
'';
shellAliases = {
"cat" = "bat";
};
};
# programs.zsh = {
# enable = false; # Playing xswith fish at the moment
# enableAutosuggestions = true;
# enableCompletion = true;
# enableSyntaxHighlighting = true;
# enableVteIntegration = true;
# autocd = true;
# oh-my-zsh = {
# enable = true;
# plugins = [
# "ag"
# "cabal"
# "colored-man-pages"
# "colorize"
# "command-not-found"
# "fzf"
# "git"
# "nomad"
# "pass"
# "python"
# "sudo"
# "terraform"
# "thefuck"
# ];
# };
# plugins = [
# {
# name = "fzf-tab";
# src = pkgs.fetchFromGitHub {
# owner = "Aloxaf";
# repo = "fzf-tab";
# rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9";
# sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w=";
# };
# }
# {
# name = "fzf-tab";
# src = pkgs.fetchFromGitHub {
# owner = "Aloxaf";
# repo = "fzf-tab";
# rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9";
# sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w=";
# };
# }
# {
# name = "fast-syntax-highlighting";
# src = pkgs.fetchFromGitHub {
# owner = "zdharma-continuum";
# repo = "fast-syntax-highlighting";
# rev = "13d7b4e63468307b6dcb2dadf6150818f242cbff";
# sha256 = "sha256-AmsexwVombgVmRvl4O9Kd/WbnVJHPTXETxBv18PDHz4=";
# };
# }
# ];
# shellAliases = {
# "cat" = "bat";
# "em" = "TERM=wezterm emacsclient -nw";
# };
# loginExtra = "[[ -z $DISPLAY && $TTY = /dev/tty1 ]] && exec dbus-run-session Hyprland";
# envExtra = ''
# # [ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' # for Emacs TRAMP mode
# '';
# initExtra = ''
# export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path})
# # Don't enable VIM emulation when in Emacs
# [[ -z $INSIDE_EMACS ]] && source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh
# # When enabling starship, home-manager add an `initExtra` rule to disable it when in Emacs but not with VTerm,
# # since I use also `eat` besides `vterm` the following line is needed
# [[ "$INSIDE_EMACS" =~ "eat" ]] && eval "$(${config.home.profileDirectory}/bin/starship init zsh)"
# '';
# };
home.packages =
with pkgs;
[
thefuck
htop-vim
bottom
dig.dnsutils
lsof
zsh-completions
nix-zsh-completions
comma
carapace # used by nushell
neovim
]
++ (lib.optionals
(builtins.elem hostname [
"kirk"
"picard"
])
[
cntr # TODO probably not best place
]
);
}