Back to Seelen Ui

Seelen UI — Feature Reference

FEATURES.md

2.6.556.1 KB
Original Source

Seelen UI — Feature Reference

Seelen UI is a fully customizable Windows desktop environment built on Rust + Tauri (backend) and TypeScript + React/Preact/Svelte (frontend). Every major component is a widget — a sandboxed WebView with its own settings, shortcuts, and theme overrides.


Table of Contents

Core Resources

  1. Global Settings
  2. Themes
  3. Icon Packs
  4. Sound Packs
  5. Wallpaper Manager

Desktop Environment 6. Virtual Desktops 7. SeelenWeg — Dock / Taskbar 8. Fancy Toolbar 9. Window Manager (Tiling WM) 10. Apps Menu (Start Menu)

Overlay Widgets 11. Task Switcher 12. Workspaces Viewer 13. Popup Widget

Status & Notification Widgets 14. Quick Settings 15. Notifications 16. Clipboard History 17. Flyouts

Popup Widgets 18. Media Popup 19. Network Popup 20. Bluetooth Popup 21. Calendar Popup 22. Power Menu 23. User Menu

Toolbar System Widgets 24. System Tray 25. Keyboard Selector

Shared UI Components 26. Context Menu 27. Tooltip

Configuration & System 28. Settings Window 29. Plugins System 30. Per-Monitor Configuration 31. App Rules (Per-App Configuration) 32. Shortcuts 33. Performance Mode 34. Backup & Sync 35. Developer & Extras


Global Settings

Settings that apply to the entire application (stored in the Settings struct):

SettingDescription
languageUI language; null uses the system locale
dateFormatMomentJS date format string (e.g. "YYYY-MM-DD")
startOfWeekFirst day of week for calendars: Monday, Sunday, or Saturday
activeThemesOrdered list of active theme IDs (stacked)
activeIconPacksOrdered list of active icon pack IDs
devToolsShow/hide the Developer Tools tab in Settings
drpcDiscord Rich Presence integration on/off
streamingModeReplaces sensitive info (email, names) with placeholders in recordings
hardwareAccelerationEnable/disable GPU acceleration for WebViews
unstableOptimizationsChromium --process-per-site flag (may reduce RAM, risk of crashes)
pollingIntervalSeconds between system resource polls (CPU, memory, network)
suspendOnGameModeSuspend all WebViews when Windows Game Mode is active
backupSyncEnabledAutomatic cloud backup sync on/off
performanceModePerformance profile per power state (see Performance Mode)
shortcutsGlobal shortcut enable/disable + key overrides
updater.channelUpdate channel: Stable, Beta, or Nightly
byWidgetPer-widget settings overrides (merged with widget defaults)
byThemePer-theme CSS variable overrides
byWallpaperPer-wallpaper display settings
wallpaperCollectionsNamed wallpaper collections
monitorsV3Per-monitor configuration dictionary

Themes

Themes apply CSS to individual widgets and shared component styles (buttons, inputs, scrollbars, etc.).

Theme Structure

  • ID — unique resource ID (e.g. @username/my-theme)
  • Metadata — display name, description, tags, preview images
  • styles — a map of widgetId → CSS string; only the widgets listed receive styles
  • sharedStyles — CSS injected into all widgets (suitable for component library overrides)
  • settings — a typed settings declaration (ThemeSettingsDefinition) that generates a UI panel in Settings allowing end-users to customize CSS variables exposed by the theme

Theme Variable Types

Themes can declare the following variable types for user customization:

SyntaxWhat it controls
<string>Arbitrary text value
<color>Color picker
<length-percentage>Numeric value with unit (px, rem, %, …)
<number>Plain number
<url>URL string
<family-name>Font family picker

System CSS Variables (always available)

Themes and custom CSS can reference these variables injected by the engine:

VariableSource
--system-accent-colorWindows accent color
--system-accent-light-colorAccent light variant
--system-accent-lighter-colorAccent lighter variant
--system-accent-lightest-colorAccent lightest variant
--system-accent-dark-colorAccent dark variant
--system-accent-darker-colorAccent darker variant
--system-accent-darkest-colorAccent darkest variant
--color-gray-*Gray scale palette (50–900)
--slu-std-ui-colorAdaptive accent color (light/dark aware)

Bundled Themes

ThemeIDTargets
Default@default/themeAll core widgets
Bubbles@default/bubblesFancy Toolbar

Theme Per-Widget Customization

