#
#  Sway configuration
#
#  flake.nix
#   ├─ ./hosts
#   │   └─ ./laptop
#   │       └─ default.nix
#   └─ ./modules
#       └─ ./desktop
#           └─ ./hyprland
#               └─ hyprland.nix *
#

{ config, lib, user, pkgs, ... }:

{
  imports = [ ../../programs/waybar.nix ];

  hardware.opengl = {
    enable = true;
  };

  environment = {
    loginShellInit = ''
      if [ -z $DISPLAY ] &&  [ $UID != 0 ] && [ "$(tty)" = "/dev/tty1" ]; then
        exec Hyprland
      fi
    '';                                   # Will automatically open sway when logged into tty1
    variables = {
      MOZ_ENABLE_WAYLAND = "1";
      MOZ_WEBRENDER = "1";
      MOZ_USE_XINPUT2 = "2";
      MOZ_DBUS_REMOTE = "1";
      #GDK_BACKEND = "wayland";
      LIBVA_DRIVER_NAME = "iHD";
      VDPAU_DRIVER = "iHD";
      XDG_SESSION_TYPE = "wayland";
      XDG_CURRENT_DESKTOP = "Unity";
      #QT_QPA_PLATFORMTHEME = "wayland-egl";
      GST_VAAPI_ALL_DRIVERS = "1";
      GTK_THEME = "Arc";
      _JAVA_AWT_WM_NONREPARENTING = "1";
      #LIBCL_ALWAYS_SOFTWARE = "1";       # For applications in VM like alacritty to work
      #WLR_NO_HARDWARE_CURSORS = "1";     # For cursor in VM
    };
    systemPackages = with pkgs; [
      xdg-desktop-portal-wlr
      swaylock
      swayidle
      slurp
      grim
    ];
  };

  programs = {
    hyprland.enable = true;
  };

  security.pam.services.swaylock = {};

  xdg.portal = {                                  # Required for flatpak with windowmanagers
    #enable = true;
    wlr.enable = true;
  };
}