diff options
| author | Nippy <nippy@rp1.hu> | 2026-05-08 19:50:49 +0200 |
|---|---|---|
| committer | Nippy <nippy@rp1.hu> | 2026-05-08 19:50:49 +0200 |
| commit | 3462bcc46ecf74f576ea4397f16492c16bd75b10 (patch) | |
| tree | c5ab7aef4498647e057bda8d49c11e5f9dda74c9 /raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherImageExample | |
| parent | 56616f693b4f263cbf0d47da43b67424efa6022d (diff) | |
| download | RaveOS-PKGBUILD-3462bcc46ecf74f576ea4397f16492c16bd75b10.tar.gz RaveOS-PKGBUILD-3462bcc46ecf74f576ea4397f16492c16bd75b10.zip | |
raveos update
Diffstat (limited to 'raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherImageExample')
3 files changed, 170 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherImageExample/LauncherImageExample.qml b/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherImageExample/LauncherImageExample.qml new file mode 100644 index 0000000..2e85570 --- /dev/null +++ b/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherImageExample/LauncherImageExample.qml @@ -0,0 +1,113 @@ +import QtQuick +import Quickshell +import qs.Services + +QtObject { + id: root + + property var pluginService: null + property string trigger: "img" + + signal itemsChanged + + readonly property var images: [ + { + name: "DankDash", + imageUrl: "https://danklinux.com/img/dankdash.png", + comment: "DankMaterialShell Dashboard" + }, + { + name: "Control Center", + imageUrl: "https://danklinux.com/img/cc.png", + comment: "System Control Center" + }, + { + name: "Desktop", + imageUrl: "https://danklinux.com/img/desktop.png", + comment: "Desktop Environment" + }, + { + name: "Search", + imageUrl: "https://danklinux.com/img/dsearch.png", + comment: "Application Search" + }, + { + name: "Theme Registry", + imageUrl: "https://danklinux.com/img/blog/v1.2/themeregistry.png", + comment: "Theme Registry Browser" + }, + { + name: "Monitor Settings", + imageUrl: "https://danklinux.com/img/blog/v1.2/monitordark.png", + comment: "Display Configuration" + } + ] + + function getItems(query) { + const lowerQuery = query ? query.toLowerCase().trim() : ""; + + if (lowerQuery.length === 0) { + return images.map(img => ({ + name: img.name, + icon: "material:image", + comment: img.comment, + action: "view:" + img.imageUrl, + categories: ["Image Gallery"], + imageUrl: img.imageUrl + })); + } + + return images.filter(img => img.name.toLowerCase().includes(lowerQuery) || img.comment.toLowerCase().includes(lowerQuery)).map(img => ({ + name: img.name, + icon: "material:image", + comment: img.comment, + action: "view:" + img.imageUrl, + categories: ["Image Gallery"], + imageUrl: img.imageUrl + })); + } + + function executeItem(item) { + if (!item?.action) + return; + const actionParts = item.action.split(":"); + const actionType = actionParts[0]; + const actionData = actionParts.slice(1).join(":"); + + if (actionType === "view") { + if (typeof ToastService !== "undefined") { + ToastService.showInfo("Image Gallery", "Viewing: " + item.name); + } + } + } + + function getContextMenuActions(item) { + if (!item) + return []; + return [ + { + icon: "open_in_new", + text: "Open in Browser", + action: () => { + const url = item.imageUrl || ""; + if (url) { + Qt.openUrlExternally(url); + } + } + }, + { + icon: "content_copy", + text: "Copy URL", + action: () => { + const url = item.imageUrl || ""; + if (url) { + Quickshell.execDetached(["dms", "cl", "copy", url]); + if (typeof ToastService !== "undefined") { + ToastService.showInfo("Copied", url); + } + } + } + } + ]; + } +} diff --git a/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherImageExample/README.md b/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherImageExample/README.md new file mode 100644 index 0000000..13b608d --- /dev/null +++ b/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherImageExample/README.md @@ -0,0 +1,43 @@ +# LauncherImageExample + +Example launcher plugin demonstrating tile mode with URL-based images. + +## Features + +- **Tile Mode**: Uses `viewMode: "tile"` in plugin.json to display results as image tiles +- **Enforced View Mode**: Uses `viewModeEnforced: true` to lock the view to tile mode (users cannot change it) +- **URL Images**: Demonstrates using `imageUrl` property for remote images + +## Usage + +1. Open the launcher (DankLauncherV2) +2. Type `img` to activate the plugin +3. Browse DankMaterialShell screenshots in tile view + +## Plugin Configuration + +```json +{ + "viewMode": "tile", + "viewModeEnforced": true +} +``` + +- `viewMode`: Sets the default view mode ("list", "grid", or "tile") +- `viewModeEnforced`: When true, users cannot switch view modes for this plugin + +## Item Data Structure + +To display images in tile mode, set `imageUrl` directly on the item: + +```javascript +{ + name: "Image Title", + icon: "material:image", + comment: "Image description", + categories: ["Category"], + imageUrl: "https://example.com/image.png" +} +``` + +The `imageUrl` property supports remote URLs or local files, use `file://` prefix for local files. diff --git a/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherImageExample/plugin.json b/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherImageExample/plugin.json new file mode 100644 index 0000000..a3069e1 --- /dev/null +++ b/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherImageExample/plugin.json @@ -0,0 +1,14 @@ +{ + "id": "launcherImageExample", + "name": "Image Gallery Example", + "description": "Example launcher plugin demonstrating tile mode with images", + "version": "1.0.0", + "author": "DMS Team", + "icon": "photo_library", + "type": "launcher", + "trigger": "img", + "viewMode": "tile", + "viewModeEnforced": true, + "component": "./LauncherImageExample.qml", + "permissions": [] +} |