Each theme can independently style any of the following widgets:

  • @seelen/fancy-toolbar
  • @seelen/weg
  • @seelen/window-manager
  • @seelen/wallpaper-manager
  • @seelen/apps-menu
  • @seelen/quick-settings
  • @seelen/bluetooth-popup
  • @seelen/network-popup
  • @seelen/media-popup
  • @seelen/calendar-popup
  • @seelen/notifications
  • @seelen/power-menu
  • @seelen/task-switcher
  • @seelen/system-tray
  • @seelen/workspaces-viewer
  • @seelen/user-menu
  • @seelen/keyboard-selector
  • @seelen/context-menu
  • @seelen/flyouts
  • @seelen/tooltip
  • Any third-party widget by its ID

Multiple Themes (Stacking)

Multiple themes can be active simultaneously. Styles are applied in order — later themes override earlier ones. This enables a "base theme + accent theme" workflow.

Theme Settings UI

The Settings window renders a full configuration panel for each active theme's declared variables, allowing users to override colors, sizes, fonts, etc., without editing CSS.


Icon Packs

Icon packs replace the default application icons shown in the dock, taskbar, and Start Menu.

  • Multiple icon packs can be active simultaneously (first match wins)
  • Entries match by application path, UMID, or process name
  • A missing icon fallback is supported for unmatched apps
  • Remote entries are downloaded and cached locally
  • The Icon Pack Editor in Settings allows creating/editing custom icon packs
  • Icons can be exported per-app as custom overrides

Sound Packs

Sound Packs are a resource kind (ResourceKind.SoundPack) defined in the core library and listed as a section in the Settings Resources navigation. The feature is currently not implemented — the Settings component returns null and no audio playback infrastructure exists.

This is a placeholder for a future feature that would allow replacing system sound effects with custom audio packs.


Wallpaper Manager

ID: @seelen/wallpaper-manager

Full-featured animated desktop background engine that replaces the Windows wallpaper system.

Wallpaper Types

TypeDescription
ImageStatic image file (JPG, PNG, WebP, etc.)
VideoVideo file played as wallpaper (MP4, WebM, etc.)
LayeredCustom HTML/CSS/JS layer rendered as wallpaper
MediaPlayerSynced with system media playback
UnsupportedUnrecognized format

Wallpaper Settings (global)

SettingDescription
enabledEnable/disable the wallpaper engine
intervalRotation interval in seconds (min 60 s)
randomizeRandomize wallpaper order
defaultCollectionDefault wallpaper collection ID
multimonitorBehaviourPerMonitor (independent) or Extend (panoramic)
useAccentColorExtract and apply Windows accent color from the current wallpaper

Per-Wallpaper Instance Settings

Each wallpaper can be individually configured:

SettingOptions / Range
playbackSpeedVideo playback speed multiplier
flipVerticalFlip image/video vertically
flipHorizontalFlip image/video horizontally
blurBlur intensity (0–∞)
objectFitFill, Contain, Cover, None, ScaleDown
objectPositionCSS-style position (e.g. center center)
saturationColor saturation (0–2, default 1)
contrastContrast level (0–2, default 1)
withOverlayEnable color overlay on top of the wallpaper
overlayColorOverlay color (any CSS color)
overlayMixBlendModeCSS mix-blend-mode for the overlay
mutedMute video wallpaper audio
cssCustom CSS injected only for this wallpaper (Layered/MediaPlayer types)

Wallpaper Collections

Wallpapers can be organized into named collections. Each monitor and each virtual workspace can independently select which collection to display.

Shortcuts

ActionDefault Keys
Next wallpaperCtrl + Win + Up
Previous wallpaperCtrl + Win + Down

Virtual Desktops

Seelen UI implements a per-monitor virtual desktop system that replaces and extends the Windows 10/11 virtual desktop experience.

Architecture

  • Workspaces are tracked per monitor — each monitor has its own independent list of workspaces
  • A VirtualDesktops object stores monitors: { [MonitorId]: VirtualDesktopMonitor } and a global pinned: number[] list of pinned HWNDs
  • Pinned windows appear on every workspace on every monitor and are never moved when switching

Workspace Properties

PropertyDescription
idUnique workspace identifier (UUID)
nameOptional human-readable label shown in the Workspaces Viewer and Fancy Toolbar
iconOptional React Icon name displayed in toolbar workspace indicators
wallpaperOptional wallpaper ID — overrides the monitor collection for this workspace
windowsList of HWNDs currently assigned to this workspace

