me like nix
1{ config, pkgs, ... }:
2
3{
4 imports =
5 [ # Include the results of the hardware scan.
6 ./hardware-configuration.nix
7 # home-manager is now imported via the flake's modules list
8 ];
9
10 nix.settings.experimental-features = [ "nix-command" "flakes" ];
11
12 # Bootloader.
13 boot.loader.systemd-boot.enable = true;
14 boot.loader.efi.canTouchEfiVariables = true;
15
16 # Use latest kernel.
17 boot.kernelPackages = pkgs.linuxPackages_latest;
18
19 networking.hostName = "nixos"; # Define your hostname.
20 # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
21
22 # Configure network proxy if necessary
23 # networking.proxy.default = "http://user:password@proxy:port/";
24 # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
25
26 # Enable networking
27 networking.networkmanager.enable = true;
28
29 # Set your time zone.
30 time.timeZone = "America/New_York";
31
32 # Select internationalisation properties.
33 i18n.defaultLocale = "en_US.UTF-8";
34
35 i18n.extraLocaleSettings = {
36 LC_ADDRESS = "en_US.UTF-8";
37 LC_IDENTIFICATION = "en_US.UTF-8";
38 LC_MEASUREMENT = "en_US.UTF-8";
39 LC_MONETARY = "en_US.UTF-8";
40 LC_NAME = "en_US.UTF-8";
41 LC_NUMERIC = "en_US.UTF-8";
42 LC_PAPER = "en_US.UTF-8";
43 LC_TELEPHONE = "en_US.UTF-8";
44 LC_TIME = "en_US.UTF-8";
45 };
46
47 # Enable the X11 windowing system.
48 services.xserver.enable = true;
49
50 # Enable the GNOME Desktop Environment.
51 services.xserver.displayManager.gdm.enable = true;
52 services.xserver.desktopManager.gnome.enable = true;
53
54 # Configure keymap in X11
55 services.xserver.xkb = {
56 layout = "us";
57 variant = "";
58 };
59
60 # Enable CUPS to print documents.
61 services.printing.enable = true;
62
63 # Enable sound with pipewire.
64 services.pulseaudio.enable = false;
65 security.rtkit.enable = true;
66 services.pipewire = {
67 enable = true;
68 alsa.enable = true;
69 alsa.support32Bit = true;
70 pulse.enable = true;
71 # If you want to use JACK applications, uncomment this
72 #jack.enable = true;
73
74 # use the example session manager (no others are packaged yet so this is enabled by default,
75 # no need to redefine it in your config for now)
76 #media-session.enable = true;
77 };
78
79 # Enable touchpad support (enabled default in most desktopManager).
80 # services.xserver.libinput.enable = true;
81
82 # Define a user account. Don't forget to set a password with ‘passwd’.
83 users.users.sean = {
84 isNormalUser = true;
85 description = "Sean Aye";
86 extraGroups = [ "networkmanager" "wheel" ];
87 shell = pkgs.fish;
88 };
89 home-manager.users.sean = { pkgs, ...}: {
90 home.packages = [
91 pkgs.atool
92 pkgs.httpie
93 pkgs.helix
94 pkgs.jujutsu
95 ];
96 programs.jujutsu = {
97 enable = true;
98 settings = {
99 user = {
100 email = "hello@seanaye.ca";
101 name = "Sean Aye";
102 };
103 };
104 };
105 home.sessionVariables = {
106 EDITOR = "hx";
107 VISUAL = "hx";
108 SUDO_EDITOR = "hx";
109 };
110 programs.home-manager.enable = true;
111 programs.helix.enable = true;
112 programs.fish = {
113 enable = true;
114 interactiveShellInit = ''
115 set fish_greeting
116 '';
117 };
118 programs.starship = {
119 enable = true;
120 enableFishIntegration = true;
121 };
122
123
124 home.stateVersion = "25.05";
125 };
126
127 # Install firefox.
128 programs.firefox.enable = true;
129 programs.fish.enable = true;
130
131 programs._1password.enable = true;
132 programs._1password-gui = {
133 enable = true;
134 polkitPolicyOwners = ["sean"];
135 };
136
137 programs.steam = {
138 enable = true;
139 };
140
141
142 # Allow unfree packages
143 nixpkgs.config.allowUnfree = true;
144
145 # List packages installed in system profile. To search, run:
146 # $ nix search wget
147 environment.systemPackages = with pkgs; [
148 git
149 helix
150 wl-clipboard
151 ];
152 environment.variables = {
153 EDITOR = "hx";
154 VISUAL = "hx";
155 SUDO_EDITOR = "hx";
156 };
157
158
159 # Some programs need SUID wrappers, can be configured further or are
160 # started in user sessions.
161 # programs.mtr.enable = true;
162 # programs.gnupg.agent = {
163 # enable = true;
164 # enableSSHSupport = true;
165 # };
166
167 # List services that you want to enable:
168
169 # Enable the OpenSSH daemon.
170 # services.openssh.enable = true;
171
172 # Open ports in the firewall.
173 # networking.firewall.allowedTCPPorts = [ ... ];
174 # networking.firewall.allowedUDPPorts = [ ... ];
175 # Or disable the firewall altogether.
176 # networking.firewall.enable = false;
177
178 # This value determines the NixOS release from which the default
179 # settings for stateful data, like file locations and database versions
180 # on your system were taken. It‘s perfectly fine and recommended to leave
181 # this value at the release version of the first install of this system.
182 # Before changing this value read the documentation for this option
183 # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
184 system.stateVersion = "25.05"; # Did you read the comment?
185
186}