Launching Local Web Dashboards in Specific XFCE Workspaces.
If you’re using Chromium to access web interfaces like Home Assistant, Proxmox VE, OpenWrt, or OPNsense, you may want each to launch in its own minimal window — and automatically appear in a specific XFCE workspace. This guide shows you how to do just that, using Chromium app mode plus either wmctrl
or devilspie2
.
🔧 Prerequisites
Install required tools:
sudo apt install wmctrl devilspie2
You must also create a separate Chromium profile directory for each dashboard to keep sessions and logins isolated:
mkdir -p ~/.chromium-profile-ha
mkdir -p ~/.chromium-profile-proxmox
mkdir -p ~/.chromium-profile-openwrt
🚀 Chromium App Mode Basics
Chromium can open a webpage in a window that looks and behaves like a standalone app:
chromium --user-data-dir=$HOME/.chromium-profile-ha \
--app=http://192.168.1.100:8123 \
--window-size=1000,800 \
--window-position=100,100
This opens Home Assistant in a distraction-free window, with no tabs, toolbar, or address bar.
🧭 Option A: Assign Workspaces Using wmctrl
Use wmctrl
to move each window to a specific workspace after launching.
Create a launcher script like this:
#!/bin/bash
# Start Chromium in app mode
chromium --user-data-dir=$HOME/.chromium-profile-ha \
--app=http://192.168.1.100:8123 \
--window-size=1000,800 \
--window-position=100,100 &
# Wait briefly, then move window to workspace 2 (index starts at 0)
sleep 3
wmctrl -r "Home Assistant" -t 1
Create a separate script and launcher for each dashboard (e.g., Proxmox to workspace 3).
In XFCE, create a launcher pointing to your script:
- Right-click desktop or panel → Create Launcher
- Set the script as the command
- Name it and pick an icon
🔄 Option B: Auto-Assign Workspaces with devilspie2
devilspie2
watches for new windows and assigns them based on title or application name.
- Create the config folder:
mkdir -p ~/.config/devilspie2
- Add a rule, e.g.
~/.config/devilspie2/ha.lua
:
if (get_application_name() == "Chromium") and (get_window_title():match("Home Assistant")) then
set_workspace(2) -- Workspace 3 (index starts at 1)
end
- Launch
devilspie2
in background (or autostart it):
devilspie2 &
Any time the window titled “Home Assistant” appears, it will move to workspace 3.
You can create additional .lua
files for other dashboards (e.g., proxmox.lua
, openwrt.lua
).
🔒 Security Tip
Using separate Chromium profiles allows persistent logins without storing tokens in plain text. However:
- Anyone with access to your user account can open the dashboard without re-entering credentials.
- For shared systems, consider creating separate Linux users or locking the screen when unattended.
✅ Conclusion
With Chromium in app mode, and either wmctrl
or devilspie2
, you can build a smooth admin console experience across multiple XFCE workspaces. Each web UI opens in its own clean window, right where you expect it.