configuration.nix

Branches > main > 149093b > files / nixos / machines / pc / configuration.nix

{ config, pkgs, callPackage, ... }:

{
  imports = [
    ./hardware-configuration.nix
    (import ../../modules/base.nix {inherit pkgs;})
    (import ../../modules/i3.nix {inherit pkgs;})
    (import ../../modules/bluetooth.nix {inherit pkgs;})
  ];

  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  home-manager.backupFileExtension = "backup-home";

  networking.hostName = "pc";

  ## Nvidia here
  services.xserver.dpi = 300;

  hardware.nvidia = {
    modesetting.enable = true;
    powerManagement.enable = false;
    powerManagement.finegrained = false;
    open = true;
    nvidiaSettings = true;
    package = config.boot.kernelPackages.nvidiaPackages.stable;
  };

  ## More ai smiesmie
  boot.kernelParams = [ "usbcore.autosuspend=-1" ];

  services.usbmuxd = {
    enable = true;
    package = pkgs.usbmuxd2;
  };

  hardware.graphics.enable = true;

  ## Disable SSH gui popup thing?
  programs.ssh.askPassword = "";
  programs.ssh.startAgent = true;

  services.udev.extraRules = ''
    SUBSYSTEM=="hidraw", ATTRS{idVendor}=="feed", ATTRS{idProduct}=="400d", MODE="0666"
  '';

  programs.nix-ld.enable = true;
  # services.usbmuxd.enable = true;
  services.printing.enable = true;
  services.blueman.enable = true;

  users.users.grahp = {
    isNormalUser = true;
    description = "Grahp";
    extraGroups = ["networkmanager" "wheel" "dialout"];
    shell = pkgs.fish;
  };

  services.openssh = {
    enable = true;
    passwordAuthentication = false;
    permitRootLogin = "no";
  };

  programs.fish.enable = true;
  environment.shells = [pkgs.fish];
  programs.firefox.enable = true;

  programs.steam = {
    enable = true;
    remotePlay.openFirewall = true;
    dedicatedServer.openFirewall = true;
    localNetworkGameTransfers.openFirewall = true;
  };

  hardware.steam-hardware.enable = true;

  boot.extraModulePackages = with config.boot.kernelPackages; [
    v4l2loopback
  ];
  boot.kernelModules = [ "v4l2loopback" ];
  boot.extraModprobeConfig = ''
    options v4l2loopback devices=1 video_nr=2 card_label="OBS Virtual Camera" exclusive_caps=1 formats=YUYV,MJPEG
    '';
  security.polkit.enable = true;

  programs.obs-studio.enableVirtualCamera = true;

  ## No touchy says the comment!
  system.stateVersion = "24.11";
}