aboutsummaryrefslogtreecommitdiffstats
path: root/modules/home.legacy/pkgs/default.nix
blob: ddc633c19204caac51808455224aae70bec92cab (plain) (blame)
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
# nixos-config - My current NixOS configuration
#
# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of my nixos-config.
#
# You should have received a copy of the License along with this program.
# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{
  pkgs,
  lib,
  nixosConfig,
  ...
}:
# TODO: Remove this whole file, and move each package to a separate module. <2024-11-16>
with pkgs; let
  Gui = {
    Misc = [
      keepassxc # password manager
    ];
  };

  TuiCli = {
    Misc = [
      killall # kill a application by name
      bc # Smart calculator
      aumo # Automatic mount
      jq # Json parser
    ];

    Task = {
      StartStop = [
        hibernate # Hibernate wrapper that automatically stops all active task
        lock # Same as `hibernate`, but for locking
      ];

      Firefox = [
        # `tskm` handles the integration between Firefox profiles and task
        # contexts
        pkgs.tskm
      ];
    };

    WM = {
      CLITools = [
        wl-clipboard # Command-line copy/paste utilities.
      ];
    };

    Hardware = {
      Storage = [
        # TODO: smartmontools # Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives
      ];

      Battery = [
        battery # Check the battery level
      ];

      # TODO: Also support setting the brightness with multiple backlights <2024-05-24>
      Backlight =
        lib.optional nixosConfig.soispha.laptop.enable
        (
          # Set the brightness level
          brightness.override
          {
            backlightName = nixosConfig.soispha.laptop.backlight;
          }
        );
    };

    SystemUpdate = [
      fupdate # Generic update tool.
      fupdate-sys # System update tool (meant to slot into `fupdate`).
      fupdate-flake # Nix flake update tool (meant to slot into `fupdate`).
    ];

    FileListers = [
      tree # A directory listing program displaying a depth indented list of files
      fd # Simple, fast and user-friendly alternative to find
      ripgrep # A search tool that combines the usability of ag with the raw speed of grep
      file # Show information about a file
    ];

    Programming = {
      GeneralTools = [
        glow # Command-line markdown renderer
      ];
    };
  };
  mapFun = x:
    if builtins.isAttrs x
    then
      if lib.isDerivation x
      then [x]
      else builtins.attrValues x
    else [x];
in {
  config.home.packages =
    []
    ++ (with builtins;
      concatLists
      (concatLists [
        (concatMap mapFun
          (concatMap mapFun
            (concatMap mapFun
              (concatMap mapFun
                (concatMap mapFun
                  (concatMap mapFun
                    (attrValues Gui)))))))

        (concatMap mapFun
          (concatMap mapFun
            (concatMap mapFun
              (concatMap mapFun
                (concatMap mapFun
                  (concatMap mapFun
                    (attrValues TuiCli)))))))
      ]));
}