{ config, pkgs, lib, ... }: let dbus-sway-environment = pkgs.writeTextFile { name = "dbus-sway-environment"; destination = "/bin/dbus-sway-environment"; executable = true; text = '' dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr systemctl --user start pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr ''; }; configure-gtk = pkgs.writeTextFile { name = "configure-gtk"; destination = "/bin/configure-gtk"; executable = true; text = let schema = pkgs.gsettings-desktop-schemas; datadir = "${schema}/share/gsettings-schemas/${schema.name}"; in '' export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS gnome_schema=org.gnome.desktop.interface gsettings set $gnome_schema gtk-theme 'Dracula' ''; }; in { environment.systemPackages = with pkgs; [ alacritty bemenu configure-gtk dbus-sway-environment dracula-theme # gtk theme glib gnome.adwaita-icon-theme grim mako slurp sway swayidle swayimg swaylock-effects swaynotificationcenter waybar wayland wl-clipboard ]; services.dbus.enable = true; programs = { sway = { enable = true; wrapperFeatures.gtk = true; }; }; services.greetd.package = "greetd.wlgreet"; }