Workspace Management

  • Create, rename, and destroy workspaces via keyboard shortcuts or the Workspaces Viewer
  • Move a focused window to any workspace (with or without following it)
  • Send a window to a workspace and immediately switch to it
  • Workspaces are listed in the Fancy Toolbar items (Workspaces (Dotted), (Named), (Numbered))
  • The vdMain system shortcut group controls create/destroy/rename
  • vdSwitch, vdMove, vdSend groups control navigation and window movement

Wallpaper Integration

Each workspace can display a different wallpaper collection, enabling per-workspace visual identities. The priority is:

  1. Workspace-level wallpaper override (most specific)
  2. Monitor-level wallpaper collection
  3. Global default wallpaper collection

SeelenWeg — Dock / Taskbar

ID: @seelen/weg
Instances: one per monitor (ReplicaByMonitor)

A fully featured dock/taskbar replacement supporting pinned apps, running windows, and special items.

Dock Settings

SettingOptions / Range
enabledEnable/disable
modeFull-Width (taskbar-style) or Centered (dock-style)
positionTop, Bottom, Left, Right
hideModeNever, Always (auto-hide), OnOverlap (hide when windows overlap)
delayToShowMilliseconds before showing on hover
delayToHideMilliseconds before hiding on mouse leave
marginOuter margin in px
paddingInner padding in px
sizeIcon size in px
zoomSizeZoomed icon size in px (hover animation)
spaceBetweenItemsGap between items in px
showWindowTitleShow window title next to open app icons
showInstanceCounterShow badge with count of open windows per app
visibleSeparatorsShow visual separators between sections
splitWindowsShow each window as a separate item instead of grouping by app
temporalItemsVisibilityAll (show running apps from all monitors) or OnMonitor (only this monitor)
pinnedItemsVisibilityAlways (show pinned items on every monitor) or WhenPrimary (only on primary)
middleClickActionCloseApp or OpenNewInstance
showEndTaskAdd "End Task" option in context menu (requires Dev Mode)

Dock Item Types

TypeDescription
AppOrFileApplication or file shortcut (pinnable)
SeparatorVisual divider between sections
MediaInline media player controls
StartMenuStart Menu button
ShowDesktopShow/hide all windows button
TrashBinRecycle Bin with item count badge

Pinned Item Properties

  • displayName — shown in tooltips
  • path — file or executable path
  • umid — Application User Model ID (for packaged apps)
  • pinned — persists when all windows are closed
  • preventPinning — disables the pin option
  • relaunch — custom relaunch command

Window Preview

Hovering over a dock item with open windows shows a thumbnail preview panel with the window title and a live preview of the window content.

Context Menu per Item

Right-clicking a dock item opens a context menu with options:

  • Open / Focus window
  • Pin / Unpin
  • Close window
  • Open new instance
  • End task (if Dev Mode enabled)
  • Open file location

Shortcuts

ActionDefault Keys
Launch item 1–10Win + 1Win + 0

Fancy Toolbar

ID: @seelen/fancy-toolbar
Instances: one per monitor (ReplicaByMonitor)

A fully scriptable status bar where each item is powered by JavaScript and can display any data available in the system scopes.

Toolbar Settings

SettingOptions / Range
enabledEnable/disable
positionTop, Bottom, Left, Right
itemSizeHeight/width of each item in px
paddingInner padding in px
marginOuter margin in px
hideModeNever, Always, OnOverlap
delayToShowMilliseconds before showing on hover
delayToHideMilliseconds before hiding on mouse leave

Toolbar Item Definition

Each toolbar item is a data record with:

FieldDescription
idUnique UUID
scopesList of data scopes to inject into the JS execution environment
templateJS function returning the rendered HTML content
tooltipJS function returning tooltip HTML
badgeJS function returning badge/notification content
onClickJS function executed on click
styleReact-style CSS object for item container
remoteDataRemote URLs fetched and injected into scope

Available JS Data Scopes

ScopeProvides
DateCurrent date/time
NotificationsNotification list and count
MediaActive media players and output devices
NetworkNetwork adapters and connectivity
KeyboardActive keyboard layout
UserCurrent user profile info
BluetoothBluetooth adapter and paired devices
PowerBattery level, charging state, power mode
FocusedAppCurrently focused application
WorkspacesVirtual desktops and workspace info
DiskDisk usage per drive
NetworkStatisticsReal-time upload/download speeds
MemoryRAM usage
CpuPer-core CPU usage

Toolbar Sections

The toolbar has three zones: Left, Center, Right. Items are assigned to zones and can be reordered via drag-and-drop in the Settings editor.

Built-in Toolbar Plugins

These are pre-built toolbar item templates included with Seelen UI:

