Luigit
repositories / dotfiles

dotfiles

bugabingas dorkfiles

owned by admin

quickshell/nuguland/popoutCatalog.js

Raw
.pragma library

// Descriptive metadata and requested heights only. SurfaceManager owns geometry;
// PopoutHost owns QML components and their service wiring.
var fallbackHeight = 300;
var entries = {
    "clock": {
        "width": 760,
        "height": 580,
        "component": "calendar-agenda",
        "source": "Time.qml",
        "visual": ["clock", "date", "calendar-grid", "agenda"]
    },
    "system": {
        "width": 780,
        // Side-by-side cards, issues band, and top-processes row.
        "height": 600,
        "component": "system-resources",
        "source": "Resources.qml",
        "visual": ["identity-card", "live-metrics", "sparklines", "issues-band", "top-processes"]
    },
    "notifications": {
        "width": 560,
        "height": 460,
        "component": "notification-history",
        "source": "Notifications.qml",
        "visual": ["summary", "attention", "actions"]
    },
    "tray": {
        "width": 520,
        "height": 440,
        "component": "tray-menu-host",
        "source": "Tray.qml",
        "visual": ["items", "attention", "native-menu-host"]
    },
    "media": {
        "width": 560,
        "height": 420,
        "component": "media-controls",
        "source": "Media.qml",
        "visual": ["active-player", "transport", "progress", "selection"]
    },
    "noko": {
        "width": 640,
        "height": 560,
        "component": "speech-transcription",
        "source": "Noko.qml noko.mjs",
        "visual": ["doctor", "setup", "record", "history"]
    },
    "clipboard": {
        "width": 520,
        "height": 560,
        "component": "clipboard-history",
        "source": "Clipboard.qml",
        "visual": ["search", "cards", "thumbnails", "private-mode"]
    },
    "vault": {
        "width": 840,
        "height": 580,
        "component": "vault-browser",
        "source": "Vault.qml VaultPanel.qml vault-native",
        "visual": ["search", "favorites", "details", "totp", "unlock"]
    },
    "launcher": {
        "width": 760,
        "height": 432,
        "component": "app-launcher",
        "source": "Launcher.qml",
        "visual": ["app-search", "desktop-icons", "desktop-actions", "desktop-entry-details"]
    },
    "audio": {
        "width": 488,
        "height": 520,
        "component": "audio-mixer",
        "source": "Audio.qml",
        "visual": ["sinks", "sources", "streams", "mute"]
    },
    "brightness": {
        "width": 488,
        "height": 340,
        "component": "brightness-control",
        "source": "Brightness.qml",
        "visual": ["level", "luminance-shader", "osd"]
    },
    "connectivity": {
        "width": 620,
        "height": 540,
        "component": "connectivity-panel",
        "source": "Network.qml+Bluetooth.qml",
        "visual": ["network", "wifi", "bluetooth", "devices"]
    },
    "power": {
        "width": 368,
        "height": 188,
        "batteryHeight": 248,
        "component": "power-battery",
        "source": "Power.qml",
        "visual": ["battery", "profile", "session", "confirmation"]
    }
};

function catalogJson() {
    const descriptiveEntries = {};
    for (const name of Object.keys(entries)) {
        const entry = entries[name];
        descriptiveEntries[name] = {
            "component": entry.component,
            "source": entry.source,
            "visual": entry.visual
        };
    }
    return JSON.stringify({
        "host": "PopoutHost.qml",
        "loaderPolicy": "single-active-loader-with-close-retention",
        "completeContent": true,
        "entries": descriptiveEntries
    });
}