163 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  inputs,
 | 
						|
  outputs,
 | 
						|
  lib,
 | 
						|
  pkgs,
 | 
						|
  ...
 | 
						|
}: {
 | 
						|
  imports = [
 | 
						|
    #Jovian Nixos
 | 
						|
    inputs.jovian.nixosModules.jovian
 | 
						|
    # If you want to use modules your own flake exports (from modules/home-manager):
 | 
						|
    # outputs.homeManagerModules.example
 | 
						|
    inputs.home-manager.nixosModules.home-manager
 | 
						|
    # Or modules exported from other flakes (such as nix-colors):
 | 
						|
    # inputs.nix-colors.homeManagerModules.default
 | 
						|
 | 
						|
    outputs.nixosModules.vpn-ip
 | 
						|
 | 
						|
    # Import the shared settings
 | 
						|
    ../../desktop
 | 
						|
 | 
						|
    # You can also split up your configuration and import pieces of it here:
 | 
						|
    # ./nvim.nix
 | 
						|
    ./hardware-configuration.nix
 | 
						|
 | 
						|
    ../../../disko/shodan
 | 
						|
 | 
						|
    # ./auto-mount.nix
 | 
						|
  ];
 | 
						|
  boot = {
 | 
						|
    tmp.cleanOnBoot = true;
 | 
						|
    loader = {
 | 
						|
      # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
 | 
						|
      # tss group has access to TPM devices
 | 
						|
 | 
						|
      # Lanzaboote currently replaces the systemd-boot module.
 | 
						|
      # This setting is usually set to true in configuration.nix
 | 
						|
      # generated at installation time. So we force it to false
 | 
						|
      # for now.
 | 
						|
      systemd-boot.enable = lib.mkForce false;
 | 
						|
      systemd-boot.configurationLimit = 3;
 | 
						|
      timeout = 0;
 | 
						|
      efi.canTouchEfiVariables = true;
 | 
						|
    };
 | 
						|
    initrd.systemd.enable = true;
 | 
						|
 | 
						|
    lanzaboote = {
 | 
						|
      enable = true;
 | 
						|
      pkiBundle = "/var/lib/sbctl";
 | 
						|
    };
 | 
						|
    consoleLogLevel = 0;
 | 
						|
    kernelParams = ["quiet" "udev.log_priority=0" "fbcon=vc:2-6" "console=tty0"];
 | 
						|
    plymouth.enable = true;
 | 
						|
  };
 | 
						|
  services.udev.extraRules = ''
 | 
						|
    KERNEL=="hidraw*", ATTRS{idVendor}=="2dc8", MODE="0660", TAG+="uaccess"
 | 
						|
    KERNEL=="hidraw*", KERNELS=="*2DC8:*", MODE="0660", TAG+="uaccess"
 | 
						|
    SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2dc8", MODE="0666"
 | 
						|
  '';
 | 
						|
  zramSwap.enable = false;
 | 
						|
  networking = {
 | 
						|
    domain = "";
 | 
						|
 | 
						|
    # Enable networking
 | 
						|
    networkmanager.enable = true;
 | 
						|
 | 
						|
    firewall.enable = true;
 | 
						|
    firewall.interfaces."wg0".allowedTCPPorts = [8080];
 | 
						|
    firewall.interfaces."wg0".allowedUDPPorts = [8080];
 | 
						|
    firewall.allowedTCPPorts = [22 8080 8091 9090 9777 46899 46898];
 | 
						|
    firewall.allowedUDPPorts = [22 8080 8091 9090 9777 46899 46898];
 | 
						|
 | 
						|
    hostName = "shodan";
 | 
						|
  };
 | 
						|
  services.vpn-ip = {
 | 
						|
    ip = "4";
 | 
						|
  };
 | 
						|
 | 
						|
  xdg.portal.extraPortals = [pkgs.kdePackages.xdg-desktop-portal-kde];
 | 
						|
  services = {
 | 
						|
    displayManager = {
 | 
						|
      # defaultSession = "plasma";
 | 
						|
      sddm.wayland.enable = lib.mkForce true;
 | 
						|
      sddm.settings = {
 | 
						|
        Autologin = {
 | 
						|
          Session = "plasma.desktop";
 | 
						|
          User = "lillian";
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  environment.systemPackages = with pkgs; [
 | 
						|
    # Custom tools
 | 
						|
 | 
						|
    #System:
 | 
						|
    decky-loader
 | 
						|
    jre8
 | 
						|
    # jellyfin-media-player
 | 
						|
 | 
						|
    #rustdesk
 | 
						|
 | 
						|
    #Gaming:
 | 
						|
    heroic
 | 
						|
    legendary-gl
 | 
						|
    protontricks
 | 
						|
    rare
 | 
						|
    lutris
 | 
						|
 | 
						|
    (kodi.withPackages (kodiPkgs:
 | 
						|
      with kodiPkgs; [
 | 
						|
        steam-controller
 | 
						|
        invidious
 | 
						|
        youtube
 | 
						|
        netflix
 | 
						|
        upnext
 | 
						|
        sponsorblock
 | 
						|
        sendtokodi
 | 
						|
        jellyfin
 | 
						|
        inputstream-adaptive
 | 
						|
        inputstreamhelper
 | 
						|
        inputstream-ffmpegdirect
 | 
						|
        upnext
 | 
						|
        sponsorblock
 | 
						|
        sendtokodi
 | 
						|
        routing
 | 
						|
        requests-cache
 | 
						|
        requests
 | 
						|
        plugin-cache
 | 
						|
        a4ksubtitles
 | 
						|
      ]))
 | 
						|
  ];
 | 
						|
 | 
						|
  jovian = {
 | 
						|
    steam = {
 | 
						|
      enable = true;
 | 
						|
      autoStart = true;
 | 
						|
      user = "lillian";
 | 
						|
      desktopSession = "plasma";
 | 
						|
    };
 | 
						|
    decky-loader = {
 | 
						|
      enable = true;
 | 
						|
      package = pkgs.decky-loader-prerelease;
 | 
						|
      extraPackages = [pkgs.python3 pkgs.flatpak pkgs.uutils-findutils];
 | 
						|
    };
 | 
						|
    devices.steamdeck = {
 | 
						|
      enable = true;
 | 
						|
      autoUpdate = true;
 | 
						|
    };
 | 
						|
    steamos = {
 | 
						|
      enableAutoMountUdevRules = true;
 | 
						|
    };
 | 
						|
  };
 | 
						|
  fonts.packages = [pkgs.ttf-ms-win10];
 | 
						|
  # # Enable automounting of removable media
 | 
						|
  # services.udisks2.enable = true;
 | 
						|
  # services.devmon.enable = true;
 | 
						|
  # services.gvfs.enable = true;
 | 
						|
  # environment.variables.GIO_EXTRA_MODULES = lib.mkForce ["${pkgs.gvfs}/lib/gio/modules"];
 | 
						|
 | 
						|
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
						|
  system.stateVersion = "25.11";
 | 
						|
}
 |