me like nix
1{ config, pkgs, ... }:
2
3{
4 imports =
5 [ # Include the results of the hardware scan.
6 ./hardware-configuration.nix
7 ];
8
9 nix.settings.experimental-features = [ "nix-command" "flakes" ];
10
11 # Bootloader.
12 boot.loader.systemd-boot.enable = true;
13 boot.loader.efi.canTouchEfiVariables = true;
14
15 # Use latest kernel.
16 boot.kernelPackages = pkgs.linuxPackages_latest;
17
18 networking.hostName = "nixos"; # Define your hostname.
19 # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
20
21 # Configure network proxy if necessary
22 # networking.proxy.default = "http://user:password@proxy:port/";
23 # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
24
25 # Enable networking
26 networking.networkmanager.enable = true;
27
28 # Set your time zone.
29 time.timeZone = "America/New_York";
30
31 # Select internationalisation properties.
32 i18n.defaultLocale = "en_US.UTF-8";
33
34 i18n.extraLocaleSettings = {
35 LC_ADDRESS = "en_US.UTF-8";
36 LC_IDENTIFICATION = "en_US.UTF-8";
37 LC_MEASUREMENT = "en_US.UTF-8";
38 LC_MONETARY = "en_US.UTF-8";
39 LC_NAME = "en_US.UTF-8";
40 LC_NUMERIC = "en_US.UTF-8";
41 LC_PAPER = "en_US.UTF-8";
42 LC_TELEPHONE = "en_US.UTF-8";
43 LC_TIME = "en_US.UTF-8";
44 };
45
46
47 services.greetd = {
48 enable = true;
49 # Example with regreet (graphical)
50 package = pkgs.greetd.regreet;
51 # Or tuigreet (console)
52 # package = pkgs.greetd.tuigreet;
53 };
54
55 xdg.portal = {
56 enable = true;
57 wlr.enable = true;
58 extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
59 };
60
61
62
63
64 # Enable CUPS to print documents.
65 services.printing.enable = true;
66
67 # Enable sound with pipewire.
68 services.pulseaudio.enable = false;
69 security.rtkit.enable = true;
70 services.pipewire = {
71 enable = true;
72 alsa.enable = true;
73 alsa.support32Bit = true;
74 pulse.enable = true;
75 # If you want to use JACK applications, uncomment this
76 #jack.enable = true;
77
78 # use the example session manager (no others are packaged yet so this is enabled by default,
79 # no need to redefine it in your config for now)
80 #media-session.enable = true;
81 };
82
83 # Enable touchpad support (enabled default in most desktopManager).
84 # services.xserver.libinput.enable = true;
85
86 # Define a user account. Don't forget to set a password with ‘passwd’.
87 users.users.sean = {
88 isNormalUser = true;
89 description = "Sean Aye";
90 extraGroups = [ "networkmanager" "wheel" ];
91 shell = pkgs.fish;
92 };
93
94 # Install firefox.
95 programs.firefox.enable = true;
96 programs.fish.enable = true;
97
98 programs._1password.enable = true;
99 programs._1password-gui = {
100 enable = true;
101 polkitPolicyOwners = ["sean"];
102 };
103
104 programs.steam = {
105 enable = true;
106 };
107
108
109 # Allow unfree packages
110 nixpkgs.config.allowUnfree = true;
111
112 # List packages installed in system profile. To search, run:
113 # $ nix search wget
114 environment.systemPackages = with pkgs; [
115 git
116 wl-clipboard
117 ];
118 environment.variables = {
119 EDITOR = "hx";
120 VISUAL = "hx";
121 SUDO_EDITOR = "hx";
122 };
123
124
125 # Some programs need SUID wrappers, can be configured further or are
126 # started in user sessions.
127 # programs.mtr.enable = true;
128 # programs.gnupg.agent = {
129 # enable = true;
130 # enableSSHSupport = true;
131 # };
132
133 # List services that you want to enable:
134 nixarr = {
135 enable = true;
136 vpn = {
137 enable = true;
138 wgConf = "/data/wireguard.conf";
139 };
140
141 jellyfin = {
142 enable = true;
143 openFirewall = true;
144 };
145
146 transmission = {
147 enable = true;
148 vpn.enable = true;
149 };
150 sabnzbd = {
151 enable = true;
152 vpn.enable = true;
153 openFirewall = true;
154 };
155
156 prowlarr.enable = true;
157 radarr.enable = true;
158 sonarr.enable = true;
159 jellyseerr = {
160 enable = true;
161 openFirewall = true;
162 };
163
164 recyclarr = {
165 enable = true;
166 configuration = {
167 sonarr = {
168 series = {
169 base_url = "http://localhost:8989";
170 api_key = "!env_var SONARR_API_KEY";
171 quality_definition = {
172 type = "series";
173 };
174 delete_old_custom_formats = true;
175 custom_formats = [
176 {
177 trash_ids = [
178 "85c61753df5da1fb2aab6f2a47426b09" # BR-DISK
179 "9c11cd3f07101cdba90a2d81cf0e56b4" # LQ
180 ];
181 assign_scores_to = [
182 {
183 name = "WEB-DL (1080p)";
184 score = -10000;
185 }
186 ];
187 }
188 ];
189 };
190 };
191 radarr = {
192 movies = {
193 base_url = "http://localhost:7878";
194 api_key = "!env_var RADARR_API_KEY";
195 quality_definition = {
196 type = "movie";
197 };
198 delete_old_custom_formats = true;
199 custom_formats = [
200 {
201 trash_ids = [
202 "570bc9ebecd92723d2d21500f4be314c" # Remaster
203 "eca37840c13c6ef2dd0262b141a5482f" # 4K Remaster
204 ];
205 assign_scores_to = [
206 {
207 name = "HD Bluray + WEB";
208 score = 25;
209 }
210 ];
211 }
212 ];
213 };
214 };
215 };
216 };
217 };
218
219 # Enable the OpenSSH daemon.
220 # services.openssh.enable = true;
221
222 # Open ports in the firewall.
223 networking.firewall.allowedTCPPorts = [ 8096 5055 ];
224 networking.firewall.allowedUDPPorts = [ 8096 5055 ];
225 # Or disable the firewall altogether.
226 # networking.firewall.enable = false;
227
228 # This value determines the NixOS release from which the default
229 # settings for stateful data, like file locations and database versions
230 # on your system were taken. It‘s perfectly fine and recommended to leave
231 # this value at the release version of the first install of this system.
232 # Before changing this value read the documentation for this option
233 # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
234 system.stateVersion = "25.05"; # Did you read the comment?
235
236}