summaryrefslogtreecommitdiff
path: root/darwin/home.nix
blob: ffed46f944e373ae3b2dc82cece636304ced3540 (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
{ config, pkgs, ... }:

{
  home.username = "shubh";
  home.homeDirectory = "/Users/shubh";

  # You should not change this value, even if you update Home Manager. If you do
  # want to update the value, then make sure to first check the Home Manager
  # release notes.
  home.stateVersion = "23.05";

  home.packages = with pkgs; [
    git
    unzip
    wget
    gnupg
    pass
    tmux
    fzf
    docker
    neovim
    nmap
    lf
    pinentry_mac
    postgresql
    docker
    kubectl
    kubelogin-oidc
    terraform
    k9s
    kubernetes-helm
    python38
    # gui
    zoom-us
    slack
  ];

  home.file = {
    ".gnupg/gpg-agent.conf" = {
      text = ''
      pinentry-program ${pkgs.pinentry_mac}/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac
      '';
    };
  };

  home.sessionVariables = {
    PATH = "$PATH:$HOME/.bin";
    VISUAL = "nvim";
    MANPAGER = "nvim +Man!";
  };

  programs.home-manager.enable = true;
  programs.zsh = {
    enable = true;
    enableCompletion = true;
    shellAliases = {
      ll = "ls -l";
      v = "nvim";
      o = "xdg-open";
      t = "tmux";
      f = "lf";
    };
    oh-my-zsh = {
      enable = true;
      plugins = [ "git" "kubectl" "sudo" "terraform" "kops" ];
      theme = "robbyrussell";
    };
  };
  programs.fzf = {
    enable = true;
    enableZshIntegration = true;
    defaultOptions = [ "--height 40%" "--layout=reverse" "--border" ];
  };
  programs.git = {
    enable = true;
    userEmail = "ssaini@fispan.com";
    userName = "Shubham Saini";
    signing = {
      key = "E0404DDE4BCF9DB5";
      signByDefault = true;
    };
  };
  programs.lf = {
    enable = true;
    settings = {
      shell = "sh";
      icons = true;
      drawbox = true;
      scrolloff = 10;
      shellopts = "-eu";
    };
    commands = {
      extract = ''
        %{{
          set -f
          case $f in
              *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
              *.tar.gz|*.tgz) tar xzvf $f;;
              *.tar.xz|*.txz) tar xJvf $f;;
              *.zip) unzip $f;;
              *.rar) unrar x $f;;
              *.7z) 7z x $f;;
          esac
        }}
      '';
      open = ''
        %{{
          case $(file --mime-type -Lb $f) in
              text/*) lf -remote "send $id \$$VISUAL \$fx";;
              *) for f in $fx; do $OPENER $f > /dev/null 2> /dev/null & done;;
          esac
        }}
      '';
    };
    keybindings = {
      "<enter>" = "shell";
      "." = "set hidden!";
    };
  };
}