{ flake, inputs, outputs, lib, config, pkgs, modulesPath, ... }: { networking.hostName = "thablet"; imports = [ (modulesPath + "/installer/scan/not-detected.nix") flake.diskoConfigurations.standard inputs.hardware.nixosModules.lenovo-thinkpad-x1-yoga ] ++ (with outputs.nixosModules; [ desktop-usage sway # gnome kde wifi flanfam flanfamkiosk ]); services.xserver.displayManager.gdm = { enable = false; }; services.xserver.displayManager.sddm.enable = false; services.xserver.displayManager.lightdm.enable = true; services.touchegg.enable = true; home-manager.users.daniel = { imports = with outputs.homeManagerModules; [ sway ]; }; nixpkgs = { overlays = [ outputs.overlays.additions outputs.overlays.modifications outputs.overlays.unstable-packages ]; config = { allowUnfree = true; }; }; nix = { registry = lib.mapAttrs (_: value: {flake = value;}) inputs; nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; settings = { experimental-features = "nix-command flakes"; auto-optimise-store = true; }; }; boot.loader.systemd-boot.enable = true; services.fprintd = { # TODO: am I missing a driver? see arch wiki for this h/w enable = true; tod.enable = true; tod.driver = pkgs.libfprint-2-tod1-goodix; }; # environment.systemPackages = #with pkgs; # []; programs.steam.enable = true; programs.steam.remotePlay.openFirewall = true; # https://wiki.archlinux.org/title/Lenovo_ThinkPad_X1_Yoga_(Gen_3)#Using_acpi_call systemd.services.activate-touch-hack = { enable = true; description = "Touch wake Thinkpad X1 Yoga 3rd gen hack"; unitConfig = { After = ["suspend.target" "hibernate.target" "hybrid-sleep.target" "suspend-then-hibernate.target"]; }; serviceConfig = { ExecStart = '' /bin/sh -c "echo '\\_SB.PCI0.LPCB.EC._Q2A' > /proc/acpi/call" ''; }; wantedBy = ["suspend.target" "hibernate.target" "hybrid-sleep.target" "suspend-then-hibernate.target"]; }; boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"]; boot.initrd.kernelModules = []; boot.kernelModules = ["kvm-intel" "acpi_call"]; boot.extraModulePackages = with config.boot.kernelPackages; [acpi_call]; networking.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; system.stateVersion = "23.11"; }