PluginDisplays
CPU UsagePer-core average CPU utilization (%)
Memory UsageRAM used / total
Disk UsageDisk read/write activity
Network UsageReal-time network upload + download
Power (Battery)Battery percentage + charging status with tooltip
Focused AppIcon of currently focused application
Focused App TitleTitle of currently focused window
Workspaces (Dotted)Virtual desktop indicators as dots
Workspaces (Named)Virtual desktop names as buttons
Workspaces (Numbered)Virtual desktop numbers as buttons

Widget Plugins (Toolbar Integrations)

The following widgets install a toolbar plugin that adds a clickable toolbar item to trigger the popup:

WidgetDefault Trigger
Calendar PopupClick opens date/calendar popup
Media PopupClick opens volume/media popup
Network PopupClick opens Wi-Fi popup
Bluetooth PopupClick opens Bluetooth popup
Quick SettingsClick opens quick settings
NotificationsClick opens notification center
Power MenuClick opens power/session menu
System TraySystem tray icon area
User MenuClick opens user profile popup
Keyboard SelectorClick opens keyboard layout switcher

Window Manager (Tiling WM)

ID: @seelen/window-manager
Instances: one per monitor (ReplicaByMonitor)

A full tiling window manager that automatically arranges windows into configurable layouts without overlapping.

Window Manager Settings

SettingOptions / Range
enabledEnable/disable
defaultLayoutPlugin ID of the default layout
autoStackingByCategoryAutomatically group windows of the same category into stacks
border.enabledShow a colored border around managed windows
border.widthBorder width in px
border.offsetBorder offset (negative = inside window)
resizeDeltaResize step size in % (1–40)
workspaceGapGap between tiled containers in px
workspacePaddingInner padding of the workspace in px
workspaceMarginOuter margin (top/right/bottom/left) in px
floating.widthDefault width for floating windows in px
floating.heightDefault height for floating windows in px
animations.enabledEnable/disable window movement animations
animations.durationMsAnimation duration in ms
animations.easeFunctionCSS easing function (e.g. ease-in-out)
dragBehaviorSort (insert at drop target) or Swap (exchange positions)

Built-in Layout Plugins

LayoutIDDescription
BSPWM@default/wm-bspwmBinary space partition — recursive horizontal/vertical split
Tall@default/wm-tallOne wide primary pane + vertical stack (good for portrait monitors)
Wide@default/wm-wideOne tall primary pane + horizontal stack
Grid@default/wm-gridDynamic grid that adapts as windows are added

Layout Node Types

Layouts are trees of WmNode with these types:

TypeDescription
LeafSingle window slot
StackMultiple windows tabbed/stacked in one slot
VerticalChildren split vertically (top/bottom)
HorizontalChildren split horizontally (left/right)

Each node supports:

  • growFactor — relative size weight
  • condition — math expression controlling visibility (e.g. n >= 3)
  • priority — traversal order
  • maxStackSize — cap on stacked windows (Stack nodes only)
  • lifetimePermanent, Ephemeral, etc.

Window Modes (per window)

ModeBehavior
Tiled (default)Managed by the layout
FloatFree-floating window, not managed by layout
MonocleMaximized within workspace bounds

Keyboard Shortcuts

ActionDefault Keys
Toggle WM on/offWin + P
Toggle float for focused windowWin + F
Toggle monocleWin + M
Cycle stack (next)Win + Q
Cycle stack (previous)Win + Shift + Q
Reserve topWin + Shift + I
Reserve bottomWin + Shift + K
Reserve leftWin + Shift + J
Reserve rightWin + Shift + L
Reserve floatWin + Shift + U
Reserve stackWin + Shift + O
Focus upAlt + I
Focus downAlt + K
Focus leftAlt + J
Focus rightAlt + L
Increase widthWin + Alt + =
Decrease widthWin + Alt + -
Increase heightWin + Ctrl + =
Decrease heightWin + Ctrl + -
Reset all sizesWin + Alt + 0
Move window upShift + Alt + I
Move window downShift + Alt + K
Move window leftShift + Alt + J
Move window rightShift + Alt + L

Apps Menu (Start Menu)

ID: @seelen/apps-menu
Trigger: Win key (system shortcut, intercepted from Windows)

A full replacement for the Windows Start Menu.

Views

  • Pinned View — shows apps the user has manually pinned, organized in a grid
  • All Apps View — alphabetical list of all installed applications
  • Toggled with the "All" / "Back" button

The search bar filters apps in real time. Prefixes change search scope:

PrefixScope
(none)All results
apps:Only installed applications
files:File system search
web:Opens Google Search in default browser

Pressing Enter launches the first/selected result. Arrow keys navigate the grid.

