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.

  1. Create the config folder:
mkdir -p ~/.config/devilspie2
  1. 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
  1. 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.

WordPress Appliance - Powered by TurnKey Linux