flake-update-20260201
1{
2 desktop,
3 config,
4 pkgs,
5 lib,
6 ...
7}:
8{
9 imports = [
10 (./. + "/${desktop}.nix")
11
12 ../programs/nix-ld.nix
13 ../services/pipewire.nix
14 ../hardware/yubikey.nix
15 ];
16 # Enable Plymouth and surpress some logs by default.
17 boot = {
18 initrd.systemd.enable = true;
19 plymouth.enable = true;
20 kernelParams = [
21 # The 'splash' arg is included by the plymouth option
22 "quiet"
23 "loglevel=3"
24 "rd.udev.log_priority=3"
25 "vt.global_cursor_default=0"
26 ];
27 };
28
29 hardware.graphics.enable = true;
30
31 # Enable location services
32 location.provider = "geoclue2";
33
34 environment.systemPackages = with pkgs; [
35 bat # cat
36 cyme # lsusb
37 dig
38 eza # ls
39 fd # find
40 duf # df
41 ripgrep
42 desktop-file-utils
43 ];
44
45 fonts = {
46 fontDir.enable = true;
47 enableGhostscriptFonts = true;
48 packages = with pkgs; [
49 # cascadia-code
50 corefonts
51 dejavu_fonts
52 # emojione
53 feh
54 # fira
55 # fira-code
56 # fira-code-symbols
57 # fira-mono
58 font-awesome
59 go-font
60 hack-font
61 # inconsolata
62 jetbrains-mono
63 liberation_ttf
64 nerd-fonts.jetbrains-mono
65 # nerd-fonts.inconsolata
66 # nerd-fonts.fira-code
67 # nerd-fonts.fira-mono
68 # nerd-fonts.caskaydia-cove
69 # nerd-fonts.caskaydia-mono
70 nerd-fonts.overpass
71 nerd-fonts.ubuntu
72 nerd-fonts.ubuntu-mono
73 nerd-fonts.ubuntu-sans
74 noto-fonts
75 noto-fonts-cjk-sans
76 noto-fonts-color-emoji
77 overpass
78 symbola
79 twemoji-color-font
80 ubuntu-classic
81 unifont
82 recursive
83 # Maple Mono (Ligature TTF unhinted)
84 maple-mono.truetype
85 # Maple Mono NF (Ligature unhinted)
86 maple-mono.NF-unhinted
87 # Maple Mono NF CN (Ligature unhinted)
88 maple-mono.NF-CN-unhinted
89 ];
90
91 # Use fonts specified by user rather than default ones
92 enableDefaultPackages = false;
93
94 # TODO configure thoses
95 # fontconfig = {
96 # enable = true;
97 # defaultFonts = {
98 # serif = [
99 # "${theme.fonts.default.name}"
100 # "${theme.fonts.emoji.name}"
101 # ];
102 # sansSerif = [
103 # "${theme.fonts.default.name}"
104 # "${theme.fonts.emoji.name}"
105 # ];
106 # monospace = [ "${theme.fonts.monospace.name}" ];
107 # emoji = [ "${theme.fonts.emoji.name}" ];
108 # };
109 # };
110 };
111
112 services = {
113 envfs.enable = true;
114 power-profiles-daemon.enable = true;
115 upower.enable = true;
116 udisks2.enable = true;
117
118 # Make `/run/user/X` larger0
119 logind.settings.Login = {
120 RuntimeDirectorySize = "20%";
121 };
122 };
123
124 # Clear out user's download weekly
125 systemd.tmpfiles.rules =
126 let
127 mkTmpDir = n: u: "d ${u.home}/desktop/downloads 0700 ${n} ${u.group} 7d";
128 in
129 lib.mapAttrsToList mkTmpDir (lib.filterAttrs (_: u: u.isNormalUser) config.users.extraUsers);
130}