Pinned Items

  • Apps can be pinned/unpinned via right-click
  • Pinned items are drag-and-drop reorderable
  • Apps can be grouped into folders — drag one app onto another to create a folder
  • Folders can be renamed, apps can be added/removed
  • Two folders can be merged; a folder can be disbanded back into individual items
  • Pinned state is persistent (survives restarts)
  • Initial pinned list is imported from the native Windows Start Menu on first run
ButtonAction
User avatar/nameOpens User Menu popup
Settings gearOpens Seelen UI Settings
Power iconOpens Power Menu
Expand/Collapse iconToggles fullscreen / normal mode

Acrylic Effect

Supports Acrylic (Mica-like) blur effect, configurable via widget settings:

SettingDescription
acrylicEnable Windows Acrylic transparency effect

Task Switcher

ID: @seelen/task-switcher
Hidden overlay triggered by Alt + Tab.

Visual replacement for the Windows Alt+Tab window switcher.

Features

  • Thumbnail preview of each open window
  • Keyboard navigation (arrow keys, Tab to cycle)
  • Auto-confirm mode: pressing Alt + Tab briefly shows the overlay, releasing switches to the target window
  • Manual mode: overlay stays open until Enter is pressed

Shortcuts

ActionDefault Keys
Switch to next (auto-confirm)Alt + Tab
Switch to previous (auto-confirm)Alt + Shift + Tab
Switch to next (manual)Alt + Ctrl + Tab
Switch to previous (manual)Alt + Ctrl + Shift + Tab

Workspaces Viewer

ID: @seelen/workspaces-viewer
Trigger: Win + Tab

A full-screen virtual desktop overview, replacing the Windows Task View.

Features

  • Shows all monitors with their virtual workspaces
  • Each workspace displays thumbnails of open windows
  • Click a workspace to switch to it
  • ESC or click outside to close

Shortcuts

ActionDefault Keys
Toggle Workspaces ViewerWin + Tab

Virtual Desktop Shortcuts (System-Level)

These shortcuts are available even when the widget is not open:

CategoryActions
Main VD (vdMain)Create, destroy, rename workspaces
Switch VD (vdSwitch)Jump to workspace 1–N
Move window to VD (vdMove)Send focused window to workspace 1–N
Send and follow (vdSend)Move window and switch to target workspace

ID: @seelen/popup
Preset: Popup
Hidden: true (not shown in Settings navigation)
Instances: Multiple

A programmatic popup widget for displaying arbitrary structured content. Used internally by Seelen UI tooling and available to third-party integrations.

Content Types

Popup content is composed of typed blocks:

TypeDescription
textPlain or formatted text block
iconIcon element (supports standard icon libraries)
imageImage block (URL or base64)
buttonClickable action button
groupContainer that groups other content blocks

A popup is built from three optional zones:

ZoneDescription
titleHeader content (typically a text or icon+text combination)
contentMain body (one or more typed blocks)
footerAction area (typically buttons)

Behavior

  • Multiple popup instances can exist simultaneously (one per invocation)
  • Each popup is positioned relative to the trigger element or screen coordinates
  • Focus loss closes the popup automatically (Popup preset behavior)
  • Lazy-loaded: only created on first invocation, destroyed after idle timeout

Quick Settings

ID: @seelen/quick-settings
Triggered from the toolbar (installed as a plugin)

A compact popup panel for quick system toggles and controls.

Controls

ControlDescription
Radio ButtonsToggle individual radio adapters: Wi-Fi, Bluetooth, Mobile Broadband, FM
Brightness ControlAdjust monitor brightness via DDC/CI (supports hardware dimming)
Media DevicesVolume control and output device selection
Settings buttonOpens Seelen UI Settings window
Power buttonOpens Power Menu

Notifications

ID: @seelen/notifications
Triggered from the toolbar (installed as a plugin)

A notification center popup that collects all Windows toast notifications.

Features

  • List all pending notifications with full content (title, body, images, actions)
  • Dismiss individual notifications
  • Clear all notifications at once
  • Do Not Disturb (DND) toggle — switches NotificationsMode between All and AlarmsOnly
  • Link to Windows Notification Settings
  • Supports rich toast content: text, images, action buttons, progress bars

Clipboard History

A Windows clipboard history backend built on the WinRT SystemClipboardHistory API. This is a pure backend feature exposed to third-party widgets and toolbar plugins via IPC commands — there is no dedicated Seelen UI widget bundled for it, but all APIs are public.

Clipboard Entry Structure

