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)))))))
]));
}
|