68 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  inputs',
 | 
						|
  config,
 | 
						|
  lib,
 | 
						|
  pkgs,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  inherit (lib) concatStringsSep getExe mkIf;
 | 
						|
  inherit (config.ooknet.workstation) environment;
 | 
						|
  inherit (inputs'.hyprland.packages) xdg-desktop-portal-hyprland hyprland;
 | 
						|
in {
 | 
						|
  config = mkIf (environment == "hyprland") {
 | 
						|
    programs.hyprland = {
 | 
						|
      enable = true;
 | 
						|
      package = hyprland;
 | 
						|
      portalPackage = xdg-desktop-portal-hyprland;
 | 
						|
    };
 | 
						|
 | 
						|
    xdg.portal = {
 | 
						|
      enable = true;
 | 
						|
      extraPortals = [
 | 
						|
        pkgs.xdg-desktop-portal-gtk
 | 
						|
        xdg-desktop-portal-hyprland
 | 
						|
      ];
 | 
						|
      config.common = {
 | 
						|
        default = ["gtk"];
 | 
						|
        "org.freedesktop.impl.portal.Screencast" = "hyprland";
 | 
						|
        "org.freedesktop.impl.portal.Screenshot" = "hyprland";
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    # required for wayland screen lockers to work
 | 
						|
    security.pam.services.hyprlock.text = "auth include login";
 | 
						|
 | 
						|
    services.greetd = {
 | 
						|
      enable = true;
 | 
						|
      vt = 2;
 | 
						|
      settings = {
 | 
						|
        default_session = {
 | 
						|
          command = concatStringsSep " " [
 | 
						|
            (getExe pkgs.greetd.tuigreet)
 | 
						|
            "--time"
 | 
						|
            "--remember"
 | 
						|
            "--cmd"
 | 
						|
            (getExe hyprland)
 | 
						|
          ];
 | 
						|
          user = "greeter";
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    systemd.services.greetd.serviceConfig = {
 | 
						|
      Type = "idle";
 | 
						|
      StandardInput = "tty";
 | 
						|
      StandardOutput = "tty";
 | 
						|
      StandardError = "journal"; # Without this errors will spam on screen
 | 
						|
      # Without these bootlogs will spam on screen
 | 
						|
      TTYReset = true;
 | 
						|
      TTYVHangup = true;
 | 
						|
      TTYVTDisallocate = true;
 | 
						|
    };
 | 
						|
 | 
						|
    nix.settings = {
 | 
						|
      substituters = ["https://hyprland.cachix.org"];
 | 
						|
      trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |