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 # Use latest kernel.
15 boot.kernelPackages = pkgs.linuxPackages_latest;
16
17 # Enable networking
18 networking.networkmanager.enable = true;
19
20
21 # Set your time zone.
22 # time.timeZone = "America/New_York";
23 time.timeZone = "Canada/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
59 # Enable sound with pipewire.
60 services.pulseaudio.enable = false;
61
62 security.polkit.enable = true;
63 security.rtkit.enable = true;
64 services.pipewire = {
65 enable = true;
66 alsa.enable = true;
67 alsa.support32Bit = true;
68 pulse.enable = true;
69 # If you want to use JACK applications, uncomment this
70 #jack.enable = true;
71
72 # use the example session manager (no others are packaged yet so this is enabled by default,
73 # no need to redefine it in your config for now)
74 #media-session.enable = true;
75 };
76
77
78 services.udisks2.enable = true;
79 services.tailscale.enable = true;
80
81 # Define a user account. Don't forget to set a password with ‘passwd’.
82 users.groups.storage = { };
83 users.users.sean = {
84 isNormalUser = true;
85 description = "Sean Aye";
86 extraGroups = [
87 "docker"
88 "networkmanager"
89 "wheel"
90 "video"
91 "disk"
92 "storage"
93 "input"
94 ];
95 shell = pkgs.fish;
96 };
97
98
99 programs.fish.enable = true;
100 programs._1password.enable = true;
101 programs._1password-gui = {
102 enable = true;
103 polkitPolicyOwners = [ "sean" ];
104 };
105
106 virtualisation.docker.enable = true;
107
108 # Allow unfree packages
109 nixpkgs.config.allowUnfree = true;
110
111 # List packages installed in system profile. To search, run:
112 # $ nix search wget
113 environment.systemPackages = with pkgs; [
114 wl-clipboard
115 ];
116 environment.variables = {
117 EDITOR = "hx";
118 VISUAL = "hx";
119 SUDO_EDITOR = "hx";
120 };
121}