FieldDescription
idUnique entry identifier
timestampISO 8601 timestamp of when the entry was added
sourceAppNameDisplay name of the application that wrote to the clipboard
sourceAppLogoBase64-encoded logo of the source application
contentClipboardEntryContent (see below)

Clipboard Entry Content Types

FieldDescription
textPlain text value
htmlHTML-formatted text
rtfRich Text Format content
applicationLinkProtocol link for application-specific content
webLinkHTTP/HTTPS URL
bitmapImage content encoded as base64 WebP
filesArray of file paths

Multiple content fields can be populated simultaneously (e.g. an entry may have both text and html).

Available Commands

CommandDescription
get_clipboard_historyReturns the full list of ClipboardEntry objects
delete_clipboard_entry(id)Remove a single entry from the history by ID
clear_clipboard_historyWipe the entire clipboard history
set_clipboard_content(id)Make an entry the current clipboard contents

Events

EventDescription
ClipboardHistoryChangedFires when entries are added, removed, or cleared
ClipboardHistoryEnabledChangedFires when the Windows clipboard history feature is toggled

Implementation Notes

  • Runs on a dedicated STA (Single-Threaded Apartment) thread required by WinRT clipboard APIs
  • Automatically registers and unregisters WinRT event listeners with proper cleanup
  • Processes all clipboard formats: text, HTML, RTF, images (converted to WebP), file drops, and protocol links

Flyouts

ID: @seelen/flyouts

An ambient overlay that appears automatically when certain system events occur, showing a brief contextual notification.

Trigger Events (configurable)

SettingDefaultTrigger
showVolumeChangetrueVolume level changed
showBrightnessChangetrueMonitor brightness changed
showMediaPlayerChangetrueTrack changed or playback started/stopped
showWorkspaceChangetrueActive virtual desktop changed
showNotificationstrueNew Windows notification arrived

Settings

SettingOptions / Range
placementCorner/edge: top-left, top, top-right, left, right, bottom-left, bottom, bottom-right
marginDistance from screen edge in px (default 30)
timeToShowDisplay duration in seconds (1–10, default 4)

Flyout Content

Depending on the trigger:

  • Volume — current output device name + volume level + icon
  • Brightness — brightness level bar
  • Media — track title, artist, album art
  • Workspace — workspace name/index
  • Notification — full notification toast preview

Media Popup

ID: @seelen/media-popup
Triggered from the toolbar (installed as a plugin)

A popup for audio management.

Features

  • Main View:

    • Global volume slider for the default output device
    • Per-session volume controls (individual app volumes)
    • Active media players list (title, artist, play/pause, next/prev)
    • Click on a media player to expand it
  • Device View (accessible per-device):

    • Switch between audio output devices
    • Set default multimedia device
    • Mute/unmute

Network Popup

ID: @seelen/network-popup
Triggered from the toolbar (installed as a plugin)

Wi-Fi management popup.

Features

  • Wi-Fi radio toggle (on/off)
  • Connected section — current network with signal strength
  • Saved (known) networks list with auto-connect
  • Available networks scan with real-time scanning indicator
  • Connect to a network (with password prompt for secured networks)
  • Forget a saved network
  • Signal strength indicator per network
  • Link to Windows Network Settings

Bluetooth Popup

ID: @seelen/bluetooth-popup
Triggered from the toolbar (installed as a plugin)

Bluetooth device management popup.

Features

  • Bluetooth radio toggle (on/off)
  • Connected devices section (paired + currently connected)
  • Paired devices (paired but not connected)
  • Available devices section with real-time scan indicator
  • Connect / disconnect devices
  • Pair new devices (with PIN display/confirmation when required)
  • Forget a device
  • Duplicate device deduplication (classic vs. LE versions of the same device)
  • Link to Windows Bluetooth Settings

Calendar Popup

ID: @seelen/calendar-popup
Triggered from the toolbar (installed as a plugin)

A compact calendar popup showing the current date.

Features

  • Full monthly calendar grid
  • startOfWeek from global settings (Monday / Sunday / Saturday)
  • Current day highlighted

Power Menu

ID: @seelen/power-menu
Triggered from the toolbar plugin, Start Menu footer, or Quick Settings footer.

A full-screen overlay with system power/session actions.

Power Options

OptionAction
LockLock the Windows session
Log OutSign out of the current user
ShutdownPower off the computer
RebootRestart the computer
SuspendPut the computer to sleep
HibernateHibernate the computer

Display

  • Shows current user's profile picture
  • Shows user display name / email
  • ESC or click outside to close
  • DPI-aware positioning aligned to the primary monitor

User Menu

