meta: move config to separate file
This commit is contained in:
		
							parent
							
								
									fcc0f05167
								
							
						
					
					
						commit
						ad25a3cfe1
					
				| @ -1,341 +0,0 @@ | |||||||
| # Edit this configuration file to define what should be installed on |  | ||||||
| # your system.  Help is available in the configuration.nix(5) man page |  | ||||||
| # and in the NixOS manual (accessible by running ‘nixos-help’). |  | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   lib, |  | ||||||
|   caps2esc, |  | ||||||
|   nix-xilinx, |  | ||||||
|   sops-nix, |  | ||||||
|   zremap, |  | ||||||
|   ... |  | ||||||
| }: { |  | ||||||
|   imports = []; |  | ||||||
| 
 |  | ||||||
|   system.stateVersion = "23.05"; |  | ||||||
|   system.autoUpgrade.enable = false; |  | ||||||
| 
 |  | ||||||
|   sops.age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"]; |  | ||||||
|   sops.secrets."peerix/private" = { |  | ||||||
|     sopsFile = ./secrets/peerix.yaml; |  | ||||||
|     mode = "0400"; |  | ||||||
|     owner = config.users.users.nobody.name; |  | ||||||
|     group = config.users.users.nobody.group; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   nix = { |  | ||||||
|     optimise.automatic = true; |  | ||||||
|     gc.automatic = true; |  | ||||||
|     gc.options = "--delete-older-than 7d"; |  | ||||||
|     package = pkgs.nixUnstable; |  | ||||||
|     settings = { |  | ||||||
|       experimental-features = ["nix-command" "flakes"]; |  | ||||||
|       trusted-public-keys = [ |  | ||||||
|         "binarycache.mediabox.lan:3vZwbCaCuOK5fc92rKknvyU7e5fDbnKEKLb/VTaICoU=" |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   boot = { |  | ||||||
|     extraModulePackages = with config.boot.kernelPackages; [usbip]; |  | ||||||
|     initrd.compressor = "zstd"; |  | ||||||
|     initrd.kernelModules = ["amdgpu"]; |  | ||||||
|     kernelPackages = pkgs.linuxPackages_latest; |  | ||||||
|     kernelParams = ["psmouse.synaptics_intertouch=0"]; |  | ||||||
|     loader.efi.canTouchEfiVariables = true; |  | ||||||
|     loader.systemd-boot.editor = false; |  | ||||||
|     loader.systemd-boot.enable = true; |  | ||||||
|     readOnlyNixStore = true; |  | ||||||
|     supportedFilesystems = ["btrfs"]; |  | ||||||
|     tmp.useTmpfs = true; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   security = { |  | ||||||
|     rtkit.enable = true; |  | ||||||
|     allowSimultaneousMultithreading = true; |  | ||||||
|     sudo.enable = true; |  | ||||||
|     doas.enable = true; |  | ||||||
|     doas.extraRules = [ |  | ||||||
|       { |  | ||||||
|         users = ["akill"]; |  | ||||||
|         keepEnv = true; |  | ||||||
|         persist = true; |  | ||||||
|       } |  | ||||||
|     ]; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   powerManagement = { |  | ||||||
|     enable = true; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   networking = { |  | ||||||
|     firewall = { |  | ||||||
|       enable = true; |  | ||||||
|       allowedTCPPorts = [80 443]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     hostName = "nixy"; |  | ||||||
|     nameservers = ["127.0.0.1" "::1"]; |  | ||||||
|     dhcpcd.extraConfig = "nohook resolv.conf"; |  | ||||||
| 
 |  | ||||||
|     extraHosts = '' |  | ||||||
|       192.168.88.171 jellyfin.mediabox.lan |  | ||||||
|       192.168.88.171 mediabox.lan |  | ||||||
|       192.168.88.171 qbittorrent.mediabox.lan |  | ||||||
|       192.168.88.1   router.lan |  | ||||||
|       192.168.88.231 workstation.lan |  | ||||||
|     ''; |  | ||||||
| 
 |  | ||||||
|     networkmanager = { |  | ||||||
|       enable = true; |  | ||||||
|       dns = "none"; |  | ||||||
|       wifi.backend = "iwd"; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     wireless.iwd = { |  | ||||||
|       enable = true; |  | ||||||
|       settings = { |  | ||||||
|         General = { |  | ||||||
|           AddressRandomization = "network"; |  | ||||||
|           #EnableNetworkConfiguration = true; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   time.timeZone = "Europe/Sarajevo"; |  | ||||||
| 
 |  | ||||||
|   nixpkgs.config.allowUnfree = true; |  | ||||||
|   nixpkgs.overlays = [nix-xilinx.overlay]; |  | ||||||
|   environment = { |  | ||||||
|     homeBinInPath = true; |  | ||||||
|     variables = { |  | ||||||
|       PATH = "$HOME/.cargo/bin"; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   programs = { |  | ||||||
|     gnupg.agent = { |  | ||||||
|       enable = true; |  | ||||||
|       enableSSHSupport = true; |  | ||||||
|     }; |  | ||||||
|     zsh.enable = true; |  | ||||||
|     firejail.enable = true; |  | ||||||
|     adb.enable = true; |  | ||||||
|     wireshark.enable = true; |  | ||||||
|     sway.enable = true; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   # List services that you want to enable: |  | ||||||
|   systemd = { |  | ||||||
|     services = { |  | ||||||
|       "zremap" = { |  | ||||||
|         description = "Intercepts keyboard udev events"; |  | ||||||
|         wants = ["systemd-udevd.service"]; |  | ||||||
|         wantedBy = ["multi-user.target"]; |  | ||||||
|         serviceConfig.Nice = -20; |  | ||||||
|         script = '' |  | ||||||
| 	  sleep 1 |  | ||||||
|           ${zremap.defaultPackage.x86_64-linux}/bin/zremap \ |  | ||||||
|           /dev/input/by-path/platform-i8042-serio-0-event-kbd |  | ||||||
|         ''; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     extraConfig = '' |  | ||||||
|       DefaultTimeoutStartSec=30s |  | ||||||
|       DefaultTimeoutStopSec=30s |  | ||||||
|     ''; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   services = { |  | ||||||
|     acpid.enable = true; |  | ||||||
|     btrfs.autoScrub.enable = true; |  | ||||||
|     dbus.enable = true; |  | ||||||
|     fstrim.enable = true; |  | ||||||
|     fwupd.enable = true; |  | ||||||
|     ntp.enable = true; |  | ||||||
|     openssh.enable = true; |  | ||||||
|     printing.enable = true; |  | ||||||
| 
 |  | ||||||
|     pipewire = { |  | ||||||
|       enable = true; |  | ||||||
|       alsa.enable = true; |  | ||||||
|       alsa.support32Bit = true; |  | ||||||
|       pulse.enable = true; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     xserver = { |  | ||||||
|       enable = true; |  | ||||||
|       dpi = 144; |  | ||||||
|       libinput.enable = true; |  | ||||||
|       desktopManager.xterm.enable = false; |  | ||||||
|       displayManager = { |  | ||||||
|         lightdm.enable = false; |  | ||||||
|         startx.enable = true; |  | ||||||
|         defaultSession = "none+i3"; |  | ||||||
|       }; |  | ||||||
|       windowManager.i3.enable = true; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     udev = { |  | ||||||
|       packages = [pkgs.rtl-sdr pkgs.openhantek6022]; |  | ||||||
|       extraRules = '' |  | ||||||
|         #Xilinx FTDI |  | ||||||
|         ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Xilinx", MODE:="666" |  | ||||||
| 
 |  | ||||||
|         #Xilinx Digilent |  | ||||||
|         ATTR{idVendor}=="1443", MODE:="666" |  | ||||||
|         ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Digilent", MODE:="666" |  | ||||||
|       ''; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     tlp = { |  | ||||||
|       enable = true; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     actkbd = { |  | ||||||
|       enable = true; |  | ||||||
|       bindings = [ |  | ||||||
|         { |  | ||||||
|           keys = [113]; |  | ||||||
|           events = ["key"]; |  | ||||||
|           command = "/run/current-system/sw/bin/runuser -l akill -c 'amixer -q set Master toggle'"; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         { |  | ||||||
|           keys = [114]; |  | ||||||
|           events = ["key" "rep"]; |  | ||||||
|           command = "/run/current-system/sw/bin/runuser -l akill -c 'amixer -q set Master 5%- unmute'"; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         { |  | ||||||
|           keys = [115]; |  | ||||||
|           events = ["key" "rep"]; |  | ||||||
|           command = "/run/current-system/sw/bin/runuser -l akill -c 'amixer -q set Master 5%+ unmute'"; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         { |  | ||||||
|           keys = [224]; |  | ||||||
|           events = ["key"]; |  | ||||||
|           command = "${pkgs.light}/bin/light -U 5"; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         { |  | ||||||
|           keys = [225]; |  | ||||||
|           events = ["key"]; |  | ||||||
|           command = "${pkgs.light}/bin/light -A 5"; |  | ||||||
|         } |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     dnscrypt-proxy2 = { |  | ||||||
|       enable = true; |  | ||||||
|       settings = { |  | ||||||
|         ipv6_servers = true; |  | ||||||
|         require_dnssec = true; |  | ||||||
| 
 |  | ||||||
|         sources.public-resolvers = { |  | ||||||
|           urls = [ |  | ||||||
|             "https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md" |  | ||||||
|             "https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md" |  | ||||||
|           ]; |  | ||||||
|           cache_file = "/var/lib/dnscrypt-proxy2/public-resolvers.md"; |  | ||||||
|           minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     nix-serve = { |  | ||||||
|       enable = false; |  | ||||||
|       secretKeyFile = "/var/cache-priv-key.pem"; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     journald.extraConfig = '' |  | ||||||
|       SystemMaxUse=50M |  | ||||||
|     ''; |  | ||||||
| 
 |  | ||||||
|     logind.extraConfig = '' |  | ||||||
|       KillUserProcesses=yes |  | ||||||
|     ''; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   fonts = { |  | ||||||
|     fontconfig = { |  | ||||||
|       cache32Bit = true; |  | ||||||
|       allowBitmaps = true; |  | ||||||
|       useEmbeddedBitmaps = true; |  | ||||||
|       defaultFonts = { |  | ||||||
|         monospace = ["JetBrainsMono"]; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     packages = with pkgs; [ |  | ||||||
|       dejavu_fonts |  | ||||||
|       dina-font |  | ||||||
|       fira-code |  | ||||||
|       fira-code-symbols |  | ||||||
|       font-awesome |  | ||||||
|       font-awesome_4 |  | ||||||
|       inconsolata |  | ||||||
|       iosevka |  | ||||||
|       jetbrains-mono |  | ||||||
|       liberation_ttf |  | ||||||
|       noto-fonts |  | ||||||
|       noto-fonts-cjk |  | ||||||
|       noto-fonts-emoji |  | ||||||
|       proggyfonts |  | ||||||
|       siji |  | ||||||
|       terminus_font |  | ||||||
|       terminus_font_ttf |  | ||||||
|       ubuntu_font_family |  | ||||||
|     ]; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   virtualisation = { |  | ||||||
|     containers.storage.settings = { |  | ||||||
|       storage = { |  | ||||||
|         driver = "btrfs"; |  | ||||||
|         graphroot = "/var/lib/containers/storage"; |  | ||||||
|         runroot = "/run/containers/storage"; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|     podman = { |  | ||||||
|       enable = true; |  | ||||||
|       autoPrune.enable = true; |  | ||||||
|       dockerCompat = true; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   sound.enable = true; |  | ||||||
| 
 |  | ||||||
|   hardware = { |  | ||||||
|     bluetooth = { |  | ||||||
|       enable = true; |  | ||||||
|       settings = { |  | ||||||
|         General = { |  | ||||||
|           Enable = "Source,Sink,Media,Socket"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     opengl = { |  | ||||||
|       enable = true; |  | ||||||
|       driSupport = true; |  | ||||||
|       driSupport32Bit = true; |  | ||||||
|       extraPackages = with pkgs; []; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   zramSwap = { |  | ||||||
|     enable = false; |  | ||||||
|     algorithm = "zstd"; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   users.users.akill = { |  | ||||||
|     isNormalUser = true; |  | ||||||
|     shell = pkgs.zsh; |  | ||||||
|     extraGroups = ["wireshark" "kvm" "tty" "audio" "sound" "adbusers" "dialout" "wheel"]; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user