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:
@@ -327,6 +327,24 @@ PanelWindow {
|
||||
hasMaximizedToplevel = false;
|
||||
return;
|
||||
}
|
||||
if (CompositorService.isMango) {
|
||||
const out = MangoService.outputs[screenName];
|
||||
const active = new Set((out?.activeTags) || []);
|
||||
const wins = MangoService.windows || [];
|
||||
for (let i = 0; i < wins.length; i++) {
|
||||
const w = wins[i];
|
||||
if (!w || w.monitor !== screenName || w.is_minimized)
|
||||
continue;
|
||||
if (active.size > 0 && !(w.tags || []).some(t => active.has(t)))
|
||||
continue;
|
||||
if (w.is_maximized || w.is_fullscreen) {
|
||||
hasMaximizedToplevel = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
hasMaximizedToplevel = false;
|
||||
return;
|
||||
}
|
||||
if (!CompositorService.isHyprland && !CompositorService.isNiri) {
|
||||
hasMaximizedToplevel = false;
|
||||
return;
|
||||
@@ -351,7 +369,7 @@ PanelWindow {
|
||||
shouldHideForWindows = false;
|
||||
return;
|
||||
}
|
||||
if (!CompositorService.isNiri && !CompositorService.isHyprland) {
|
||||
if (!CompositorService.isNiri && !CompositorService.isHyprland && !CompositorService.isMango) {
|
||||
shouldHideForWindows = false;
|
||||
return;
|
||||
}
|
||||
@@ -825,7 +843,7 @@ PanelWindow {
|
||||
return true;
|
||||
|
||||
const showOnWindowsSetting = barConfig?.showOnWindowsOpen ?? false;
|
||||
if (showOnWindowsSetting && autoHide && (CompositorService.isNiri || CompositorService.isHyprland)) {
|
||||
if (showOnWindowsSetting && autoHide && (CompositorService.isNiri || CompositorService.isHyprland || CompositorService.isMango)) {
|
||||
if (barWindow.shouldHideForWindows)
|
||||
return topBarMouseArea.containsMouse || popoutPinsReveal || revealSticky || ipcReveal;
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user