1{
2 config,
3 lib,
4 pkgs,
5 self,
6 ...
7}: {
8 options.myNixOS.profiles.base.enable = lib.mkEnableOption "base system configuration";
9
10 config = lib.mkIf config.myNixOS.profiles.base.enable {
11 environment = {
12 etc."nixos".source = self;
13
14 systemPackages = with pkgs; [
15 (lib.hiPrio uutils-coreutils-noprefix)
16 wget
17 micro
18 git
19 wget
20 btop
21 ];
22 };
23
24 programs = {
25 dconf.enable = true; # Needed for home-manager
26
27 direnv = {
28 enable = true;
29 nix-direnv.enable = true;
30 silent = true;
31 };
32
33 gnupg.agent = {
34 enable = true;
35 enableSSHSupport = true;
36 };
37
38 nh.enable = true;
39 ssh.knownHosts = config.mySnippets.ssh.knownHosts;
40 };
41
42 networking.networkmanager.enable = true;
43
44 security = {
45 rtkit.enable = true;
46 };
47
48 services = {
49 cachefilesd = {
50 enable = true;
51
52 extraConfig = ''
53 brun 20%
54 bcull 10%
55 bstop 5%
56 '';
57 };
58
59 openssh = {
60 enable = true;
61 openFirewall = true;
62 settings = {
63 PasswordAuthentication = false;
64 PubkeyAuthentication = true;
65 };
66 };
67 };
68
69 system = {
70 configurationRevision = self.rev or self.dirtyRev or null;
71 nixos.tags = ["base"];
72 rebuild.enableNg = true;
73 };
74 };
75}