me like nix
1{ pkgs, ... }:
2
3{
4
5 nix.settings.experimental-features = [
6 "nix-command"
7 "flakes"
8 ];
9
10 # Bootloader.
11 boot.loader.systemd-boot.enable = true;
12 boot.loader.efi.canTouchEfiVariables = true;
13
14 services.fwupd.enable = true;
15 # Use latest kernel.
16 boot.kernelPackages = pkgs.linuxPackages_latest;
17
18 # Enable networking
19 networking.networkmanager.enable = true;
20
21 # Set your time zone.
22 # time.timeZone = "America/New_York";
23 time.timeZone = "America/Toronto";
24
25 # Select internationalisation properties.
26 i18n.defaultLocale = "en_US.UTF-8";
27
28 i18n.extraLocaleSettings = {
29 LC_ADDRESS = "en_US.UTF-8";
30 LC_IDENTIFICATION = "en_US.UTF-8";
31 LC_MEASUREMENT = "en_US.UTF-8";
32 LC_MONETARY = "en_US.UTF-8";
33 LC_NAME = "en_US.UTF-8";
34 LC_NUMERIC = "en_US.UTF-8";
35 LC_PAPER = "en_US.UTF-8";
36 LC_TELEPHONE = "en_US.UTF-8";
37 LC_TIME = "en_US.UTF-8";
38 };
39
40 programs.niri = {
41 enable = true;
42 package = pkgs.niri;
43 };
44
45 services.greetd = {
46 enable = true;
47 settings = {
48 default_session = {
49 command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd niri-session";
50 user = "greeter";
51 };
52 };
53 };
54
55 # Enable CUPS to print documents.
56 services.printing.enable = true;
57
58 security.polkit.enable = true;
59 security.rtkit.enable = true;
60 services.pipewire = {
61 enable = true;
62 alsa.enable = true;
63 alsa.support32Bit = true;
64 pulse.enable = true;
65 # If you want to use JACK applications, uncomment this
66 #jack.enable = true;
67
68 # use the example session manager (no others are packaged yet so this is enabled by default,
69 # no need to redefine it in your config for now)
70 #media-session.enable = true;
71 };
72
73 services.udisks2.enable = true;
74 services.tailscale.enable = true;
75
76 # Define a user account. Don't forget to set a password with ‘passwd’.
77 users.groups.storage = { };
78 users.users.sean = {
79 isNormalUser = true;
80 description = "Sean Aye";
81 extraGroups = [
82 "docker"
83 "networkmanager"
84 "wheel"
85 "video"
86 "disk"
87 "storage"
88 "input"
89 ];
90 shell = pkgs.fish;
91 };
92
93 programs.fish.enable = true;
94 programs._1password.enable = true;
95 programs._1password-gui = {
96 enable = true;
97 polkitPolicyOwners = [ "sean" ];
98 };
99
100 virtualisation.docker.enable = true;
101
102 # Allow unfree packages
103 nixpkgs.config.allowUnfree = true;
104
105 # List packages installed in system profile. To search, run:
106 # $ nix search wget
107 environment.systemPackages = with pkgs; [
108 wl-clipboard
109 ];
110 environment.variables = {
111 EDITOR = "hx";
112 VISUAL = "hx";
113 SUDO_EDITOR = "hx";
114 };
115}