# Auto starting browsers

**URL:** <http://forum.hypr.land/t/auto-starting-browsers/2084>\
**Category:** Bugs / FRs / Support\
**Tags:** hyprland, script, window-management\
**Created:** [August 9, 2026, 12:57pm UTC](http://forum.hypr.land/t/auto-starting-browsers/2084 "2026-08-09T12:57:26Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mingy](http://forum.hypr.land/letter_avatar_proxy/v4/letter/m/7ea924/32.png) [@mingy](http://forum.hypr.land/u/mingy)\
**Post date:** [August 9, 2026, 12:57pm UTC](http://forum.hypr.land/t/auto-starting-browsers/2084/1 "2026-08-09T12:57:26Z")

</div>

> **Hyprland version**
>
> ```auto
> 0.56.2
> 
> ```

I was trying to set up brave-origin to auto start on workspaces 2 and 12 with hl.exec\_cmd on hyprland.start:

```auto
hl.on("hyprland.start", function ()

    hl.exec_cmd("brave-origin", {workspace = "12"})

end)

```

But it ended up on workspace 1 instead.  
I found this forum post: [Can't auto start apps on scratchpads](https://forum.hypr.land/t/cant-auto-start-apps-on-scratchpads/1155)  
Where it was mentioned that “exec rules only work if the process never forks, browsers almost always do” and that it would be fixed in the next release.  
Wondering if there has been a fix for this, thank you.

---

<div class="post-metadata">

**Author:** ![fosseder](http://forum.hypr.land/user_avatar/forum.hypr.land/fosseder/32/1406_2.png) [@fosseder](http://forum.hypr.land/u/fosseder)\
**Post date:** [August 9, 2026, 5:03pm UTC](http://forum.hypr.land/t/auto-starting-browsers/2084/2 "2026-08-09T17:03:07Z")

</div>

I personally never use exec rules, window rules are almost always a much better choice:

```lua
hl.on("hyprland.start", function ()
    hl.exec_cmd("brave-origin")
end)

hl.window_rule({
    name = "autostart-brave-on-workspace-12",
    match = { class = "^brave-origin$" },

    workspace = 12
})

```
