me like nix
1{ ... }: {
2 flake.modules.nixos.base =
3 { pkgs, ... }:
4 {
5 # Bluetooth
6 hardware.bluetooth.enable = true;
7 hardware.bluetooth.powerOnBoot = true;
8 services.blueman.enable = true;
9
10 # Bootloader
11 boot.loader.systemd-boot.enable = true;
12 boot.loader.systemd-boot.configurationLimit = 10;
13 boot.loader.efi.canTouchEfiVariables = true;
14
15 # Firmware updates
16 services.fwupd.enable = true;
17
18 # Latest kernel
19 boot.kernelPackages = pkgs.linuxPackages_latest;
20 boot.kernel.sysctl."kernel.task_delayacct" = 1;
21
22 # Networking
23 networking.networkmanager.enable = true;
24 systemd.services.NetworkManager-wait-online.enable = false;
25
26 # Timezone & locale
27 time.timeZone = "America/Toronto";
28 i18n.defaultLocale = "en_US.UTF-8";
29 i18n.extraLocaleSettings = {
30 LC_ADDRESS = "en_US.UTF-8";
31 LC_IDENTIFICATION = "en_US.UTF-8";
32 LC_MEASUREMENT = "en_US.UTF-8";
33 LC_MONETARY = "en_US.UTF-8";
34 LC_NAME = "en_US.UTF-8";
35 LC_NUMERIC = "en_US.UTF-8";
36 LC_PAPER = "en_US.UTF-8";
37 LC_TELEPHONE = "en_US.UTF-8";
38 LC_TIME = "en_US.UTF-8";
39 };
40
41 # Printing
42 services.printing.enable = true;
43
44 # Audio
45 security.rtkit.enable = true;
46 services.pipewire = {
47 enable = true;
48 alsa.enable = true;
49 alsa.support32Bit = true;
50 pulse.enable = true;
51 };
52
53 # Services
54 services.power-profiles-daemon.enable = true;
55 services.udisks2.enable = true;
56 services.upower.enable = true;
57 services.tailscale.enable = true;
58
59 # System packages
60 environment.systemPackages = with pkgs; [
61 wl-clipboard
62 ];
63 environment.variables = {
64 EDITOR = "hx";
65 VISUAL = "hx";
66 SUDO_EDITOR = "hx";
67 };
68 };
69}