summaryrefslogtreecommitdiff
path: root/home-modules/apps/desktop/default.nix
blob: a732dedf6a3629a05087a157d57a19b47cc96753 (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
{
  lib,
  pkgs,
  config,
  hostconfig,
  ...
}:
let
  cfg = config.homeapps.presets;
in
{
  imports = [
    ./floorp.nix
  ];

  config = lib.mkIf hostconfig.addons.desktop.enable or false (
    lib.mkMerge [
      (lib.mkIf cfg.base.enable {
        home.packages = with pkgs; [
          # Base
          evince
          kitty
          mpv
          #Theme
          qt6Packages.qt6ct
          kdePackages.qtstyleplugin-kvantum
          (catppuccin-kvantum.override {
            accent = "pink";
            variant = "mocha";
          })
        ];
        # Use fcitx
        i18n.inputMethod = {
          type = "fcitx5";
          enable = true;
          fcitx5 = {
            waylandFrontend = true;
            addons = with pkgs; [
              fcitx5-gtk
              fcitx5-lua
              fcitx5-mozc
              fcitx5-table-other
              fcitx5-gtk
            ];
          };
        };

        # Install the theme for fcitx
        home.file."/.local/share/fcitx5/themes".source = "${pkgs.catppuccin-fcitx5}/share/fcitx5/themes";
      })
      (lib.mkIf cfg.email.enable {
        home.packages = with pkgs; [
          thunderbird
        ];
      })
      (lib.mkIf cfg.comms.enable {
        home.packages = with pkgs; [
          element-desktop
          vesktop
        ];
      })
      (lib.mkIf cfg.utils.enable {
        home.packages = with pkgs; [
          kdePackages.filelight
          qalculate-qt
          gparted
        ];
      })
      (lib.mkIf cfg.note-taking.enable {
        home.packages = with pkgs; [ 
          obsidian 
          kdePackages.kdepim-runtime
          ] ++ (with pkgs.kdePackages; [ 
          zanshin 
          kdepim-runtime 
          akonadi-calendar
        ]);
        # Todo force synthing to be on here
      })
      (lib.mkIf cfg.art.enable {
        home.packages = with pkgs; [
          krita
          inkscape
        ];
      })
      (lib.mkIf cfg.browser.enable {
        home.packages = with pkgs; [
          librewolf
        ];
      })
      (lib.mkIf cfg.work.enable {
        home.packages = with pkgs; [
          libreoffice-qt6-fresh
          zotero
        ];
      })
      (lib.mkIf cfg.dev.enable {
        home.packages = with pkgs; [
          hugo
          wireshark-qt
        ];
      })
      (lib.mkIf cfg.connectivity.enable {
        home.packages = with pkgs; [
          kdePackages.kdeconnect-kde
          eduvpn-client
        ];
        services.syncthing = {
          tray = {
            enable = true;
            command = "syncthingtray --wait";
          };
        };
      })
      (lib.mkIf cfg.multimedia.enable {
        home.packages = with pkgs; [
          ani-cli
          vlc
          # Spotify (The proprietary frontend)
          riff
        ];
      })
      (lib.mkIf cfg.games.enable {
        home.packages = with pkgs; [
          # Games
          prismlauncher
          openttd
          anki-bin
        ];
      })
    ]
  );
}