{ config, lib, pkgs, modulesPath, ... }: let flake-compat = builtins.fetchTarball "https://github.com/edolstra/flake-compat/archive/master.tar.gz"; hyprland = (import flake-compat { src = builtins.fetchTarball "https://github.com/hyprwm/Hyprland/archive/master.tar.gz"; }).defaultNix; in { nix.settings = { substituters = [ "https://hyprland.cachix.org" ]; trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; }; imports = [ hyprland.nixosModules.default ]; nixpkgs.overlays = [ (self: super: { system76-scheduler = pkgs.callPackage ./syspkgs/system76-scheduler.nix {}; kwin-system76-scheduler-integration = pkgs.libsForQt5.callPackage ./syspkgs/kwin-system76-scheduler-integration.nix {}; }) ]; boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.kernelModules = [ "dm-snapshot" ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; fileSystems."/boot" = { device = "/dev/disk/by-uuid/1C5C-8FF4"; fsType = "vfat"; }; swapDevices = [ ]; networking.useDHCP = lib.mkDefault true; boot.loader.systemd-boot.configurationLimit = 2; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; networking.hostName = "adrift"; # Define your hostname. services.xserver.videoDrivers = [ "i915" ]; services.power-profiles-daemon.enable = false; services.tlp.enable = true; users.users.plank = { isNormalUser = true; extraGroups = [ "wheel" ]; }; fileSystems."/" = { device = "/dev/mapper/nix-os"; fsType = "ext4"; }; fileSystems."/home" = { device = "/dev/mapper/nix-home"; fsType = "ext4"; }; environment.systemPackages = with pkgs; [ wl-clipboard wl-clipboard-x11 xclip system76-scheduler kwin-system76-scheduler-integration ]; programs.hyprland = { enable = true; xwayland = { enable = true; hidpi = false; }; nvidiaPatches = true; }; programs.xwayland.enable = true; systemd.services."com.system76.Scheduler" = { wantedBy = [ "multi-user.target" ]; description = "the system76 process scheduler"; serviceConfig = { Type = "dbus"; ExecStart = ''${pkgs.system76-scheduler}/bin/system76-scheduler daemon''; ExecReload = ''${pkgs.system76-scheduler}/bin/system76-scheduler daemon reload''; BusName = "com.system76.Scheduler"; }; }; services.dbus.packages = [ pkgs.kwin-system76-scheduler-integration pkgs.system76-scheduler ]; systemd.packages = [ pkgs.kwin-system76-scheduler-integration pkgs.system76-scheduler ]; environment.etc = { "system76-scheduler".source = "${pkgs.system76-scheduler}/etc/system76-scheduler"; }; xdg.portal = { enable = true; wlr = { enable = true; }; extraPortals = with pkgs; [ xdg-desktop-portal-kde xdg-desktop-portal-gtk ]; }; }