feat: add Quickemu Manager plugin#856
Draft
GughNess wants to merge 10 commits into
Draft
Conversation
Hello Noctalia team! 👋 I would like to submit my new plugin: **Quickemu Manager**. It's a native Noctalia shell plugin to seamlessly manage, download, and create Quickemu virtual machines directly from the desktop bar. ### Features: - **Dynamic VM Management**: Start, edit, and delete virtual machines directly from the UI. - **Instant OS Downloads**: Built-in support for downloading over 700+ operating systems via `quickget`, complete with real-time progress bars and a filtered search list. - **Dynamic Theming**: Fully integrated with Quickshell's dynamic `Color` and `Style` APIs to match the user's global Noctalia theme. - **Safe Execution**: Process commands are executed as arrays to prevent shell injection vulnerabilities. All files (QML, JSON manifest, and README with preview) are included in the `quickemu` folder. Let me know if any changes are required before merging. Thanks!
Contributor
Automatic Manifest CheckFile: quickemu-noctalia-plugin/manifest.json
"repository": "https://github.com/noctalia-dev/noctalia-plugins" |
Contributor
|
Plugin "quickemu-noctalia-plugin" is missing some required files:
|
Contributor
Automatic Code Quality ReviewFile: quickemu-noctalia-plugin/BarWidget.qml
+ text: "VMs"File: quickemu-noctalia-plugin/Main.qml
+ console.log("[QuickemuManager] VM list refreshed — " + _vmListModel.count + " VMs found");
+ stdout: SplitParser { onRead: data => console.log("[quickemu] " + data) }
+ console.log("[quickget] " + str);
+ console.log("[quickget ERR] " + data);
+ console.log("[QuickemuManager] quickget finished");
+ stderr: SplitParser { onRead: data => console.log("[quickget list ERR] " + data) }
+ console.log("[QuickemuManager] OS list populated with " + _osListModel.count + " options.");
+ console.log("[QuickemuManager] Starting VM: " + name);
+ console.log("[QuickemuManager] Editing VM config: " + confPath);
+ console.log("[QuickemuManager] Deleting VM: " + name);
+ console.log("[QuickemuManager] Creating VM: " + osArgs);File: quickemu-noctalia-plugin/Panel.qml
+ border.width: 1
+ text: "Quickemu Manager"
+ text: "Refresh"
+ text: "Existing VMs"
+ text: "Start"
+ text: "Edit"
+ text: "Delete"
+ text: "No VMs found."
+ text: "Create New VM"
+ border.width: 1
+ text: "Download"
readonly property var geometryPlaceholder: panelContainer
readonly property bool allowAttach: true |
Hello Noctalia team! 👋 I would like to submit my new plugin: **Quickemu Manager**. It's a native Noctalia shell plugin to seamlessly manage, download, and create Quickemu virtual machines directly from the desktop bar. ### Features: - **Dynamic VM Management**: Start, edit, and delete virtual machines directly from the UI. - **Instant OS Downloads**: Built-in support for downloading over 700+ operating systems via `quickget`, complete with real-time progress bars and a filtered search list. - **Dynamic Theming**: Fully integrated with Quickshell's dynamic `Color` and `Style` APIs to match the user's global Noctalia theme. - **Safe Execution**: Process commands are executed as arrays to prevent shell injection vulnerabilities. All files (QML, JSON manifest, and README with preview) are included in the `quickemu` folder. Let me know if any changes are required before merging. Thanks!
Contributor
Automatic Manifest CheckFile: quickemu-noctalia-plugin/manifest.json
+ "repository": "https://github.com/GughNess/quickemu-noctalia-plugin", |
Contributor
Automatic Code Quality ReviewFile: quickemu-noctalia-plugin/BarWidget.qml
+ text: "VMs"File: quickemu-noctalia-plugin/Main.qml
+ console.log("[QuickemuManager] VM list refreshed — " + _vmListModel.count + " VMs found");
+ stdout: SplitParser { onRead: data => console.log("[quickemu] " + data) }
+ console.log("[quickget] " + str);
+ console.log("[quickget ERR] " + data);
+ console.log("[QuickemuManager] quickget finished");
+ stderr: SplitParser { onRead: data => console.log("[quickget list ERR] " + data) }
+ console.log("[QuickemuManager] OS list populated with " + _osListModel.count + " options.");
+ console.log("[QuickemuManager] Starting VM: " + name);
+ console.log("[QuickemuManager] Editing VM config: " + confPath);
+ console.log("[QuickemuManager] Deleting VM: " + name);
+ console.log("[QuickemuManager] Creating VM: " + osArgs);File: quickemu-noctalia-plugin/Panel.qml
+ border.width: 1
+ text: "Quickemu Manager"
+ text: "Refresh"
+ text: "Existing VMs"
+ text: "Start"
+ text: "Edit"
+ text: "Delete"
+ text: "No VMs found."
+ text: "Create New VM"
+ border.width: 1
+ text: "Download"
readonly property var geometryPlaceholder: panelContainer
readonly property bool allowAttach: true |
Contributor
Automatic Manifest CheckFile: quickemu-noctalia-plugin/manifest.json
+ "repository": "https://github.com/GughNess/quickemu-noctalia-plugin", |
Contributor
Automatic Code Quality ReviewFile: quickemu-noctalia-plugin/BarWidget.qml
+ text: "VMs"File: quickemu-noctalia-plugin/Main.qml
+ console.log("[QuickemuManager] VM list refreshed — " + _vmListModel.count + " VMs found");
+ stdout: SplitParser { onRead: data => console.log("[quickemu] " + data) }
+ console.log("[quickget] " + str);
+ console.log("[quickget ERR] " + data);
+ console.log("[QuickemuManager] quickget finished");
+ stderr: SplitParser { onRead: data => console.log("[quickget list ERR] " + data) }
+ console.log("[QuickemuManager] OS list populated with " + _osListModel.count + " options.");
+ console.log("[QuickemuManager] Starting VM: " + name);
+ console.log("[QuickemuManager] Editing VM config: " + confPath);
+ console.log("[QuickemuManager] Deleting VM: " + name);
+ console.log("[QuickemuManager] Creating VM: " + osArgs);File: quickemu-noctalia-plugin/Panel.qml
+ border.width: 1
+ text: "Quickemu Manager"
+ text: "Refresh"
+ text: "Existing VMs"
+ text: "Start"
+ text: "Edit"
+ text: "Delete"
+ text: "No VMs found."
+ text: "Create New VM"
+ border.width: 1
+ text: "Download"
readonly property var geometryPlaceholder: panelContainer
readonly property bool allowAttach: trueFile: quickemu-noctalia-plugin/quickemu-noctalia-plugin/BarWidget.qml
+ text: pluginApi?.tr("widget.title") || "VMs"File: quickemu-noctalia-plugin/quickemu-noctalia-plugin/Panel.qml
+ text: pluginApi?.tr("panel.title") || "Quickemu Manager"
+ text: pluginApi?.tr("panel.refresh") || "Refresh"
+ text: pluginApi?.tr("panel.existing-vms") || "Existing VMs"
+ text: pluginApi?.tr("panel.start") || "Start"
+ text: pluginApi?.tr("panel.edit") || "Edit"
+ text: pluginApi?.tr("panel.delete") || "Delete"
+ text: pluginApi?.tr("panel.no-vms") || "No VMs found."
+ text: pluginApi?.tr("panel.create-vm") || "Create New VM"
+ placeholderText: pluginApi?.tr("panel.search-os") || "Search OS..."
+ text: pluginApi?.tr("panel.download") || "Download" |
Contributor
Automatic Code Quality ReviewFile: quickemu-noctalia-plugin/BarWidget.qml
+ text: pluginApi?.tr("widget.title") || "VMs"File: quickemu-noctalia-plugin/Panel.qml
+ text: pluginApi?.tr("panel.title") || "Quickemu Manager"
+ text: pluginApi?.tr("panel.refresh") || "Refresh"
+ text: pluginApi?.tr("panel.existing-vms") || "Existing VMs"
+ text: pluginApi?.tr("panel.start") || "Start"
+ text: pluginApi?.tr("panel.edit") || "Edit"
+ text: pluginApi?.tr("panel.delete") || "Delete"
+ text: pluginApi?.tr("panel.no-vms") || "No VMs found."
+ text: pluginApi?.tr("panel.create-vm") || "Create New VM"
+ placeholderText: pluginApi?.tr("panel.search-os") || "Search OS..."
+ text: pluginApi?.tr("panel.download") || "Download" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hello Noctalia team! 👋
I would like to submit my new plugin: Quickemu Manager. It's a native Noctalia shell plugin to seamlessly manage, download, and create Quickemu virtual machines directly from the desktop bar.
Features:
quickget, complete with real-time progress bars and a filtered search list.ColorandStyleAPIs to match the user's global Noctalia theme.All files (QML, JSON manifest, and README with preview) are included in the
quickemufolder. Let me know if any changes are required before merging. Thanks!