ID: @seelen/user-menu
Triggered from the Start Menu footer or toolbar plugin.

User profile and quick file access popup.

Features

  • User profile picture and display name
  • Display name source (configurable):
    • Windows profile name
    • Xbox Gamertag
  • Quick access to known Windows user folders:
    • Documents, Downloads, Music, Pictures, Videos, Desktop, etc.
  • File preview on hover
  • Open Seelen UI installation folder
  • Open Seelen UI log folder

System Tray

ID: @seelen/system-tray
Toolbar plugin that renders the system tray icon area.

Features

  • Displays all Windows system tray notification icons
  • Left/right click actions forwarded to the native tray icon
  • Expand/collapse to show hidden icons
  • Hover tooltips from the native tray icon

Keyboard Selector

ID: @seelen/keyboard-selector
Triggered from toolbar plugin.

A popup for switching the active keyboard layout.

Features

  • Lists all installed keyboard input methods
  • Shows active layout highlighted
  • Click to switch the active layout immediately
  • IME (Input Method Editor) status awareness

Context Menu

ID: @seelen/context-menu

A custom right-click context menu rendered by Seelen UI widgets.

Features

  • Hierarchical menu items with submenus
  • Icon support per item
  • Separator lines
  • Keyboard navigation

Tooltip

ID: @seelen/tooltip

A shared tooltip popup used by toolbar items.

  • Renders HTML content returned by the item's tooltip JS function
  • Auto-positioned relative to the triggering element

Settings Window

ID: @seelen/settings
Shortcut: configurable (default shown in shortcuts panel)

The main configuration UI for Seelen UI.

Sections

SectionDescription
HomeNews, mini store, quick links
GeneralLanguage, date format, autostart, accent color, hardware acceleration, polling interval, suspend on game mode
PerformancePerformance mode profiles (plugged / on battery / energy saver)
SeelenWegDock configuration
Fancy ToolbarToolbar layout and hide settings
Window ManagerTiling WM settings, layouts, border, animations, drag behavior
Wallpaper ManagerWallpaper engine settings, collections
Apps Menu(via widget settings)
ShortcutsGlobal shortcut manager with key remapping
By MonitorPer-monitor widget and wallpaper overrides
App RulesPer-application behavior overrides
ThemesTheme browser, activation, and variable customization
WallpapersWallpaper browser, thumbnails, collection management
WidgetsWidget browser and per-widget configuration
Icon PacksIcon pack browser and editor
PluginsToolbar plugin browser
Sound PacksSound effect pack browser (placeholder — not yet implemented)
ExtrasVersion info, update channel, Discord RPC, backup sync, streaming mode, cache management, restart/exit
DeveloperExposed only when devTools: true; raw JSON editor and API testing

Plugins System

Plugins extend widget functionality. A plugin has:

  • ID — unique resource ID
  • Target — the widget it attaches to
  • TypeKnown (built-in integration) or ThirdParty (custom)
  • Metadata — display name, description, icon

Known Plugin Kinds

KindTargetPurpose
Window Manager Layout@seelen/window-managerDefines a tiling layout structure
Toolbar Item@seelen/fancy-toolbarAdds a configured item to the toolbar
Context Menu ItemAny widgetAdds an entry to the widget context menu

Third-Party Plugin (Toolbar)

Custom toolbar plugins can define JS template, tooltip, badge, and onClick functions along with scopes and remote data declarations — the same interface as built-in toolbar items.


Per-Monitor Configuration

Each connected physical monitor can have independent settings.

Monitor-Level Overrides

OverrideDescription
Wallpaper CollectionWhich collection to use on this monitor (overrides global default)
Per-widget settingsAny widget setting that declares allowSetByMonitor: true

Per-Workspace Overrides

Each virtual workspace on a monitor can also override:

OverrideDescription
Wallpaper CollectionWhich collection to display on this workspace

Widget ReplicaByMonitor

Widgets with instances: ReplicaByMonitor (Weg, Toolbar, Window Manager) run one instance per monitor and receive a monitorId in their URL. Monitor-specific settings are merged on top of global settings.


App Rules (Per-App Configuration)

Applications can be individually configured to modify their behavior within Seelen UI.

Matching an App

Apps are matched using an AppIdentifier:

FieldDescription
kindMatch by: Exe, Class, Title, or Path
idThe value to match
matchingStrategyEquals, StartsWith, EndsWith, Contains, or Regex
negationInvert the match
and / orCompound conditions

App Rule Properties

