{ lib, pkgs, ... }: { programs.zsh = { enable = true; defaultKeymap = lib.mkDefault "viins"; }; programs.bash = { enable = true; bashrcExtra = '' set -o vi ''; }; programs.thefuck.enable = true; # a better cat programs.bat = { enable = true; config.theme = "gruvbox-light"; }; home.shellAliases.cat = "${pkgs.bat}/bin/bat --theme='gruvbox-light'"; home.shellAliases.llt = "${pkgs.eza}/bin/exa -a --tree"; # use z instead of cd # use zi to fuzzy search through all registered directories programs.zoxide = { enable = true; enableZshIntegration = true; }; # provide better `Ctrl+r` command in terminal programs.atuin = { enable = true; enableBashIntegration = true; enableZshIntegration = true; package = pkgs.atuin.overrideAttrs (_old: { # as cursed as doing mitigations=off in the kernel command line patches = [ ./0001-make-atuin-on-zfs-fast-again.patch ]; }); settings = { auto_sync = true; sync_frequency = "5m"; sync_address = "http://chungus.private:8888"; search_mode = "fuzzy"; style = "full"; inline_height = 20; # With workspace filtering enabled, Atuin will filter for commands executed # in any directory within a git repository tree. workspaces = true; }; }; }