{ pkgs, lib, config, ... }:
with lib;
let
  cfg = config.modules.desktop.sway;
in
{
  options.modules.desktop.sway = {
    enable = mkEnableOption "Enable Steam Platform";
  };
  config = mkIf cfg.enable {
    security.pam.services.swaylock = {};
    security.rtkit.enable = true;
    services.pipewire = {
      enable = true;
      alsa.enable = true;
      alsa.support32Bit = true;
      pulse.enable = true;
    };
    xdg.portal = {
      enable = true;
      wlr.enable = true;
      # gtk portal needed to make gtk apps happy
      extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
      config = {
        common = {
          default = [
            "gtk"
          ];
          "org.freedesktop.impl.portal.ScreenCast" = "wlr";
          "org.freedesktop.impl.portal.Screenshot" = "wlr";
        };
      };
    };
  };
}
