summaryrefslogtreecommitdiff
path: root/home.nix
blob: 1c90dde87128f6f13146450e8f9dc4870d2e5007 (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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
{
  flake,
  config,
  pkgs,
  home-manager,
  ...
}: {
  # Found this here: nix-community.github.io  configuration example

  home.username = "mike";
  home.homeDirectory = "/home/mike";
  home.stateVersion = "22.05";
  programs.home-manager.enable = true;

  home.packages = with pkgs; [
    docker
    kubectl
    k9s

    htop
    fortune
    vim
    stow
    (nerdfonts.override {fonts = ["FiraCode"];})
    ripgrep
    inotify-tools

    firefox-wayland

    swaylock
    swayidle
    wl-clipboard
    mako
    wofi
    waybar
  ];

  programs.git = {
    enable = true;
    userName = "Mike Vink";
    userEmail = "mike1994vink@gmail.com";
  };

  programs.alacritty = {
    enable = true;
    settings = {
      env.TERM = "alacritty";
      font = {
        normal = {
          family = "FiraCode Nerd Font";
          style = "Regular";
        };
      };
    };
  };

  xsession = {
    enable = true;
    windowManager.spectrwm = {
      enable = true;
      programs = {
        term = "alacritty";
        search = "dmenu -ip -p 'Window name/id:'";
        browser = "firefox";
      };
      bindings = {
        browser = "Mod+w";
        term = "Mod+Return";
        restart = "Mod+Shift+r";
        quit = "Mod+Shift+q";
      };
      settings = {
        modkey = "Mod4";
        workspace_limit = 5;
        focus_mode = "manual";
        focus_close = "next";
      };
    };
  };

  home.activation = {
  clearHotpotCache = home-manager.lib.hm.dag.entryAfter ["writeBoundary"] ''
    HOTPOT_CACHE="${config.xdg.cacheHome}/nvim/hotpot"
    if [[ -d "$HOTPOT_CACHE" ]]; then
      $DRY_RUN_CMD rm -rf "$VERBOSE_ARG" "$HOTPOT_CACHE"
    fi
  '';
};
  programs.neovim = {
    enable = true;
    package = pkgs.neovim-unwrapped;
    viAlias = true;
    vimAlias = true;
    extraPackages = with pkgs; [
      fennel
      sumneko-lua-language-server
      pyright
      gopls
      yaml-language-server
      alejandra
      statix
    ];
    extraConfig = "
lua <<LUA
Flake = {
    lua_language_server = [[${pkgs.sumneko-lua-language-server}]],
    bash = [[${pkgs.bashInteractive}/bin/bash]]
}
vim.opt.runtimepath:append({ [[~/dotnix/neovim]], [[~/dotnix/neovim/lua]],  [[~/dotnix/neovim/fnl]]})
package.path = [[/home/mike/dotnix/?/init.lua;]] .. [[/home/mike/dotnix/?/?;]] .. [[/home/mike/.cache/nvim/hotpot/hotpot.nvim/lua/?/init.lua;]] .. package.path
require'neovim'
LUA
      ";
    plugins = with pkgs.vimPlugins; [
      # highlighting
      (nvim-treesitter.withPlugins (plugins: pkgs.tree-sitter.allGrammars))
      nvim-ts-rainbow
      playground
      gruvbox-material

      # external
      vim-dirvish
      vim-fugitive
      vim-oscyank
      firvish-nvim

      # moving around
      marks-nvim

      # Coding
      nvim-lspconfig
      nvim-dap
      nvim-dap-ui
      luasnip
      trouble-nvim
      null-ls-nvim
      plenary-nvim
      nlua-nvim
      lsp_signature-nvim
      vim-test

      # cmp
      nvim-cmp
      cmp-nvim-lsp
      cmp-buffer
      cmp-path
      cmp_luasnip

      # trying out lisp
      conjure
      vim-racket
      nvim-parinfer
      hotpot-nvim
      cmp-conjure
    ];
  };
}