1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-06-08 12:13:31 -04:00

feat(mango): first-class MangoWM support across DMS, dankinstaller & UI tools

- Bring up Mango to parity with niri/hyprland via a native JSON-IPC w/Native MangoServic., replaces the legacy dwl/`mmsg` path and recent breaking changes
- Dankinstall: mango supported installer, config/binds templates, and packaging (Arch AUR, Fedora Terra auto-enable, Gentoo GURU)
- Window rules: Go provider + CLI + Settings GUI editor
- Keybinds + config reload on edit (mmsg dispatch reload_config)
- Misc new supported options in DMS settings
This commit is contained in:
purian23
2026-06-04 18:45:04 -04:00
parent 4181343ef3
commit 8eb23bcc29
63 changed files with 2282 additions and 301 deletions
@@ -12,9 +12,13 @@ BasePill {
signal toggleLayoutPopup
visible: CompositorService.isDwl && DwlService.dwlAvailable
// mango shares dwl's tag/layout model; route to the right service.
readonly property bool isDwlLike: CompositorService.isDwl || CompositorService.isMango
readonly property var dwlSvc: CompositorService.isMango ? MangoService : DwlService
property var outputState: parentScreen ? DwlService.getOutputState(parentScreen.name) : null
visible: layout.isDwlLike && layout.dwlSvc.available
property var outputState: parentScreen ? layout.dwlSvc.getOutputState(parentScreen.name) : null
property string currentLayoutSymbol: outputState?.layoutSymbol || ""
property int currentLayoutIndex: outputState?.layout || 0
@@ -37,9 +41,9 @@ BasePill {
}
Connections {
target: DwlService
target: layout.dwlSvc
function onStateChanged() {
outputState = parentScreen ? DwlService.getOutputState(parentScreen.name) : null;
outputState = parentScreen ? layout.dwlSvc.getOutputState(parentScreen.name) : null;
}
}
@@ -97,13 +101,13 @@ BasePill {
}
onRightClicked: {
if (!parentScreen || !DwlService.dwlAvailable || DwlService.layouts.length === 0) {
if (!parentScreen || !layout.dwlSvc.available || layout.dwlSvc.layouts.length === 0) {
return;
}
const currentIndex = layout.currentLayoutIndex;
const nextIndex = (currentIndex + 1) % DwlService.layouts.length;
const nextIndex = (currentIndex + 1) % layout.dwlSvc.layouts.length;
DwlService.setLayout(parentScreen.name, nextIndex);
layout.dwlSvc.setLayout(parentScreen.name, nextIndex);
}
}