{ config, ... }:
{
  wayland.windowManager.hyprland.settings = {
    windowrulev2 = [
      # Scratchpads
      "workspace special:btop silent, class:^(btop)$"
      "workspace special:music silent, class:^(music)$"
      "workspace special:sound silent, class:^(sound)$"

      # Browsers
      "workspace name:${config.ws.w1} silent, class:(MainBrowser)"
      "workspace name:${config.ws.w1a} silent, class:(AltBrowser)"

      # Communication
      "workspace name:${config.ws.w7} silent, class:(MiscBrowser)"
      "workspace name:${config.ws.w7} silent, class:(vesktop)"
      "workspace name:${config.ws.w8} silent, class:(org.gnome.Fractal)"
      "workspace name:${config.ws.w8} silent, class:(org.telegram.desktop)"
      "workspace name:${config.ws.w9} silent, class:(thunderbird)"

      # Etc
      "workspace name:${config.ws.w2} silent, class:(steam)"
      "workspace name:${config.ws.w2} silent, class:(heroic)"
      "workspace name:${config.ws.w2a} silent, class:(looking-glass-client)"
      "workspace name:${config.ws.w4a} silent, class:(com.obsproject.Studio)"

      # Borderless single window part 1
      "bordersize 0, floating:0, onworkspace:w[tv1]"
    ];

    # Borderless on single window part 2
    workspace = [ "w[tv1], gapsout:0, gapsin:0" ];

    # Borderless screenshots
    layerrule = "noanim, selection";
  };
}
