{ pkgs, depot, lib, config, ... }:
{
  imports = [ ./graphical-client.nix ];

  home.packages = lib.mkAfter (with pkgs; [
    element-desktop
    swaylock
    swayidle
    wl-clipboard
    waybar
    mako
    kanshi

    qt5.qtwayland
  ]);

  wayland.windowManager.sway = {
    enable = true;
    wrapperFeatures.gtk = true;
    extraSessionCommands = ''
      export SDL_VIDEODRIVER=wayland
      export QT_QPA_PLATFORM=wayland
      export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
      export XDG_CURRENT_DESKTOP=sway
      export MOZ_ENABLE_WAYLAND=1
      export MOZ_USE_XINPUT2=1
      export NIXOS_OZONE_WL=1 
    '';
    config = {
      modifier = "Mod4";
      keybindings = let
        modifier = config.wayland.windowManager.sway.config.modifier;
      in lib.mkOptionDefault {
        "${modifier}+l" = "exec ${pkgs.swaylock}/bin/swaylock -i ${depot.pkgs.lukegb-wallpapers}/lunik1-gruvbox-dark-rainbow.png -s stretch";
        "${modifier}+p" = "exec ${depot.nix.pkgs.flameshot}/bin/flameshot gui";
        "${modifier}+Return" = "exec ${pkgs.kitty}/bin/kitty";
      };
      startup = [
        { command = "${pkgs._1password-gui}/bin/1password --silent"; }
        { command = "${pkgs.mako}/bin/mako --anchor=bottom-right"; }
      ];

      output."*".bg = "${depot.pkgs.lukegb-wallpapers}/lunik1-gruvbox-dark-rainbow.png fill";

      # howl: tap-to-click
      input."1739:24385:Synaptics_TM2438-005" = {
        tap = "enabled";
        tap_button_map = "lrm";
        middle_emulation = "enabled";
      };
    };
  };
}