{ config, pkgs, ... }: { imports = [ ./common-gui.nix ]; environment.systemPackages = with pkgs; with gnome3; [ i3status ((waybar.override { pulseSupport = true; }).overrideDerivation (_: { patches = [ ./fix-waybar.patch ]; })) wofi ydotool wl-clipboard feh gnome_keyring networkmanagerapplet pcmanfm evince grim mako pavucontrol dconf-editor xdg_utils # for xdg-open # gnome3 core packages desktop_file_utils shared_mime_info glib gtk3 glib_networking gvfs dconf gnome_themes_standard defaultIconTheme hicolor_icon_theme # for QT_QPA_PLATFORM=wayland qt5.qtwayland wdisplays (pkgs.writeScriptBin "gsd-xsettings" '' #!/bin/sh exec ${pkgs.gnome3.gnome-settings-daemon}/libexec/gsd-xsettings "$@" '') ]; nixpkgs.config.packageOverrides = pkgs: with pkgs; { firefox = firefox-wayland; }; programs.sway = { enable = true; extraSessionCommands = '' if [ ! "$DBUS_SESSION_BUS_ADDRESS" ]; then exec ${pkgs.dbus}/bin/dbus-run-session "$0" "$@" fi export DBUS_SESSION_BUS_ADDRESS export SDL_VIDEODRIVER=wayland # https://github.com/swaywm/sway/issues/4506 export QT_QPA_PLATFORM=xcb # export QT_QPA_PLATFORM=wayland 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 # rust winit's wayland support is broken for input methods export WINIT_UNIX_BACKEND=x11 export XDG_DATA_DIRS=/run/current-system/sw/share/''${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS export $(${pkgs.gnome3.gnome_keyring}/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg) export XDG_CURRENT_DESKTOP=sway ''; }; services.xserver = { enable = true; libinput.enable = true; displayManager.lightdm.enable = true; displayManager.defaultSession = "sway"; }; services.dbus.packages = with pkgs; [ mako ]; xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-wlr ]; }