From 3477a3480ffce0495f4b8aeae5ee1aaab0c9517e Mon Sep 17 00:00:00 2001 From: John Ogle Date: Sat, 5 Oct 2024 19:00:35 -0700 Subject: [PATCH] [boxy] Fix wayland and user setup --- flake.nix | 13 +++--- machines/boxy/configuration.nix | 5 ++- roles/kodi/default.nix | 74 ++++++++++++++++++--------------- 3 files changed, 50 insertions(+), 42 deletions(-) diff --git a/flake.nix b/flake.nix index 945cd15..a34c924 100644 --- a/flake.nix +++ b/flake.nix @@ -55,13 +55,12 @@ system = "x86_64-linux"; modules = baseModules ++ [ ./machines/boxy/configuration.nix - # inputs.home-manager.nixosModules.home-manager - # { - # home-manager.users.johno = import ./home/home-default.nix; - # home-manager.extraSpecialArgs.customPkgs = - # nixpkgs.legacyPackages."${system}".callPackage ./packages {}; - # customPkgs = nixpkgs.legacyPackages."${system}".callPackage ./packages {}; - # } + inputs.home-manager.nixosModules.home-manager + { + home-manager.users.johno = import ./home/home-default.nix; + home-manager.extraSpecialArgs.customPkgs = + nixpkgs.legacyPackages."${system}".callPackage ./packages {}; + } ]; }; }; diff --git a/machines/boxy/configuration.nix b/machines/boxy/configuration.nix index 431deb4..462ee4a 100644 --- a/machines/boxy/configuration.nix +++ b/machines/boxy/configuration.nix @@ -17,8 +17,9 @@ with lib; kodi = { enable = true; autologin = true; - wayland = false; + wayland = true; }; + users.enable = true; }; # Use the systemd-boot EFI boot loader. @@ -29,7 +30,7 @@ with lib; hardware.graphics.enable = true; - #services.displayManager.enable = mkForce false; + services.displayManager.enable = mkForce false; # This option defines the first version of NixOS you have installed on this particular machine, # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. diff --git a/roles/kodi/default.nix b/roles/kodi/default.nix index 76e10d6..0eed6a9 100644 --- a/roles/kodi/default.nix +++ b/roles/kodi/default.nix @@ -25,39 +25,47 @@ in steam-library youtube ]); - in mkIf cfg.enable { - users.extraUsers.kodi.isNormalUser = true; + in mkIf cfg.enable + { + users.extraUsers.kodi.isNormalUser = true; - networking.firewall = { - allowedTCPPorts = [ 8080 ]; - allowedUDPPorts = [ 8080 ]; + networking.firewall = { + allowedTCPPorts = [ 8080 ]; + allowedUDPPorts = [ 8080 ]; + }; + + services = if cfg.autologin then mkMerge [ + (mkIf cfg.wayland { + cage = mkIf cfg.wayland { + user = "kodi"; + program = "${kodiPkg}/bin/kodi-standalone"; + enable = true; + }; + xserver = { + enable = false; + autorun = false; + }; + }) + + (mkIf (!cfg.wayland) { + xserver = { + enable = true; + desktopManager.kodi = { + enable = true; + package = kodiPkg; + }; + displayManager.lightdm = { + enable = true; + greeter.enable = false; + }; + }; + displayManager = { + autoLogin.enable = true; + autoLogin.user = "kodi"; + defaultSession = "kodi"; + sessionData.autologinSession = "kodi"; + }; + }) + ] else {}; }; - - services = mkIf cfg.autologin { - cage = mkIf cfg.wayland { - user = "kodi"; - program = "${kodiPkg}/bin/kodi-standalone"; - enable = true; - }; - - xserver = mkIf (!cfg.wayland) { - enable = true; - desktopManager.kodi = { - enable = true; - package = kodiPkg; - }; - displayManager.lightdm = { - enable = true; - greeter.enable = false; - }; - displayManager.sddm.enable = mkForce false; - }; - displayManager = mkIf (!cfg.wayland) { - autoLogin.enable = true; - autoLogin.user = "kodi"; - defaultSession = "kodi"; - sessionData.autologinSession = "kodi"; - }; - }; - }; }