{ pkgs, config, lib, ... }: with lib; let cfg = config.erwin.sway; in { options.erwin.sway = { enable = mkEnableOption { description = "Enable sway"; }; }; config = mkIf (cfg.enable) { wayland.windowManager.sway = { enable = true; config = import ./sway.nix { inherit pkgs config lib; }; extraSessionCommands = '' export _JAVA_AWT_WM_NONREPARENTING=1 export MOZ_ENABLE_WAYLAND=1 export MOZ_DBUS_REMOTE=1 export QT_QPA_PLATFORM=wayland export QT_WAYLAND_DISABLE_WINDOWDECORATION="1" export QT_QPA_PLATFORMTHEME=qt5ct export SDL_VIDEODRIVER=wayland export SSH_AUTH_SOCK="''${XDG_RUNTIME_DIR}/gnupg/S.gpg-agent.ssh" ''; wrapperFeatures = { base = true; gtk = true; }; xwayland = true; }; programs.waybar = import ./waybar.nix { inherit pkgs config lib; }; home.file.".wallpapers".source = ./wallpapers; systemd.user.targets.tray = { Unit = { Description = "Home Manager System Tray"; Requires = [ "graphical-session-pre.target" ]; }; }; }; }