aboutsummaryrefslogtreecommitdiff
path: root/programs/bash.nix
blob: cbba2dea819d7b722ca5dceb0e4fa1306141b427 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
{ config
, pkgs
, ...
}:

{
  programs.bash = {
    enable = true;
    historyControl = [ "erasedups" ];
    historyFile = "\$HOME/.bash_history";
    historyFileSize = 2000;
    historyIgnore = [ "ls" "exit" "kill" ];
    historySize = 1000;
    shellAliases = {
      "..." = "cd -- ../..";
      grep = "grep --color=auto";
      l = "ls -CF";
      la = "ls -A";
      ll = "ls -alF";
      ls = "ls -F --color=always";
      o = "xdg-open";
      rless = "less -r";
      tmux = "tmux -u";
      tree = "tree -C";
      vim = "nvim";
      tb = "nc termbin.com 9999";

      # git aliases
      gb = "git branch -v";
      gc = "git commit --verbose";
      gd = "git diff --minimal";
      ggp = "git push";
      gl = "git log -p --abbrev-commit --pretty=medium";
      glo = "git log --pretty=oneline --abbrev-commit";
      gst = "git status --short";
    };
    shellOptions = [
      "histappend"
      "autocd"
      "globstar"
      "checkwinsize"
      "cdspell"
      "dirspell"
      "expand_aliases"
      "dotglob"
      "gnu_errfmt"
      "histreedit"
      "nocasematch"
    ];
    sessionVariables = {
      PROMPT_CHAR = "λ";
      PROMPT_CHAR_COLOR = "cyan";
      PROMPT_CHAR_ROOT = "#";
      PROMPT_CHAR_ROOT_COLOR = "magenta";
      SHORTEN_CWD = 1;
      CWD_COLOR = "white";
      EXPAND_TILDE = 0;
      GIT_CLEAN = "·";
      GIT_CLEAN_COLOR = "green";
      GIT_WT_MODIFIED = "×";
      GIT_WT_MODIFIED_COLOR = "red";
      GIT_INDEX_MODIFIED = "±";
      GIT_INDEX_MODIFIED_COLOR = "yellow";
      BRANCH_COLOR = "bright black";
      COMMIT_COLOR = "green";
      PF_INFO = "ascii title os kernel uptime pkgs shell ";
      PF_SEP = " ";
      PF_COL1 = 7;
      PF_COL2 = 7;
      PF_COL3 = 6;
      PF_ALIGN = "9";
      PF_ASCII = "nixos";
      _JAVA_AWT_WM_NONREPARENTING = 1;
      TERM = "xterm-256color-italic";
      EDITOR = "nvim";
      MANPAGER = "nvim +Man!";
      GPG_TTY = "\$(tty)";
    };
    initExtra = ''
      [ -f $HOME/.github ] && . $HOME/.github
      [ -f ~/.bash_aliases ] && . ~/.bash_aliases
      [ -f ~/.fzf.bash ] && source ~/.fzf.bash
      eval "$(direnv hook bash)"
      export PS1='\n$(pista)'
      export PATH=$PATH:"$HOME/scripts"
    '';
  };
}