PropertyDescription
nameHuman-readable label
categoryGrouping category
boundMonitorForce app to open on monitor index N
boundWorkspaceForce app to open on workspace index N
optionsArray of behavior flags (see below)

App Extra Flags

FlagEffect
NoInteractiveWindow receives no mouse/keyboard input
WmFloatAlways float in the tiling WM (never tiled)
WmForceForce the WM to manage this window even if it normally wouldn't
WmUnmanageExclude from WM management entirely
VdPinnedPin the app to all virtual desktops (always visible)

Bundled App Rules

Seelen UI ships with a curated set of bundled rules for common system applications (e.g. dialog boxes, system utilities) that are automatically excluded or floated by the WM. These are read-only; users can override them by creating a duplicate rule.


Shortcuts

All keyboard shortcuts in Seelen UI are user-remappable. The shortcut system has two layers:

System Shortcuts

Global shortcuts registered at the OS level, not tied to a specific widget:

GroupExamples
Virtual Desktop — MainCreate/destroy/rename workspaces
Virtual Desktop — SwitchJump to workspace N
Virtual Desktop — MoveMove focused window to workspace N
Virtual Desktop — Send & FollowMove + switch to target workspace
MiscMiscellaneous system shortcuts

Widget Shortcuts

Each widget declares its own shortcuts. They are grouped by widget in the Shortcuts settings panel:

WidgetShortcut IDs
SeelenWegweg-launch-0weg-launch-9
Window ManagerAll WM movement, resize, and mode shortcuts
Wallpaper Managerwallpaper-next, wallpaper-prev
Task Switchertask-switcher-next-auto, task-switcher-prev-auto, manual variants
Apps Menuapps-menu-toggle (Win key — system, read-only)
Workspaces Viewervd-toggle-view (Win+Tab — system, read-only)
Settingssettings-open

Shortcut Settings

SettingDescription
enabledMaster on/off for all shortcuts
shortcutsMap of shortcut-id → [key array] for overrides

Read-only shortcuts (marked readonly: true) cannot be remapped in the UI.
System shortcuts (marked system: true) intercept the OS-native handler (e.g. Win key).


Performance Mode

Three performance levels configurable per power state:

ModeBehavior
DisabledNo performance restrictions; full animations and CSS effects
MinimalDisables CSS animations and non-essential transitions
ExtremeDisables all CSS animations and may suspend background renders

Power states:

  • Plugged In — default mode
  • On Battery — mode when running on battery power
  • Energy Saver — mode when Windows Energy Saver is active

Backup & Sync

FeatureDescription
backupSyncEnabledAutomatic cloud synchronization of Seelen UI settings
Last sync timestampShown in Settings → Extras
Session-gatedRequires a logged-in Seelen UI account

Developer & Extras

Extras Settings

SettingDescription
Version displayShows app version, build type (dev / msix / fixed)
Update ChannelSelect Stable, Beta, or Nightly
Discord RPCShow current Seelen UI status in Discord
Streaming ModeHide personal info (email, names) in visible content
Backup SyncToggle cloud sync (requires session)
Clear Icon CacheForce-regenerate all extracted app icons
RelaunchRestart Seelen UI process
ExitTerminate Seelen UI

Developer Tools

Enabled by setting devTools: true in Settings → General.

  • Exposes a Developer tab in Settings
  • Enables WebView DevTools on right-click in any widget
  • Adds "End Task" to dock context menus
  • Raw JSON settings editor
  • Simulation of permission states

Session / Authentication

  • Users can log into a Seelen UI cloud account
  • Authentication tokens are stored in the Windows Credential Manager (never exposed to widgets)
  • Required for Backup & Sync features
  • Profile name / Xbox Gamertag displayed in the User Menu

Architecture Notes

Widget Presets

Every widget has a preset that configures its default behavior:

PresetBehavior
NoneNo automatic behavior
DesktopDesktop-level window; position/size persisted
OverlayFloats above all windows
PopupShows at trigger position; hides on focus loss

Widget Instances

ModeBehavior
SingleOne instance shared across all monitors
ReplicaByMonitorOne instance per connected monitor
MultipleUnlimited simultaneous instances

Lazy Widgets

Widgets with lazy: true are not created until first triggered. After being hidden, they are destroyed after a 30-second idle timeout to reclaim memory.

Widget Config Hierarchy

Settings for a widget are merged in this priority order (highest wins):

  1. Monitor-specific overrides (monitorsV3[monitorId].byWidget[widgetId])
  2. Instance-specific overrides (byWidget[widgetId].$instances[instanceId])
  3. Global widget settings (byWidget[widgetId])
  4. Widget default values (declared in metadata.yml)