Glossary
This page explains the core terminology used throughout the Uniquenium documentation. These concepts have hierarchical relationships; understanding their differences is the foundation for using and developing Uniquenium.
Concept Hierarchy Overview
Theme
├── Component Group / Page Layout
├── Global Appearance Settings (colors, fonts, wallpapers, cursors)
├── Plugin
│ └── Component ← composed of Controls
│ └── Control
└── Template ← preset snapshot of a component groupCore Terms
Control
The most basic, indivisible visual element that makes up a user interface.
Controls are atomic-level UI units provided by the UniDesk control library, such as buttons, text fields, icons, checkboxes, etc. Controls cannot be displayed directly on the desktop; they are used as "building blocks" to compose components.
- Source: Provided by the official UniDesk control library (
UniDesk.Controlsmodule) - Count: 30+ types (e.g.,
UniDeskButton,UniDeskText,UniDeskWindow) - Can display independently: No — must be used within a component
- Naming convention:
UniDesk+ control name (e.g.,UniDeskButton)
Analogy
Controls are like individual pieces in a LEGO set — a brick, a wheel, a window. They are not complete works by themselves, but can be combined to build anything.
📖 See: UniDesk Control Library Overview
Component
An independent functional unit composed of one or more Controls, rendered directly on the desktop for user interaction.
Components are the objects users actually see and interact with on the desktop. Each component is defined by a plugin, and users can freely combine controls within the range provided by the plugin to customize the component's appearance and behavior.
- Source: Provided by plugins
- Can display independently: Yes — displayed directly on the desktop
- Containment: Component = multiple controls + layout + logic
- Identification: Each component instance has a unique identification
Analogy
If controls are LEGO pieces, then a component is a car or a house assembled from those pieces — a complete, usable piece displayed on the desktop.
Example: A "clock component" might be composed of:
UniDeskFrame(frame)UniDeskText(time display)UniDeskText(date display)UniDeskButton(settings button)
Plugin
The extension unit of Uniquenium. A plugin can contain one or more components, along with supporting option windows, settings, and multilingual resources.
Plugins are the primary way to extend functionality in Uniquenium. Each plugin is an independent module that can:
- Provide one or more components for users to add to the desktop
- Provide option windows for components (optional), allowing users to configure component parameters
- Provide plugin global settings windows (planned) for managing plugin-level preferences
- Include multilingual resources for internationalization
| Component | Required | Description |
|---|---|---|
| Components | Yes — at least one component must be provided | |
| Option Windows | No — component configuration UI | |
| Settings Windows | No — plugin global settings (to be developed) | |
| Language Files | No — multilingual translation resources |
Analogy
A plugin is like a "component pack" — it bundles a set of related components along with configuration tools. Installing a weather plugin gives you "current weather," "weather forecast," "air quality" components and their settings entry points.
📖 See: Plugin Development Guide
Identification
A unique identifier assigned by the system to each component instance, used for internal references, positioning, and management.
About naming
The term "identification" is not standard English (the correct term would be identifier or ID), but it is retained as a proprietary term in Uniquenium code and documentation. When reading source code or API, understand it as "identifier."
- Purpose: Distinguish multiple instances of the same component type (e.g., 3 clock components on the desktop)
- Generation: Automatically generated by the system (usually based on UUID)
- Lifecycle: Assigned when a component is created, becomes invalid when the component is deleted
- Usage: Script references, event binding, property queries, inter-component communication
// Example: Get a component by identification and modify its properties
var com = UniDeskComManager.getComByIdentification("com_a1b2c3d4")
com.x = 100
com.visible = trueTemplate
A pre-configured set of components, saving the layout, properties, and relationships of components, supporting preset parameters.
Templates are "snapshots of component groups," allowing users to:
- Quick reuse: Apply an entire desktop layout with one click, without adding components one by one
- Backup & share: Export carefully designed desktop configurations as
.uniq-templatefiles - Preset parameters: Templates can save preset values for components, which can be applied or customized during import
Spelling Note
The correct spelling is Template. In early versions it was occasionally misspelled as "templete" (a non-dictionary coinage). If you see templete in old documentation, code variables, or filenames, understand it as template. New versions have been uniformly corrected.
- File format:
.uniq-template(essentially a ZIP archive) - Contains: Component tree structure + component properties + preview image
- Does not contain: External images/font resources, plugins themselves (need separate installation)
Analogy
A template is like a "desktop layout save" — a desktop you've carefully arranged over an afternoon can be saved as a template, restored with one click when you reinstall the system or change computers, or shared with friends.
📖 See: Template System
Theme
A complete desktop configuration scheme containing all component group page layouts, global appearance settings, enabled plugin lists, and associated templates.
A theme is the highest-level configuration unit in Uniquenium. Switching themes allows one-click switching of the entire desktop style. A theme includes:
| Component | Description |
|---|---|
| Component Group Page Layout | Component placement, size, and layering for all pages |
| Global Appearance Settings | Theme color, dark/light mode, fonts, wallpapers, cursor styles |
| Plugin List | Enabled plugins and versions under this theme |
| Template Associations | Set of templates referenced by this theme |
Analogy
A theme is like a "theme store" on your phone — it's not just changing the wallpaper, but also icons, fonts, ringtones, and layouts all at once. Uniquenium's themes also switch the entire desktop experience in one go.
Term Relationship Table
| Term | English | Level | Can Display Independently | Provided By |
|---|---|---|---|---|
| Control | Control | Lowest (atomic) | No | UniDesk Control Library (official) |
| Component | Component | Middle (molecular) | Yes (desktop display) | Plugins |
| Plugin | Plugin | Extension (bundle) | No (provides components) | Developers / Community |
| Template | Template | Preset (snapshot) | No (displayed after application) | User export / Community sharing |
| Theme | Theme | Top-level (scheme) | No (effective after application) | User / Official presets |
| Identification | identification | Internal reference | — | System auto-generated |
Common Confusions
Q: What's the difference between "Control" and "Component"?
Controls are atomic UI units (like a button) that cannot be displayed independently on the desktop; components are functional units composed of controls (like a clock) that can be displayed directly on the desktop.
Correct: "I added a clock component to the desktop" Incorrect: "I added a clock control to the desktop"
Q: What's the difference between "Plugin" and "Component"?
Plugins are containers/bundles; components are the specific content provided by plugins. One plugin can contain multiple components.
Correct: "I installed a weather plugin that provides 3 weather-related components" Incorrect: "I installed a weather component"
Q: What's the difference between "Template" and "Theme"?
Templates save a layout snapshot of a single component group; themes are the full desktop configuration (including multiple component group layouts + appearance + plugins + templates).
Correct: "I switched to a theme and the entire desktop style changed" Correct: "I exported this panel as a template for future reuse"
Reflections in Code
// === Control ===
// From UniDesk.Controls module, atomic units for building components
import UniDesk.Controls 1.0
UniDeskButton { // This is a control
contentText: "Click me"
}
// === Component ===
// Defined by plugins, composed of multiple controls, displayable on desktop
// Usually located in Plugins/MyPlugin/Components/ directory
Item {
id: clockComponent // This is a component (composed of controls)
UniDeskFrame { ... } // Control
UniDeskText { ... } // Control
UniDeskText { ... } // Control
}
// === Identification ===
// Unique ID for each component instance
var myCom = UniDeskComManager.createCom("ClockPlugin.ClockComponent")
console.log(myCom.identification) // e.g., "com_a1b2c3d4-e5f6-7890"
// === Plugin ===
// Usually a folder containing plugin.json + components + option windows
// Plugins/WeatherPlugin/
// ├── plugin.json
// ├── CurrentWeather.qml (component)
// ├── WeatherForecast.qml (component)
// └── WeatherOptions.qml (option window)
// === Template ===
// .uniq-template file, preset snapshot of component group
// Loading method:
UniDeskComManager.loadTemplate("file:///C:/Templates/MyPanel.uniq-template")
// === Theme ===
// Complete desktop configuration scheme containing all the above
// Switching method:
UniDeskSettings.applyTheme("file:///C:/Themes/DarkMode.uniq-theme")Related Documentation
- UniDesk Control Library Overview - Complete API for Controls
- Plugin Development Guide - How to develop plugins and components
- Template System - Template import/export
- UniDeskComManager - Component management singleton

