feat: input mgr

This commit is contained in:
2026-01-24 14:35:16 +02:00
parent 1a37e76c4a
commit e5d5b2e086
14 changed files with 418 additions and 67 deletions

View File

@@ -1,20 +1,26 @@
pragma Singleton
import QtQuick
import Quickshell.Hyprland
QtObject {
id: manager
property bool shellOpen: false
property bool quickSettingsOpen: false
property var windowRequests: ({})
property var quickSettingsPayload: ({})
property var globals: ({})
signal shellOpened
signal shellClosed
signal quickSettingsOpened
signal quickSettingsClosed
signal windowRequested(string name, var payload)
function openShell() {
if (!shellOpen) {
console.log("ShellStateManager: openShell");
Hyprland.dispatch("submap deltarune");
shellOpen = true;
shellOpened();
}
@@ -23,13 +29,16 @@ QtObject {
function closeShell() {
if (shellOpen) {
console.log("ShellStateManager: closeShell");
Hyprland.dispatch("submap reset");
if (quickSettingsOpen) {
closeQuickSettings();
}
shellOpen = false;
shellClosed();
}
}
function toggleShell() {
console.log("ShellStateManager: toggleShell (isOpen " + shellOpen + ")");
shellOpen ? closeShell() : openShell();
}
@@ -42,6 +51,29 @@ QtObject {
windowRequested(name, payload);
}
function openQuickSettings(payload) {
var normalizedPayload = payload || ({});
quickSettingsPayload = normalizedPayload;
console.log("ShellStateManager: openQuickSettings", normalizedPayload);
if (!quickSettingsOpen) {
quickSettingsOpen = true;
quickSettingsOpened();
}
requestWindow("quickSettings", normalizedPayload);
}
function closeQuickSettings() {
if (quickSettingsOpen) {
console.log("ShellStateManager: closeQuickSettings");
quickSettingsOpen = false;
quickSettingsClosed();
}
}
function toggleQuickSettings(payload) {
quickSettingsOpen ? closeQuickSettings() : openQuickSettings(payload);
}
function setGlobal(key, value) {
globals[key] = value;
}