{ config, lib, pkgs, ... }: with lib; mkIf (elem "desktop::sway" config.machine.services) { programs.sway = { enable = true; extraPackages = with pkgs; [ xwayland file i3status dmenu qt5.qtwayland grim slurp swaylock swayidle light mako wl-clipboard wf-recorder ]; wrapperFeatures = { base = true; gtk = true; }; extraSessionCommands = '' export GDK_BACKEND=wayland export CLUTTER_BACKEND=wayland export SDL_VIDEODRIVER=wayland # needs qt5.qtwayland in systemPackages export QT_QPA_PLATFORM=wayland-egl export QT_WAYLAND_FORCE_DPI=physical export QT_WAYLAND_DISABLE_WINDOWDECORATION="1" # Fix for some Java AWT applications (e.g. Android Studio), # use this if they aren't displayed properly: export _JAVA_AWT_WM_NONREPARENTING=1 ''; }; }