me like nix
0

Configure Feed

Select the types of activity you want to include in your feed.

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 48 programs.hyprland = { 49 enable = true; 50 xwayland.enable = true; 51 }; 52 53 54 services.greetd = { 55 enable = true; 56 settings = { 57 default_session = { 58 command = "${pkgs.hyprland}/bin/Hyprland"; 59 user = "sean"; # Your username 60 }; 61 }; 62 # Example with regreet (graphical) 63 package = pkgs.greetd.regreet; 64 # Or tuigreet (console) 65 # package = pkgs.greetd.tuigreet; 66 }; 67 68 xdg.portal = { 69 enable = true; 70 wlr.enable = true; 71 extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; 72 }; 73 74 75 76 77 # Enable CUPS to print documents. 78 services.printing.enable = true; 79 80 # Enable sound with pipewire. 81 services.pulseaudio.enable = false; 82 security.rtkit.enable = true; 83 services.pipewire = { 84 enable = true; 85 alsa.enable = true; 86 alsa.support32Bit = true; 87 pulse.enable = true; 88 # If you want to use JACK applications, uncomment this 89 #jack.enable = true; 90 91 # use the example session manager (no others are packaged yet so this is enabled by default, 92 # no need to redefine it in your config for now) 93 #media-session.enable = true; 94 }; 95 96 # Enable touchpad support (enabled default in most desktopManager). 97 # services.xserver.libinput.enable = true; 98 99 # Define a user account. Don't forget to set a password with ‘passwd’. 100 users.users.sean = { 101 isNormalUser = true; 102 description = "Sean Aye"; 103 extraGroups = [ "networkmanager" "wheel" ]; 104 shell = pkgs.fish; 105 }; 106 home-manager.backupFileExtension = "backup"; 107 home-manager.users.sean = { pkgs, ...}: { 108 home.packages = [ 109 pkgs.atool 110 pkgs.httpie 111 pkgs.helix 112 pkgs.jujutsu 113 pkgs.htop 114 pkgs.zellij # terminal multiplexer 115 # --- ESSENTIAL HYPRLAND ECOSYSTEM TOOLS --- 116 pkgs.alacritty # Terminal emulator (popular choice, or pkgs.alacritty, pkgs.foot) 117 pkgs.wofi # Application launcher (or pkgs.rofi-wayland) 118 pkgs.waybar # Status bar (highly recommended) 119 pkgs.mako # Notification daemon 120 pkgs.swaybg # For setting wallpapers (or pkgs.hyprpaper, pkgs.swww) 121 pkgs.cliphist # Clipboard history manager 122 pkgs.slurp # For selecting a region for screenshots 123 pkgs.grim # For taking screenshots 124 pkgs.pavucontrol # GUI for PulseAudio/PipeWire volume control 125 pkgs.fd 126 pkgs.ripgrep 127 pkgs.yazi 128 129 # --- FONTS ARE IMPORTANT --- 130 pkgs.noto-fonts 131 pkgs.noto-fonts-cjk-sans 132 pkgs.noto-fonts-emoji 133 pkgs.font-awesome # For icons in waybar, etc. 134 pkgs.nerd-fonts.jetbrains-mono 135 136 # --- POLKIT AGENT (for 1Password GUI, etc.) --- 137 pkgs.lxqt.lxqt-policykit # Lightweight polkit agent 138 ]; 139 programs.jujutsu = { 140 enable = true; 141 settings = { 142 user = { 143 email = "hello@seanaye.ca"; 144 name = "Sean Aye"; 145 }; 146 }; 147 }; 148 home.sessionVariables = { 149 EDITOR = "hx"; 150 VISUAL = "hx"; 151 SUDO_EDITOR = "hx"; 152 # --- WAYLAND SPECIFIC ENV VARS --- 153 NIXOS_OZONE_WL = "1"; # May help some electron apps use Wayland 154 QT_QPA_PLATFORM = "wayland;xcb"; # Prefer Wayland for Qt, fallback to xcb (XWayland) 155 QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; # If you want Hyprland to draw all decorations 156 SDL_VIDEODRIVER = "wayland"; 157 XDG_CURRENT_DESKTOP = "Hyprland"; 158 XDG_SESSION_TYPE = "wayland"; 159 _JAVA_AWT_WM_NONREPARENTING = "1"; 160 }; 161 programs.home-manager.enable = true; 162 programs.helix.enable = true; 163 programs.fish = { 164 enable = true; 165 interactiveShellInit = '' 166 set fish_greeting 167 ''; 168 }; 169 programs.starship = { 170 enable = true; 171 enableFishIntegration = true; 172 }; 173 174 175 # --- HYPRLAND CONFIGURATION FILES --- 176 # This tells home-manager to place your hyprland.conf in ~/.config/hypr/ 177 # You will need to create the actual file (see step 2 below) 178 xdg.configFile."hypr/hyprland.conf".source = ./hyprland.conf; # Points to a file named hyprland.conf in the same directory as your configuration.nix 179 180 home.stateVersion = "25.05"; 181 }; 182 183 184 # Install firefox. 185 programs.firefox.enable = true; 186 programs.fish.enable = true; 187 188 programs._1password.enable = true; 189 programs._1password-gui = { 190 enable = true; 191 polkitPolicyOwners = ["sean"]; 192 }; 193 194 programs.steam = { 195 enable = true; 196 }; 197 198 199 # Allow unfree packages 200 nixpkgs.config.allowUnfree = true; 201 202 # List packages installed in system profile. To search, run: 203 # $ nix search wget 204 environment.systemPackages = with pkgs; [ 205 git 206 wl-clipboard 207 ]; 208 environment.variables = { 209 EDITOR = "hx"; 210 VISUAL = "hx"; 211 SUDO_EDITOR = "hx"; 212 }; 213 214 215 # Some programs need SUID wrappers, can be configured further or are 216 # started in user sessions. 217 # programs.mtr.enable = true; 218 # programs.gnupg.agent = { 219 # enable = true; 220 # enableSSHSupport = true; 221 # }; 222 223 # List services that you want to enable: 224 nixarr = { 225 enable = true; 226 vpn = { 227 enable = true; 228 wgConf = "/data/wireguard.conf"; 229 }; 230 231 jellyfin = { 232 enable = true; 233 }; 234 235 transmission = { 236 enable = true; 237 vpn.enable = true; 238 }; 239 sabnzbd = { 240 enable = true; 241 vpn.enable = true; 242 }; 243 244 prowlarr.enable = true; 245 radarr.enable = true; 246 sonarr.enable = true; 247 jellyseerr.enable = true; 248 249 recyclarr = { 250 enable = true; 251 configuration = { 252 sonarr = { 253 series = { 254 base_url = "http://localhost:8989"; 255 api_key = "!env_var SONARR_API_KEY"; 256 quality_definition = { 257 type = "series"; 258 }; 259 delete_old_custom_formats = true; 260 custom_formats = [ 261 { 262 trash_ids = [ 263 "85c61753df5da1fb2aab6f2a47426b09" # BR-DISK 264 "9c11cd3f07101cdba90a2d81cf0e56b4" # LQ 265 ]; 266 assign_scores_to = [ 267 { 268 name = "WEB-DL (1080p)"; 269 score = -10000; 270 } 271 ]; 272 } 273 ]; 274 }; 275 }; 276 radarr = { 277 movies = { 278 base_url = "http://localhost:7878"; 279 api_key = "!env_var RADARR_API_KEY"; 280 quality_definition = { 281 type = "movie"; 282 }; 283 delete_old_custom_formats = true; 284 custom_formats = [ 285 { 286 trash_ids = [ 287 "570bc9ebecd92723d2d21500f4be314c" # Remaster 288 "eca37840c13c6ef2dd0262b141a5482f" # 4K Remaster 289 ]; 290 assign_scores_to = [ 291 { 292 name = "HD Bluray + WEB"; 293 score = 25; 294 } 295 ]; 296 } 297 ]; 298 }; 299 }; 300 }; 301 }; 302 }; 303 304 # Enable the OpenSSH daemon. 305 # services.openssh.enable = true; 306 307 # Open ports in the firewall. 308 # networking.firewall.allowedTCPPorts = [ ... ]; 309 # networking.firewall.allowedUDPPorts = [ ... ]; 310 # Or disable the firewall altogether. 311 # networking.firewall.enable = false; 312 313 # This value determines the NixOS release from which the default 314 # settings for stateful data, like file locations and database versions 315 # on your system were taken. It‘s perfectly fine and recommended to leave 316 # this value at the release version of the first install of this system. 317 # Before changing this value read the documentation for this option 318 # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). 319 system.stateVersion = "25.05"; # Did you read the comment? 320 321}