1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 21:42:51 -05:00
Files
DankMaterialShell/shell.qml
2025-07-24 14:56:58 -04:00

147 lines
2.9 KiB
QML

//@ pragma UseQApplication
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.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
}
NotificationCenter {
id: notificationCenter
}
NotificationPopup {
id: notificationPopup
}
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
// }
}