-- technically these are workspace rules, not window rules, sue me hl.workspace_rule({ workspace = "1", monitor = "desc:Samsung Electric Company LS27A800U", default = true }) hl.workspace_rule({ workspace = "2", monitor = "desc:Seanix Technology Inc NX-EDG27X", default = true }) hl.workspace_rule({ workspace = "3", monitor = "desc:BOE 0x0BCA", default = true }) -- datagrip gets its own named workspace o.window("jetbrains-datagrip", { workspace = "name:DataGrip" }) -- creddy gets some special treatment -- this just gets ignored when monitor 1 isn't present, which is perfect o.window("creddy", { float = true, size = { 800, 600 }, monitor = 1 }) o.window("chrome-app.slack.com__client-Default", { workspace = "special:slack" }) -- If Slack dies or gets killed, I can relaunch it simply by re-summoning the workspace hl.workspace_rule({ workspace = "special:slack", on_created_empty = o.launch_webapp("https://app.slack.com/client") }) -- excluding floating windows allows the unlock and quick-access popups to show in any workspace o.window({ class = "com.onepassword.OnePassword", float = false }, { workspace = "special:1password" })