summaryrefslogtreecommitdiff
path: root/home-manager/default.nix
blob: 3dfcaf934974c57b4e12c1b1e7011bfaa18f39e7 (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
{ config, pkgs, ... }:
# let
#   home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-23.05.tar.gz";
#   unstable = import <nixpkgs-unstable>{};
# in
{
  imports = [
    ../modules/home-manager/starship.nix
    ../modules/home-manager/btop.nix
    ../modules/home-manager/helix.nix
    ../modules/home-manager/shell.nix
    ../modules/home-manager/bat.nix
  ];

  nixpkgs = {
    # texlive.combined.scheme-medium;
    # system = "x84_64-linux";
    config.allowUnfree = true;
  };

  # home-manager.users.defin= {
    home = {
      # Home Manager needs a bit of information about you and the paths it should
      # manage.
      username = "defin";
      homeDirectory = "/home/defin";

      # This value determines the Home Manager release that your configuration is
      # compatible with. This helps avoid breakage when a new Home Manager release
      # introduces backwards incompatible changes.
      #
      # 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.
      stateVersion = "23.11"; # Please read the comment before changing.

      # The home.packages option allows you to install Nix packages into your
      # environment.
      packages = with pkgs; [
        # # It is sometimes useful to fine-tune packages, for example, by applying
        # # overrides. You can do that directly here, just don't forget the
        # # parentheses. Maybe you want to install Nerd Fonts with a limited number of
        # # fonts?
        # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
        pass
        btop # better top
        starship
        eza # better ls
        zoxide # better cd
        broot # tree view files
        procs # process view
        gnupg
        #helix plugins
        # vadimcn.vscode-lldb
        # yaml-language-server
        # typescript-language-server
        # rust-analyzer
        # solargraph
        # clangd
        # vscode-json-language-server
        # lua-language-server
        # marksman
      ];

      # Home Manager is pretty good at managing dotfiles. The primary way to manage
      # plain files is through 'home.file'.
      file = {
        # # Building this configuration will create a copy of 'dotfiles/screenrc' in
        # # the Nix store. Activating the configuration will then make '~/.screenrc' a
        # # symlink to the Nix store copy.
        # ".screenrc".source = dotfiles/screenrc;

        # # You can also set the file content immediately.
        # ".gradle/gradle.properties".text = ''
        #   org.gradle.console=verbose
        #   org.gradle.daemon.idletimeout=3600000
        # '';
      };

    
      # You can also manage environment variables but you will have to manually
      # source
      #
      #  ~/.nix-profile/etc/profile.d/hm-session-vars.sh
      #
      # or
      #
      #  /etc/profiles/per-user/defin/etc/profile.d/hm-session-vars.sh
      #
      # if you don't want to manage your shell through Home Manager.
      sessionVariables = {
        EDITOR = "hx";
      };
    };

    programs = {
        ssh.matchBlocks = {
          serverAliveCountMax = 6;
          serverAliveInterval = 30;
          port  = 2200;
          "git.wormcar.gay" = {
            user = "devinf";
            host = "git.wormcar.gay";
            port = 2200;
          };
        };
        git = {
          enable = true;
          userName = "Devin Finlinson";
          userEmail = "devin.finlinson@pm.me";
          includes = [{path = "~/.gitconfig.local";}];
          extraConfig = {
            core = {editor = "hx";};
            pull = {rebase = false;};
          };
        };

      # Let Home Manager install and manage itself.
      # home-manager.enable = true;
    };
}