aboutsummaryrefslogtreecommitdiff
path: root/programs/bash.nix
blob: 9ad3217f1b863db1dc895ba32fcb9c89c8531757 (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
{ 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";
      n = "j";

      # 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 = {

      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
      eval "$(direnv hook bash)"
      export PATH=$PATH:"$HOME/scripts"
      export PROMPT_COMMAND="tmux refresh-client -S";
      export PS1="\n\001\e[0;36m\002λ\001\e[0m\002 ";
      export PS2="> ";

    '';

  };
}