{ pkgs, ... }:
{
  home.packages = with pkgs; [ wl-clipboard ];
  wayland = {
    windowManager.sway =
      let
        modifier = "Mod4";
      in
      {
        enable = true;
        config = {
          modifier = modifier;
          menu = "${pkgs.bemenu}/bin/bemenu-run -b -m 1 -p 'λ'";
          output = {
            HDMI-A-2 = {
              #bg = "~/dotfiles/dotfiles/xorg/wallpaper.jpg fill";
            };
          };
          #fonts = [ "Font Awesome" "Fira Code" ];
          terminal = "${pkgs.foot}/bin/footclient";
          bars = [
            {
              command = "${pkgs.waybar}/bin/waybar";
            }
          ];
          #startup = [{
          #command = "systemctl --user restart redshift";
          # always = true;
          #}];
          window.commands = [
            { criteria = { app_id = "mpv"; }; command = "sticky enable"; }
            { criteria = { app_id = "mpv"; }; command = "floating enable"; }
            { criteria = { title = "MetaMask Notification.*"; }; command = "floating enable"; }
          ];
          input = {
            "*" = {
              xkb_layout = "us";
              xkb_variant = "intl";
            };
          };
        };
        extraConfig = ''
          bindsym ${modifier}+p move workspace to output right
          #exec systemctl --user import-environment
          #exec systemctl --user start graphical-session.target
        '';
        xwayland = true;
        systemdIntegration = true;
      };
  };

  programs.waybar = {
    enable = true;
    style = builtins.readFile ./style.css;
    settings = [
      {
        layer = "top";
        position = "top";
        output = [ "HDMI-A-2" ];

        modules-left = [
          "sway/mode"
          "sway/workspaces"
        ];
        modules-center = [ ];
        modules-right = [
          "idle_inhibitor"
          "tray"
          "network"
          "cpu"
          "memory"
          "pulseaudio"
          "clock"
          "backlight"
          "battery"
        ];

        modules = {
          "sway/workspaces" = {
            all-outputs = true;
            disable-scroll-wraparound = true;
          };

          "sway/mode" = { tooltip = false; };

          idle_inhibitor = {
            format = "{icon}";
            format-icons = {
              activated = "unlocked";
              deactivated = "locking";
            };
          };

          pulseaudio = {
            format = "vol {volume}%";
            on-click-middle = "${pkgs.sway}/bin/swaymsg exec \"${pkgs.pavucontrol}/bin/pavucontrol\"";
          };

          network = {
            format-wifi = "{essid} {signalStrength}% {bandwidthUpBits} {bandwidthDownBits}";
            format-ethernet = "{ifname} eth {bandwidthUpBits} {bandwidthDownBits}";
          };

          cpu = {
            interval = 2;
            format = "cpu {load}% {usage}%";
          };

          memory.format = "mem {}%";

          backlight = {
            format = "nit {percent}%";
            on-scroll-up = "${pkgs.light}/bin/light -A 2";
            on-scroll-down = "${pkgs.light}/bin/light -U 2";
          };

          tray.spacing = 10;

          clock.format = "{:%a %b %d %H:%M}";

          battery = {
            format = "bat {}";
          };
        };

      }
    ];
  };
}