auto-update-daily-20260202
  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}