Skip to content

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 group

Core 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.Controls module)
  • 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
ComponentRequiredDescription
ComponentsYes — at least one component must be provided
Option WindowsNo — component configuration UI
Settings WindowsNo — plugin global settings (to be developed)
Language FilesNo — 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
qml
// Example: Get a component by identification and modify its properties
var com = UniDeskComManager.getComByIdentification("com_a1b2c3d4")
com.x = 100
com.visible = true

Template

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-template files
  • 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:

ComponentDescription
Component Group Page LayoutComponent placement, size, and layering for all pages
Global Appearance SettingsTheme color, dark/light mode, fonts, wallpapers, cursor styles
Plugin ListEnabled plugins and versions under this theme
Template AssociationsSet 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

TermEnglishLevelCan Display IndependentlyProvided By
ControlControlLowest (atomic)NoUniDesk Control Library (official)
ComponentComponentMiddle (molecular)Yes (desktop display)Plugins
PluginPluginExtension (bundle)No (provides components)Developers / Community
TemplateTemplatePreset (snapshot)No (displayed after application)User export / Community sharing
ThemeThemeTop-level (scheme)No (effective after application)User / Official presets
IdentificationidentificationInternal referenceSystem 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

qml
// === 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")

Released under the CC BY-SA 4.0 open documentation license.