146 lines
4.6 KiB
Nix
146 lines
4.6 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: {
|
|
programs.bat.enable = true;
|
|
|
|
programs.direnv = {
|
|
enable = true;
|
|
config = {
|
|
warn_timeout = "60s"; # default was 5s
|
|
};
|
|
nix-direnv.enable = true;
|
|
};
|
|
|
|
services.lorri.enable = false; # I'm not using it
|
|
|
|
programs.exa = {
|
|
enable = true;
|
|
enableAliases = true;
|
|
};
|
|
|
|
programs.zoxide.enable = true;
|
|
|
|
programs.zellij.enable = true;
|
|
|
|
programs.fzf.enable = true;
|
|
|
|
programs.vim.enable = true;
|
|
|
|
programs.command-not-found.enable = true;
|
|
|
|
programs.starship = {
|
|
enable = true;
|
|
settings = {
|
|
character = {
|
|
success_symbol = "[λ](bold green)";
|
|
error_symbol = "[λ](bold red)";
|
|
};
|
|
nix_shell = {
|
|
symbol = "❄";
|
|
};
|
|
};
|
|
};
|
|
|
|
# Playing with it sometimes
|
|
programs.nushell = {
|
|
enable = true;
|
|
configFile.text = ''
|
|
let-env config = {
|
|
show_banner: false
|
|
ls: {
|
|
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
|
|
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
|
|
}
|
|
rm: {
|
|
always_trash: true # always act as if -t was given. Can be overridden with -p
|
|
}
|
|
cd: {
|
|
abbreviations: true # allows `cd s/o/f` to expand to `cd some/other/folder`
|
|
}
|
|
table: {
|
|
mode: compact # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
|
|
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
|
|
trim: {
|
|
methodology: wrapping # wrapping or truncating
|
|
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
|
|
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
|
|
}
|
|
}
|
|
history: {
|
|
max_size: 10000 # Session has to be reloaded for this to take effect
|
|
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
|
|
file_format: "plaintext" # "sqlite" or "plaintext"
|
|
}
|
|
completions: {
|
|
case_sensitive: false # set to true to enable case-sensitive completions
|
|
quick: true # set this to false to prevent auto-selecting completions when only one remains
|
|
partial: true # set this to false to prevent partial filling of the prompt
|
|
algorithm: "prefix" # prefix or fuzzy
|
|
external: {
|
|
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow
|
|
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
|
|
completer: null # check 'carapace_completer' above as an example
|
|
}
|
|
}
|
|
filesize: {
|
|
metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard)
|
|
format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, zb, zib, auto
|
|
}
|
|
}
|
|
'';
|
|
};
|
|
|
|
programs.zsh = {
|
|
enable = true;
|
|
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"
|
|
];
|
|
};
|
|
shellAliases = {
|
|
"cat" = "bat";
|
|
"emw" = "emacsclient -c";
|
|
"emnw" = "emacsclient -c -nw";
|
|
"pass-clone" = "[ -d .password-store ] && echo 'Password store archive already exists' || git clone git@git.sr.ht:~zrsk/pass ~/.password-store";
|
|
"getpass" = "pass show $(find .password-store/ -name \"*.gpg\" | sed \"s/\\.password-store\\/\\(.*\\)\\.gpg$/\\1/g\" | fzf) | wl-copy; ((sleep 60 && wl-copy --clear) &)";
|
|
"n" = "nom";
|
|
};
|
|
loginExtra = "[[ -z $DISPLAY && $TTY = /dev/tty1 ]] && exec sway";
|
|
envExtra = ''
|
|
[ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' # for Emacs TRAMP mode
|
|
'';
|
|
initExtra = ''
|
|
[[ -z $INSIDE_EMACS ]] && source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh
|
|
'';
|
|
};
|
|
|
|
home.packages = with pkgs; [
|
|
thefuck
|
|
htop-vim
|
|
dig.dnsutils
|
|
zsh-completions
|
|
nix-zsh-completions
|
|
# nom # FIXME disable on aarch64-linux, breaks everything :(
|
|
];
|
|
}
|