aboutsummaryrefslogtreecommitdiff
path: root/hosts/underworld/home.nix
blob: 8c30aefc2006460b6a6490f92dea996d5fe8c930 (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
{
  flakeRoot,
  inputs,
  pkgs,
  config,
  ...
}:
{
  home-manager = {
    useGlobalPkgs = true;
    useUserPackages = true;
    sharedModules = [ { programs.fish.enable = true; } ];
    extraSpecialArgs = {
      inherit inputs;
    };
  };

  home-manager.users.osiris = {
    imports = [
      (flakeRoot + /share/cfg)
      (flakeRoot + /share/home/minimal.nix)
      (flakeRoot + /share/home/dev-stuff.nix)
      (flakeRoot + /share/home/shell.nix)
      (flakeRoot + /share/home/gui-tools.nix)
      (flakeRoot + /share/home/rbw.nix)
      # (flakeRoot + /share/home/gaming.nix)
      (flakeRoot + /share/home/niri.nix)
    ];

    programs.tofi.enable = true;
    home.packages = [
      pkgs.kdePackages.kdenlive
    ]
    ++ builtins.attrValues {
      inherit (pkgs)
        teams-for-linux
        blender
        gnome-clocks
        seer
        anki
        obsidian
        spotify
        zathura # document reader
        ;
    };

    xdg = {
      systemDirs.data =
        let
          gds = pkgs.gsettings-desktop-schemas;
          gtk3 = pkgs.gtk3;
        in
        [
          "${gds}/share/gsettings-schemas/${gds.name}"
          "${gtk3}/share/gsettings-schemas/${gtk3.name}"
        ];
      userDirs =
        let
          home = config.home-manager.users.osiris.home.homeDirectory;
          annex = "${home}/Annex";
        in
        {
          enable = true;
          setSessionVariables = true;
          createDirectories = true;

          # Disable dirs that I don't use
          desktop = null;
          publicShare = null;
          templates = null;
          pictures = "${annex}/Pictures";
          music = "${annex}/Music";
          documents = "${annex}/Documents";
          download = "${home}/Downloads";
        };
      portal.xdgOpenUsePortal = true;
    };

    systemd.user.services = {
      planine-miran-postgres-ssh-tunnel = {
        Unit = {
          Description = "SSH Tunnel to PostgreSQL on miran@planine.hr";
          After = "network-online.target";
          Wants = "network-online.target";
        };
        Service = {
          Type = "simple";
          ExecStart = "${pkgs.openssh}/bin/ssh -vvv -N -L 54332:localhost:54332 miran@planine.hr";
          Restart = "on-failure";
          RestartSec = 10;
        };
      };
    };

    home.stateVersion = "23.11";
  };

  home-manager.users.root.home.stateVersion = "23.11";
}