{ config, ... }:
{
  wayland.windowManager.sway.config = {
    defaultWorkspace = "1:${config.ws.w1}";

    window = {
      border = config.look.border.int;
      titlebar = false;
      commands = [
        # Scratchpads
        {
          criteria = { con_mark = "scratchpad"; };
          command = ''floating enable, sticky enable, move scratchpad, mark giveborder'';
        }
        {
          criteria = { app_id = "btop"; };
          command = ''mark scratchpad'';
        }
        {
          criteria = { app_id = "music"; };
          command = ''mark scratchpad'';
        }
        {
          criteria = { app_id = "sound"; };
          command = ''mark scratchpad'';
        }

        # Give apps that don't have them borders
        {
          criteria = { con_mark = "giveborder"; };
          command = ''border pixel ${config.look.border.string}'';
        }
        {
          criteria = { class = "steam"; };
          command = ''mark giveborder'';
        }
        {
          criteria = { app_id = "swappy"; };
          command = ''mark giveborder'';
        }
        {
          criteria = { app_id = "virt-manager"; };
          command = ''mark giveborder'';
        }
        {
          criteria = { window_role = "pop-up"; };
          command = ''mark giveborder'';
        }
      ];
    };
    assigns = {
      # Browsers
      "1:${config.ws.w1}" = [{ app_id = "MainBrowser"; }];
      "11:${config.ws.w1a}" = [{ app_id = "AltBrowser"; }];

      # Communication
      "7:${config.ws.w7}" = [
        { app_id = "MiscBrowser"; }
        { app_id = "vesktop"; }
      ];
      "8:${config.ws.w8}" = [
        { app_id = "org.gnome.Fractal"; }
        { app_id = "org.telegram.desktop"; }
      ];
      "9:${config.ws.w9}" = [{ app_id = "thunderbird"; }];

      # Etc
      "2:${config.ws.w2}" = [
        { class = "steam"; }
        { app_id = "heroic"; }
      ];
      "22:${config.ws.w2a}" = [{ app_id = "looking-glass-client"; }];
      "44:${config.ws.w4a}" = [{ app_id = "com.obsproject.Studio"; }];
    };
    focus.newWindow = "focus";
  };
}