1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-06 05:25:41 -05:00
Files
DankMaterialShell/shell.qml
2025-07-25 22:39:01 -04:00

153 lines
3.0 KiB
QML

//@ pragma UseQApplication
import QtQuick
import Quickshell
import Quickshell.Io
import qs.Modules
import qs.Modules.TopBar
import qs.Modules.AppDrawer
import qs.Modules.CentcomCenter
import qs.Modules.ControlCenter
import qs.Modules.Settings
import qs.Modules.ProcessList
import qs.Modules.ControlCenter.Network
import qs.Modules.Lock
import qs.Modules.Notifications
import qs.Modals
import qs.Services
ShellRoot {
id: root
WallpaperBackground {}
Lock {
id: lock
anchors.fill: parent
}
// Multi-monitor support using Variants
Variants {
model: Quickshell.screens
delegate: TopBar {
modelData: item
}
}
CentcomPopout {
id: centcomPopout
}
SystemTrayContextMenu {
id: systemTrayContextMenu
}
NotificationCenterPopout {
id: notificationCenter
}
NotificationPopupManager {
id: notificationPopupManager
}
ControlCenterPopout {
id: controlCenterPopout
onPowerActionRequested: (action, title, message) => {
powerConfirmModal.powerConfirmAction = action;
powerConfirmModal.powerConfirmTitle = title;
powerConfirmModal.powerConfirmMessage = message;
powerConfirmModal.powerConfirmVisible = true;
}
onLockRequested: {
lock.activate();
}
}
WifiPasswordModal {
id: wifiPasswordModal
}
NetworkInfoModal {
id: networkInfoModal
}
BatteryPopout {
id: batteryPopout
}
PowerMenu {
id: powerMenu
}
PowerConfirmModal {
id: powerConfirmModal
}
ProcessListPopout {
id: processListPopout
}
SettingsModal {
id: settingsModal
}
// Application and clipboard components
AppDrawerPopout {
id: appDrawerPopout
}
SpotlightModal {
id: spotlightModal
}
ClipboardHistoryModal {
id: clipboardHistoryModalPopup
}
LazyLoader {
id: processListModalLoader
active: false
ProcessListModal {
id: processListModal
}
}
IpcHandler {
function open() {
processListModalLoader.active = true;
if (processListModalLoader.item) {
processListModalLoader.item.show();
}
return "PROCESSLIST_OPEN_SUCCESS";
}
function close() {
if (processListModalLoader.item) {
processListModalLoader.item.hide();
}
return "PROCESSLIST_CLOSE_SUCCESS";
}
function toggle() {
processListModalLoader.active = true;
if (processListModalLoader.item) {
processListModalLoader.item.toggle();
}
return "PROCESSLIST_TOGGLE_SUCCESS";
}
target: "processlist"
}
Toast {
id: toastWidget
}
VolumePopup {
id: volumePopup
}
}