diff --git a/global/system.nix b/global/system.nix index fa92cda..1fa204b 100644 --- a/global/system.nix +++ b/global/system.nix @@ -1,5 +1,6 @@ # https://search.nixos.org/options user: { + inputs, config, pkgs, lib, @@ -9,16 +10,19 @@ user: { ./home.nix ]; - nix.settings = { - experimental-features = ["nix-command" "flakes"]; + nix = { + settings = { + experimental-features = ["nix-command" "flakes"]; + }; + settings.trusted-users = ["root" user]; + + registry.nixpkgs.flake = inputs.nixpkgs; }; nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ]; - nix.settings.trusted-users = ["root" user]; - boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; @@ -94,15 +98,12 @@ user: { services.xserver = { layout = lib.mkDefault "gb"; xkbOptions = "caps:escape"; - # extraLayouts = { - # mine = { - # description = "my layout"; - # languages = [ "eng" ]; - # symbolsFile = ./xkblayout; - # }; - # }; }; + system.configurationRevision = + pkgs.lib.mkIf (inputs.self ? rev) + inputs.self.rev; + hardware.opentabletdriver.enable = true; qt.enable = true; diff --git a/hardware/ddc.nix b/hardware/ddc.nix new file mode 100644 index 0000000..b8fddac --- /dev/null +++ b/hardware/ddc.nix @@ -0,0 +1,14 @@ +{pkgs, ...}: { + boot.kernelModules = [ + "i2c-dev" + ]; + + services.udev.extraRules = '' + ACTION=="add", SUBSYSTEM=="i2c-dev", ATTR{name}=="AMDGPU DM aux hw bus [0-9]*", TAG+="uaccess" + ACTION=="add", SUBSYSTEM=="i2c-dev", ATTR{name}=="AMDGPU DM i2c hw bus [0-9]*", TAG+="uaccess" + ''; + + environment.systemPackages = with pkgs; [ + ddcutil + ]; +} diff --git a/hardware/zenix.nix b/hardware/zenix.nix index 3dfb5a8..92fd275 100644 --- a/hardware/zenix.nix +++ b/hardware/zenix.nix @@ -8,6 +8,7 @@ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ./displays.nix + ./ddc.nix ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; @@ -65,10 +66,14 @@ networking.useDHCP = lib.mkDefault true; # networking.interfaces.enp5s0.useDHCP = lib.mkDefault true; - networking.networkmanager.insertNameservers = [ "1.1.1.1" "1.0.0.1" ]; + networking.networkmanager.insertNameservers = ["1.1.1.1" "1.0.0.1"]; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.opengl = { + enable = true; + driSupport32Bit = true; + }; hardware.keyboard.zsa.enable = true; diff --git a/lib/mkconf.nix b/lib/mkconf.nix index 818e2e6..21041fa 100644 --- a/lib/mkconf.nix +++ b/lib/mkconf.nix @@ -15,27 +15,23 @@ nixpkgs.lib.nixosSystem { inherit system; modules = [ - ({ - inputs, - pkgs, - ... - }: { - programs.hyprland = { - enable = true; - package = inputs.hyprland.packages.${pkgs.system}.hyprland; - }; - }) { nix.settings = { substituters = ["https://hyprland.cachix.org"]; trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; }; + programs.hyprland = { + enable = true; + package = inputs.hyprland.packages.${system}.hyprland; + }; } + inputs.stylix.nixosModules.stylix ({pkgs, ...}: { stylix.image = ../images/demonslayer.png; stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; }) + home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; diff --git a/lib/modules/gamer.nix b/lib/modules/gamer.nix index fb9d0f9..c2d06d0 100644 --- a/lib/modules/gamer.nix +++ b/lib/modules/gamer.nix @@ -14,6 +14,23 @@ with lib; { nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ]; + nixpkgs.config.packageOverrides = pkgs: { + steam = pkgs.steam.override { + extraPkgs = pkgs: + with pkgs; [ + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXScrnSaver + libpng + libpulseaudio + libvorbis + stdenv.cc.cc.lib + libkrb5 + keyutils + ]; + }; + }; home-manager.users.${user}.imports = [ { @@ -27,7 +44,6 @@ with lib; { BeatSaberModManager protontricks protonup-qt - gamemode gamescope monado @@ -57,6 +73,7 @@ with lib; { remotePlay.openFirewall = true; dedicatedServer.openFirewall = true; }; + programs.gamemode.enable = true; hardware.steam-hardware.enable = true; environment.etc.logitechG920 = {