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