summaryrefslogtreecommitdiffstats
path: root/common/commandline.nix
blob: 4c7c12814c9e79762654a63bd2f33d0d183683a7 (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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
inputs:

{ config, pkgs, lib, ... }:

with inputs.self.lib.theme;
let
  dominantEscapeCode = fgEscapeCode config.theme.colors.dominant;
  bgDominantEscapeCode = bgEscapeCode config.theme.colors.dominant;
  backgroundEscapeCode = fgEscapeCode config.theme.colors.background;
in
{
  imports = [
    (import ./commandline/dircolors.nix inputs)
    (import ./commandline/git.nix inputs)
    (import ./commandline/htop.nix inputs)
    (import ./commandline/tmux.nix inputs)
    (import ./commandline/zsh.nix inputs)
  ];

  console = {
    packages = with pkgs; [ terminus_font ];
    font = "ter-d22n";
    colors = [
      "282a2e"
      "a54242"
      "8c9440"
      "de935f"
      "5f819d"
      "85678f"
      "5e8d87"
      "707880"
      "373b41"
      "cc6666"
      "b5bd68"
      "f0c674"
      "81a2be"
      "b294bb"
      "8abeb7"
      "c5c8c6"
    ];
    keyMap = "fr";
  };

  environment.shellAliases = {
    ll = "ls -l";
    e = "\${EDITOR}";
    cpr = "${pkgs.rsync}/bin/rsync -ah --inplace --info=progress2";
  };

  programs.bash.enableCompletion = true;

  programs.less = {
    envVariables = {
      LESS = "-W -z-4 -R -J";
      LESS_TERMCAP_mb = dominantEscapeCode;
      LESS_TERMCAP_md = dominantEscapeCode;
      LESS_TERMCAP_so =
        bgDominantEscapeCode + backgroundEscapeCode + "$(tput bold)";
    };
  };

  security.sudo.extraConfig =
    let
      lectureFile = builtins.toFile "sudoers.lecture" ''
        
             ${dominantEscapeCode}"Bee" careful    __
               ${dominantEscapeCode}with sudo!    // \
                             \\_/ //
           '''-.._.-'''-.._.. -(||)(')
                             ''''

      '';
    in
    ''
      Defaults lecture = always
      Defaults lecture_file = "${lectureFile}"
    '';

  home-manager.users.minijackson = { ... }: {
    programs.bash.enable = true;

    programs.bat = {
      enable = true;
      config = {
        theme = "TwoDark";
      };
    };

    programs.pazi.enable = true;

    programs.starship = {
      enable = true;
      enableZshIntegration = false;

      settings = {
        character.symbol = ">";
        directory = {
          fish_style_pwd_dir_length = 2;
          style = "bold blue";
        };
        git_branch.symbol = "branch ";
        git_status = {
          ahead = "^";
          behind = "v";
          deleted = "x";
        };
        jobs.symbol = "+ ";
        nix_shell.style = "bold blue";
        package = {
          disabled = true;
          style = "bold green";
          symbol = "version ";
        };
        rust = {
          style = "bold dimmed yellow";
          symbol = "rust ";
        };
      };
    };
  };

  home-manager.users.root = { ... }: {
    programs.bash.enable = true;
    programs.pazi = lib.mkDefault config.home-manager.users.minijackson.programs.pazi;
    programs.bat = lib.mkDefault config.home-manager.users.minijackson.programs.bat;
  };
}