because apparently i need a git repo

legalize nuclear bombs

+4
common-options.nix
··· 1 + { config, lib, pkgs, ... }: 2 + { 3 + options.isWorkstation = lib.mkEnableOption "basically enables home-manager"; 4 + }
+13
common.nix
··· 1 + { config, lib, pkgs, ... }: 2 + { 3 + imports = [ ./common-options.nix ]; 4 + # just a default. automatic-timezoned on workstations. 5 + time.timeZone = lib.mkDefault "America/Chicago"; 6 + # It's ASCII, but better! 7 + i18n.defaultLocale = "en_US.UTF-8"; 8 + # capital cities was on to something here 9 + environment.memoryAllocator.provider = "graphene-hardened"; 10 + 11 + nix.settings.experimental-features = [ "nix-command" "flakes" ]; 12 + system.stateVersion = "25.05"; 13 + }
+170
configuration.nix
··· 1 + # Edit this configuration file to define what should be installed on 2 + # your system. Help is available in the configuration.nix(5) man page, on 3 + # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). 4 + 5 + { config, lib, pkgs, ... }: 6 + 7 + { 8 + imports = 9 + [ # Include the results of the hardware scan. 10 + ./hardware-configuration.nix 11 + ./core-configuration.nix 12 + ./nonfree.nix 13 + ./steam.nix 14 + ./ssl.nix 15 + ]; 16 + environment.memoryAllocator.provider = "graphene-hardened"; # BAILIFF! SMACK HIS NUTS! 17 + services.udev.packages = [ pkgs.yubikey-personalization ]; 18 + systemd.services.fprintd = { 19 + wantedBy = [ "multi-user.target" ]; 20 + serviceConfig.Type = "simple"; 21 + }; 22 + programs = { 23 + nano = { 24 + enable = true; 25 + nanorc = '' 26 + set autoindent 27 + set boldtext 28 + set constantshow 29 + set smarthome 30 + set softwrap 31 + set tabsize 2 32 + set titlecolor blue 33 + set statuscolor green 34 + set keycolor red 35 + set numbercolor blue 36 + ''; 37 + }; 38 + }; 39 + services = { 40 + fprintd.enable = true; 41 + fwupd = { 42 + enable = true; 43 + daemonSettings.DisabledPlugins = [ "upower" ]; 44 + }; 45 + printing = { 46 + enable = true; 47 + drivers = [ pkgs.hplipWithPlugin ]; 48 + }; 49 + avahi = { 50 + enable = true; 51 + nssmdns4 = true; 52 + openFirewall = true; 53 + }; 54 + }; 55 + # Use the systemd-boot EFI boot loader. 56 + boot.loader.systemd-boot.enable = true; 57 + boot.loader.efi.canTouchEfiVariables = true; 58 + 59 + networking.hostName = "yaoi"; # Define your hostname. 60 + # Pick only one of the below networking options. 61 + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. 62 + networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. 63 + 64 + # Set your time zone. 65 + time.timeZone = "America/Chicago"; 66 + 67 + # Configure network proxy if necessary 68 + # networking.proxy.default = "http://user:password@proxy:port/"; 69 + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; 70 + 71 + # Select internationalisation properties. 72 + i18n.defaultLocale = "en_US.UTF-8"; 73 + console = { 74 + font = "Lat2-Terminus16"; 75 + # keyMap = "us"; 76 + useXkbConfig = true; # use xkb.options in tty. 77 + }; 78 + 79 + # Not Enable the X11 windowing system. 80 + services.xserver.enable = false; 81 + services.displayManager.sddm.enable = true; 82 + services.displayManager.sddm.wayland.enable = true; 83 + services.desktopManager.plasma6.enable = true; 84 + 85 + services.flatpak.enable = true; 86 + 87 + # Configure keymap in X11 88 + services.xserver.xkb.layout = "us"; 89 + #services.xserver.xkb.options = "eurosign:e,caps:escape"; 90 + 91 + # Enable sound. 92 + # services.pulseaudio.enable = true; 93 + # OR 94 + services.pipewire = { 95 + enable = true; 96 + pulse.enable = true; 97 + }; 98 + 99 + # Enable touchpad support (enabled default in most desktopManager). 100 + # services.libinput.enable = true; 101 + 102 + # Define a user account. Don't forget to set a password with ‘passwd’. 103 + users.users.hotsocket = { 104 + description = "ur mom"; 105 + isNormalUser = true; 106 + extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. 107 + }; 108 + environment.systemPackages = with pkgs; [ 109 + ungoogled-chromium 110 + kdePackages.discover 111 + python3 112 + fwupd 113 + ]; 114 + 115 + # Some programs need SUID wrappers, can be configured further or are 116 + # started in user sessions. 117 + # programs.mtr.enable = true; 118 + # programs.gnupg.agent = { 119 + # enable = true; 120 + # enableSSHSupport = true; 121 + # }; 122 + nix.settings.experimental-features = [ "nix-command" "flakes" ]; 123 + 124 + # List services that you want to enable: 125 + 126 + # Enable the OpenSSH daemon. 127 + # services.openssh.enable = true; 128 + 129 + # Open ports in the firewall. 130 + networking.firewall = rec { 131 + allowedTCPPortRanges = [ 132 + # KDE Connect 133 + { from = 1714; to = 1764; } 134 + ]; 135 + allowedUDPPortRanges = allowedTCPPortRanges; 136 + }; 137 + networking.hosts = { 138 + "127.0.0.1" = ["fuckyou"]; 139 + }; 140 + # networking.firewall.allowedTCPPorts = [ ... ]; 141 + # networking.firewall.allowedUDPPorts = [ ... ]; 142 + # Or disable the firewall altogether. 143 + # networking.firewall.enable = false; 144 + 145 + # Copy the NixOS configuration file and link it from the resulting system 146 + # (/run/current-system/configuration.nix). This is useful in case you 147 + # accidentally delete configuration.nix. 148 + # system.copySystemConfiguration = true; 149 + 150 + # This option defines the first version of NixOS you have installed on this particular machine, 151 + # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. 152 + # 153 + # Most users should NEVER change this value after the initial install, for any reason, 154 + # even if you've upgraded your system to a new NixOS release. 155 + # 156 + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, 157 + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how 158 + # to actually do that. 159 + # 160 + # This value being lower than the current NixOS release does NOT mean your system is 161 + # out of date, out of support, or vulnerable. 162 + # 163 + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, 164 + # and migrated your data accordingly. 165 + # 166 + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . 167 + system.stateVersion = "25.05"; # Did you read the comment? 168 + 169 + } 170 +
+150
flake.lock
··· 1 + { 2 + "nodes": { 3 + "flake-utils": { 4 + "inputs": { 5 + "systems": "systems" 6 + }, 7 + "locked": { 8 + "lastModified": 1731533236, 9 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 10 + "owner": "numtide", 11 + "repo": "flake-utils", 12 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 13 + "type": "github" 14 + }, 15 + "original": { 16 + "owner": "numtide", 17 + "repo": "flake-utils", 18 + "type": "github" 19 + } 20 + }, 21 + "flakey-profile": { 22 + "locked": { 23 + "lastModified": 1712898590, 24 + "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=", 25 + "owner": "lf-", 26 + "repo": "flakey-profile", 27 + "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d", 28 + "type": "github" 29 + }, 30 + "original": { 31 + "owner": "lf-", 32 + "repo": "flakey-profile", 33 + "type": "github" 34 + } 35 + }, 36 + "home-manager": { 37 + "inputs": { 38 + "nixpkgs": [ 39 + "nixpkgs" 40 + ] 41 + }, 42 + "locked": { 43 + "lastModified": 1753592768, 44 + "narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=", 45 + "owner": "nix-community", 46 + "repo": "home-manager", 47 + "rev": "fc3add429f21450359369af74c2375cb34a2d204", 48 + "type": "github" 49 + }, 50 + "original": { 51 + "owner": "nix-community", 52 + "ref": "release-25.05", 53 + "repo": "home-manager", 54 + "type": "github" 55 + } 56 + }, 57 + "lix": { 58 + "flake": false, 59 + "locked": { 60 + "lastModified": 1751235704, 61 + "narHash": "sha256-J4ycLoXHPsoBoQtEXFCelL4xlq5pT8U9tNWNKm43+YI=", 62 + "rev": "1d7368585eebaa2c4bdbcb88fe600cfb2239b2c6", 63 + "type": "tarball", 64 + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/1d7368585eebaa2c4bdbcb88fe600cfb2239b2c6.tar.gz?rev=1d7368585eebaa2c4bdbcb88fe600cfb2239b2c6" 65 + }, 66 + "original": { 67 + "type": "tarball", 68 + "url": "https://git.lix.systems/lix-project/lix/archive/release-2.93.tar.gz" 69 + } 70 + }, 71 + "lix-module": { 72 + "inputs": { 73 + "flake-utils": "flake-utils", 74 + "flakey-profile": "flakey-profile", 75 + "lix": "lix", 76 + "nixpkgs": [ 77 + "nixpkgs" 78 + ] 79 + }, 80 + "locked": { 81 + "lastModified": 1751240025, 82 + "narHash": "sha256-SXUAlxpjPRkArRMHy5+Hdi+PiC+ND9yzzIjiaHmTvQU=", 83 + "rev": "8b1094356f4723d6e89d3f8a95b333ee16d9ab02", 84 + "type": "tarball", 85 + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/8b1094356f4723d6e89d3f8a95b333ee16d9ab02.tar.gz?rev=8b1094356f4723d6e89d3f8a95b333ee16d9ab02" 86 + }, 87 + "original": { 88 + "type": "tarball", 89 + "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.2-1.tar.gz" 90 + } 91 + }, 92 + "nixpkgs": { 93 + "locked": { 94 + "lastModified": 1755471983, 95 + "narHash": "sha256-axUoWcm4cNQ36jOlnkD9D40LTfSQgk8ExfHSRm3rTtg=", 96 + "owner": "NixOS", 97 + "repo": "nixpkgs", 98 + "rev": "48f4c982de68d966421d2b6f1ddbeb6227cc5ceb", 99 + "type": "github" 100 + }, 101 + "original": { 102 + "owner": "NixOS", 103 + "ref": "nixos-25.05", 104 + "repo": "nixpkgs", 105 + "type": "github" 106 + } 107 + }, 108 + "nixpkgs-unstable": { 109 + "locked": { 110 + "lastModified": 1755577059, 111 + "narHash": "sha256-5hYhxIpco8xR+IpP3uU56+4+Bw7mf7EMyxS/HqUYHQY=", 112 + "owner": "NixOS", 113 + "repo": "nixpkgs", 114 + "rev": "97eb7ee0da337d385ab015a23e15022c865be75c", 115 + "type": "github" 116 + }, 117 + "original": { 118 + "owner": "NixOS", 119 + "ref": "nixpkgs-unstable", 120 + "repo": "nixpkgs", 121 + "type": "github" 122 + } 123 + }, 124 + "root": { 125 + "inputs": { 126 + "home-manager": "home-manager", 127 + "lix-module": "lix-module", 128 + "nixpkgs": "nixpkgs", 129 + "nixpkgs-unstable": "nixpkgs-unstable" 130 + } 131 + }, 132 + "systems": { 133 + "locked": { 134 + "lastModified": 1681028828, 135 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 136 + "owner": "nix-systems", 137 + "repo": "default", 138 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 139 + "type": "github" 140 + }, 141 + "original": { 142 + "owner": "nix-systems", 143 + "repo": "default", 144 + "type": "github" 145 + } 146 + } 147 + }, 148 + "root": "root", 149 + "version": 7 150 + }
+51
flake.nix
··· 1 + { 2 + inputs = { 3 + nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; 4 + nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; 5 + lix-module = { 6 + url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.2-1.tar.gz"; 7 + inputs.nixpkgs.follows = "nixpkgs"; 8 + }; 9 + home-manager = { 10 + url = "github:nix-community/home-manager/release-25.05"; 11 + inputs.nixpkgs.follows = "nixpkgs"; 12 + }; 13 + }; 14 + outputs = { nixpkgs, nixpkgs-unstable, lix-module, home-manager, ... }@inputs: 15 + let 16 + pkgs-unstable = import nixpkgs-unstable { 17 + system = "x86_64-linux"; 18 + }; 19 + in { 20 + nixosConfigurations.yaoi = nixpkgs.lib.nixosSystem { 21 + specialArgs = { inherit inputs pkgs-unstable; }; 22 + system = "x86_64-linux"; 23 + modules = [ 24 + ./hardware-configuration.nix 25 + lix-module.nixosModules.default 26 + home-manager.nixosModules.home-manager 27 + ./common.nix 28 + ./workstation.nix 29 + ./hosts/yaoi.nix 30 + ./users/hotsocket.nix 31 + 32 + # *scoots away* 33 + ./nonfree/_allow.nix 34 + ./nonfree/steam.nix 35 + ]; 36 + }; 37 + nixosConfigurations.yuri = nixpkgs.lib.nixosSystem { 38 + specialArgs = { inherit inputs pkgs-unstable; }; 39 + system = "x86_64-linux"; 40 + modules = [ 41 + ./hardware-configuration.nix 42 + lix-module.nixosModules.default 43 + home-manager.nixosModules.home-manager 44 + ./common.nix 45 + ./workstation.nix 46 + ./hosts/yuri.nix 47 + ./users/hotsocket.nix 48 + ]; 49 + }; 50 + }; 51 + }
+59
hardware-configuration.nix
··· 1 + # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 + # and may be overwritten by future invocations. Please make changes 3 + # to /etc/nixos/configuration.nix instead. 4 + { config, lib, pkgs, modulesPath, ... }: 5 + 6 + { 7 + imports = 8 + [ (modulesPath + "/installer/scan/not-detected.nix") 9 + ]; 10 + 11 + boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ]; 12 + boot.initrd.kernelModules = [ ]; 13 + boot.kernelModules = [ ]; 14 + boot.extraModulePackages = [ ]; 15 + 16 + fileSystems."/" = 17 + { device = "/dev/disk/by-uuid/0e678fa3-f13d-431e-a5e8-a953a3415f9a"; 18 + fsType = "btrfs"; 19 + options = [ "subvol=root" ]; 20 + }; 21 + 22 + fileSystems."/home" = 23 + { device = "/dev/disk/by-uuid/0e678fa3-f13d-431e-a5e8-a953a3415f9a"; 24 + fsType = "btrfs"; 25 + options = [ "subvol=home" ]; 26 + }; 27 + 28 + fileSystems."/nix" = 29 + { device = "/dev/disk/by-uuid/0e678fa3-f13d-431e-a5e8-a953a3415f9a"; 30 + fsType = "btrfs"; 31 + options = [ "subvol=nix" ]; 32 + }; 33 + 34 + fileSystems."/boot" = 35 + { device = "/dev/disk/by-uuid/3E6E-B118"; 36 + fsType = "vfat"; 37 + options = [ "fmask=0022" "dmask=0022" ]; 38 + }; 39 + 40 + swapDevices = [ ]; 41 + 42 + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 43 + # (the default) this is the recommended approach. When using systemd-networkd it's 44 + # still possible to use this option, but it's recommended to use it in conjunction 45 + # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. 46 + networking.useDHCP = lib.mkDefault true; 47 + # networking.interfaces.enp0s25.useDHCP = lib.mkDefault true; 48 + # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true; 49 + 50 + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 51 + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 52 + 53 + # bluetooth stuff 54 + hardware.bluetooth = { 55 + enable = true; 56 + powerOnBoot = true; 57 + }; 58 + services.blueman.enable = true; 59 + }
+33
home.nix
··· 1 + { config, pkgs, pkgs-unstable, ... }: 2 + 3 + { 4 + home = { 5 + username = "hotsocket"; 6 + homeDirectory = "/home/hotsocket"; 7 + packages = ((with pkgs; [ 8 + jetbrains.idea-community-bin 9 + home-manager 10 + vscodium 11 + pidgin 12 + git 13 + playerctl 14 + rescrobbled 15 + p7zip 16 + p11-kit 17 + ]) ++ (with pkgs-unstable; [ 18 + luanti-client 19 + ])); 20 + stateVersion = "25.05"; 21 + }; 22 + programs = { 23 + home-manager.enable = true; 24 + git = { 25 + enable = true; 26 + userName = "hotsocket"; 27 + userEmail = "th@hotsocket.fyi"; 28 + }; 29 + }; 30 + services = { 31 + kdeconnect.enable = true; 32 + }; 33 + }
+6
hosts/yaoi.nix
··· 1 + { config, lib, pkgs, ... }: 2 + { 3 + networking.hostName = "yaoi"; 4 + # battery is fucked 5 + services.fwupd.daemonSettings.DisabledPlugins = [ "upower" ]; 6 + }
+4
hosts/yuri.nix
··· 1 + { config, lib, pkgs, ... }: 2 + { 3 + networking.hostName = "yuri"; 4 + }
+13
nonfree/_allow.nix
··· 1 + # https://codeberg.org/AndrewKvalheim/configuration/src/branch/main/packages/nixpkgs-issue-55674.nix 2 + { config, lib, ... }: 3 + 4 + let 5 + inherit (builtins) elem; 6 + inherit (lib) getName mkOption; 7 + inherit (lib.types) listOf str; 8 + in 9 + { 10 + # Pending https://github.com/NixOS/nixpkgs/issues/55674 11 + options.allowedNonfree = mkOption { type = listOf str; default = [ ]; }; 12 + config.nixpkgs.config.allowUnfreePredicate = p: elem (getName p) config.allowedNonfree; 13 + }
+8
nonfree/steam.nix
··· 1 + { config, lib, pkgs, ... }: 2 + { 3 + allowedNonfree = [ 4 + "steam" "steam-unwrapped" 5 + ]; 6 + programs.steam.enable = true; 7 + hardware.graphics.enable32Bit = true; 8 + }
+39
users/hotsocket.nix
··· 1 + { config, lib, pkgs, pkgs-unstable, ... }: 2 + { 3 + users.users.hotsocket = { 4 + description = "ur mom"; 5 + isNormalUser = true; 6 + extraGroups = [ "wheel" ]; 7 + }; 8 + # i love home-manager :) 9 + 10 + home-manager.users.hotsocket = if config.isWorkstation then { 11 + home = { 12 + stateVersion = "25.05"; 13 + username = "hotsocket"; 14 + homeDirectory = "/home/hotsocket"; 15 + packages = ((with pkgs; [ 16 + jetbrains.idea-community-bin 17 + ungoogled-chromium 18 + vscodium 19 + git 20 + playerctl 21 + rescrobbled 22 + p7zip 23 + ]) ++ (with pkgs-unstable; [ 24 + # in case of multiplayer. that's the reason for me having unstable. 25 + luanti-client 26 + ])); 27 + }; 28 + programs = { 29 + git = { 30 + enable = true; 31 + userName = "hotsocket"; 32 + userEmail = "th@hotsocket.fyi"; 33 + }; 34 + }; 35 + services = { 36 + kdeconnect.enable = true; 37 + }; 38 + } else null; 39 + }
+72
workstation.nix
··· 1 + # common configuration for workstation.nixes. 2 + # (joke for 65-wide terminals ^) 3 + { config, lib, pkgs, pkgs-unstable, ... }: 4 + { 5 + isWorkstation = true; 6 + services = { 7 + # workstations have a tendency to move one way or another 8 + automatic-timezoned.enable = true; 9 + 10 + 11 + 12 + # hardware support 13 + udev.packages = [ pkgs.yubikey-personalization ]; 14 + fwupd.enable = true; 15 + 16 + 17 + 18 + # software support 19 + flatpak.enable = true; 20 + 21 + # kde is comfy /shrug (praying tde shows up) 22 + displayManager.sddm.enable = true; 23 + desktopManager.plasma6.enable = true; 24 + # in this house, we suck off red hat. 25 + xserver.enable = false; 26 + displayManager.sddm.wayland.enable = true; 27 + 28 + # audio! yay! my tunes! 29 + pipewire = { 30 + enable = true; 31 + pulse.enable = true; # enables pulseaudio emulation 32 + }; 33 + 34 + # fucking hp oh my god 35 + printing = { 36 + enable = true; 37 + drivers = [ pkgs.hplipWithPlugin ]; 38 + }; 39 + avahi = { 40 + enable = true; 41 + nssmdns4 = true; 42 + openFirewall = true; 43 + }; 44 + }; 45 + # i hate this 46 + allowedNonfree = [ 47 + "hplip" 48 + ]; 49 + 50 + # for better or worse, my workstations use efi. 51 + boot.loader = { 52 + grub.device = "nodev"; 53 + systemd-boot.enable = true; 54 + efi.canTouchEfiVariables = true; 55 + }; 56 + 57 + # i have a vague idea of something cool involving this 58 + networking.domain = "workstations.hotsocket.fyi"; 59 + networking.networkmanager.enable = true; 60 + 61 + home-manager = { 62 + extraSpecialArgs = { 63 + inherit pkgs-unstable; 64 + }; 65 + useGlobalPkgs = true; 66 + useUserPackages = true; 67 + }; 68 + swapDevices = [{ 69 + device = "/var/lib/swapfile"; 70 + size = 8*1024; # 8 GB 71 + }]; 72 + }