aboutsummaryrefslogtreecommitdiff
path: root/home-manager/shells/bash.nix
blob: cd5f51d4ed0de0bcf4ca4713a742aa461d7fd7ee (plain) (blame)
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
{ pkgs, ... } :
{
    programs.bash = {
        enable = true;
        enableCompletion = true;
        initExtra = ''
tabs 4
clear
PF_INFO="ascii title os kernel uptime memory shell wm" pfetch

# Fancy prompt
export PROMPT_COMMAND=__prompt_command
__prompt_command() {
    local exit="$?"
    PS1=""
    local reset='\[\e[0m\]'
    local white='\[\e[97m\]'
    local blue='\[\e[38;5;25m\]'
    local bgblue='\[\e[48;5;25m\]'
    local green='\[\e[38;5;34m\]'
    local bggreen='\[\e[48;5;34m\]'
    local gray='\[\e[38;5;238m\]'
    local bggray='\[\e[48;5;238m\]'
    local red='\[\e[38;5;124m\]'
    local bgred='\[\e[48;5;124m\]'

    # Add user
    PS1+="$white$bgblue \u$blue"
    # Add SHLVL (shell depth)
    if [ $SHLVL -gt 2 ]; then
    	PS1+="$bggreen$white $(($SHLVL - 2))$reset$green"
    fi
    # Add dir
    PS1+="$bggray$white \w$reset$gray"
        
    if [ $exit != 0 ]; then
    	# Change end color
        #PS1+="$bgred$white \w$reset$red"
        # Add exit code
        PS1+="$bgred$white $exit$reset$red"
    else
    	# Change end color
        #PS1+="$bggray$white \w$reset$gray"
        # Add end cap
        PS1+=""
    fi
    PS1+="$reset "
}
# Powerline prompt
#export PS1='\[\e[48;5;25;38;5;189m\] \u \[\e[48;5;238;38;5;25m\] \[\e[48;5;238;38;5;189m\]\w      \[\e[0m\]\[\e[38;5;238m\]\[\e[0m\] '

# Multiline prompt
#export PS1="\[\e[32m\]╭──\[\e[31m\](\[\e[34m\]\u\[\e[33m\]@\[\e[34m\]\h\[\e[31m\])\[\e[32m\]-\[\e[31m\](\[\e[34m\]\w\[\e[31m\])\[\e[32m\]-\[\e[31m\](\[\e[34m\]\d\[\e[31m\])
#\[\e[32m\]╰\[\e[0m\] "
'';
        shellAliases = {
            cm = "cmatrix -absu 2";
            pipes = "pipes.sh -KR -p 3 -t3 -c 1 -c 2 -c 3 -c 4 -c 5 -c 6";
            cl = "clear";
            ls = "lsd";
            la = "lsd -a";
            ll = "lsd -al";
            tree = "lsd --tree";
            pathfindsaver = "while sleep 1; do pathfind -f; done";
            qalc = "qalc -s 'varunits 0' -s 'angle 2'";

            flake-rebuild = "nixos-rebuild switch --flake ~/nixos-configuration";
        };
    };

    programs.zoxide = {
        enable = true;
        enableBashIntegration = true;
        options = [ "--cmd cd" ];
    };
    
    home.packages = with pkgs; [
        zoxide
        pfetch
        lsd
        libqalculate
    ];
}