{ pkgs, ... }: { # TODO: "bind -s 'set completion-ignore-case on'" programs.bash.enable = true; #programs.bash.enableCompletion = true; programs.bash.shellOptions = [ # Append to history file rather than replacing it. "histappend" # check the window size after each command and, if # necessary, update the values of LINES and COLUMNS. "checkwinsize" # Extended globbing. "extglob" "globstar" # Warn if closing shell with running jobs. "checkjobs" ]; programs.bash.initExtra = '' bind 'set completion-ignore-case on' parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' } export PS1='\[\033[01;32m\]\u@\h\[\033[01;37m\] \[\033[01;34m\]\W\[\033[33m\]$(parse_git_branch)\[\033[01;32m\]\$\[\033[00m\] ' # tldr if command -v tldr >/dev/null; then complete -F _command tldr fi ''; imports = [ ../modules/jump.nix ]; programs.jump.enableBash = true; # TODO: upstream? export in flake? programs.nix-index.enable = true; programs.nix-index-database.comma.enable = true; # via nix-index-database flake #programs.command-not-found.enable = false; # mutex with nix-index programs.fzf.enable = true; # TODO: does this conflict with system-wide setup? programs.eza.enable = true; programs.eza.enableAliases = true; programs.zoxide.enable = true; programs.zoxide.options = [ "--cmd cd --cmd dc" ]; programs.carapace.enable = true; # i can't type home.shellAliases.sl = "eza"; #home.shellAliases.dc = "cd"; programs.direnv.enable = true; programs.direnv.nix-direnv.enable = true; programs.tealdeer.enable = true; programs.tealdeer.settings.updates.auto_update = true; # just use ncdu lol home.shellAliases.dush = "du -shc * | sort -h"; home.shellAliases.dushd = "du -shc * .[!.]?* | sort -h"; home.shellAliases.open = "xdg-open"; home.shellAliases.diff = "diff -u --color"; # eyo home.shellAliases.ip = "ip -br -color"; home.shellAliases.rssh = "ssh -l root"; home.shellAliases.sudo = "sudo "; home.shellAliases.watch = "watch -c "; # parse colors home.shellAliases.xargs = "xargs "; # Be conservative with files # --preserver-root is for GNU versions # do not delete / or prompt if deleting more than 3 files at a time home.shellAliases.rm = "rm -i --preserve-root"; home.shellAliases.mv = "mv -i"; home.shellAliases.cp = "cp -i"; # Preventing changing perms on / home.shellAliases.chown = "chown --preserve-root"; home.shellAliases.chmod = "chmod --preserve-root"; home.shellAliases.chgrp = "chgrp --preserve-root"; home.packages = with pkgs; [ rsync bind.dnsutils # dig dogdns # dog vimv curl wget sshuttle #tldr entr axel aria aria2 xe # xargs alternative sd # sed alternative fd # find alternative silver-searcher # 'ag' ripgrep # 'rg' comby gron jq fx yq # includes xmlq and tomlq fq # binary jq htmlq just # justfile gum sysz du-dust # du alternative duf # df alternative ncdu # Disk usage analyzer with an ncurses interface xplr # tui file explorer aha (pkgs.colorized-logs or unstable.colorized-logs) ]; }