mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-14 23:34:01 -04:00
- The island is now a bar widget so any bar can host one alongside the island layout and dot - Routing got simpler: pick which shortcuts open here, the rest follow the shared rules - IPC close/hide take down every surface showing the activity - Qt 6.11 pointer prune workaround so the expanded island stays clickable
288 lines
12 KiB
JavaScript
288 lines
12 KiB
JavaScript
.pragma library
|
|
|
|
var CONTROL_CENTER_GROUP_ORDER = ["network", "vpn", "bluetooth", "audio", "microphone", "brightness", "battery", "printer", "screenSharing", "idleInhibitor", "doNotDisturb"];
|
|
|
|
// Island-layout bars and dots keep these keys on the bar config; the island widget carries them on its entry.
|
|
var ISLAND_DEFAULTS = {
|
|
islandFloating: false,
|
|
islandPlacement: "edge",
|
|
islandFreeSize: 48,
|
|
islandFreeIcon: "blur_on",
|
|
islandFreeEdgeMargin: 2,
|
|
islandFreeIdleDelay: 2500,
|
|
islandFreeIdleOpacity: 0.45,
|
|
islandFreeIdleScale: 0.4,
|
|
islandSharedRouting: "normal",
|
|
islandRouteLauncher: "follow",
|
|
islandRouteControlCenter: "follow",
|
|
islandRouteNotificationCenter: "follow",
|
|
islandRouteDash: "island",
|
|
islandRouteMedia: "island",
|
|
islandRouteWeather: "island",
|
|
islandRouteWallpaper: "island",
|
|
islandUseOverlayLayer: false,
|
|
islandReserveThickness: 40,
|
|
islandCompactThickness: 38,
|
|
islandOuterGap: 4,
|
|
islandAlongOffset: 0,
|
|
islandInteractionMode: "hybrid",
|
|
islandHoverOpenDelay: 150,
|
|
islandHoverCloseDelay: 150,
|
|
islandPalette: "default",
|
|
islandHighContrast: false,
|
|
islandMediaClockVisible: true,
|
|
islandNotificationBadgeClearOnOpen: false,
|
|
islandNotificationExpand: false,
|
|
islandNotificationPopups: false,
|
|
islandSystemOsd: true,
|
|
islandHomeCompactTight: false,
|
|
islandHomeClockDisplay: "both",
|
|
islandHomeVolumeDisplay: "both",
|
|
islandHomeBrightnessDisplay: "both",
|
|
islandHomeStatusContent: "battery",
|
|
islandBatteryStyle: "solid",
|
|
islandSatellitesEnabled: true,
|
|
islandSatellitePosition: "edges",
|
|
islandSatelliteGap: 12,
|
|
islandSatelliteBackground: false,
|
|
islandSatelliteGothCorners: true,
|
|
islandSatelliteFollowInterfaceStyle: true,
|
|
islandSatelliteTransparency: 1,
|
|
islandSatelliteSwoopRadius: 24,
|
|
islandReducedMotion: false,
|
|
islandSpringStiffness: 560,
|
|
islandSpringDamping: 37,
|
|
islandSpringMass: 1
|
|
};
|
|
|
|
var DEFAULTS = {
|
|
// A hosted island starts with popups, OSDs and hover left to the bar; island-layout bars take them by default.
|
|
island: Object.assign({}, ISLAND_DEFAULTS, {
|
|
islandNotificationPopups: true,
|
|
islandSystemOsd: false,
|
|
islandInteractionMode: "click",
|
|
islandWidgetBackground: true
|
|
}),
|
|
spacer: {
|
|
size: 20
|
|
},
|
|
launcherButton: {
|
|
launcherLogoMode: "apps",
|
|
launcherLogoCustomPath: "",
|
|
launcherLogoColorOverride: "",
|
|
launcherLogoBrightness: 0.5,
|
|
launcherLogoContrast: 1,
|
|
launcherLogoSizeOffset: 0
|
|
},
|
|
workspaceSwitcher: {
|
|
workspaceIndicatorStyle: "pills",
|
|
showWorkspaceIndex: false,
|
|
showWorkspaceName: false,
|
|
showWorkspacePadding: false,
|
|
workspacePaddingCount: 3,
|
|
showWorkspaceApps: false,
|
|
workspaceDragReorder: true,
|
|
maxWorkspaceIcons: 3,
|
|
workspaceAppIconSizeOffset: 0,
|
|
groupWorkspaceApps: true,
|
|
groupActiveWorkspaceApps: false,
|
|
workspaceFollowFocus: false,
|
|
showOccupiedWorkspacesOnly: false,
|
|
showSpecialWorkspaces: false,
|
|
reverseScrolling: false,
|
|
dwlShowAllTags: false,
|
|
workspaceActiveAppHighlightEnabled: false,
|
|
workspaceColorMode: "default",
|
|
workspaceFocusedCustomColor: "#6750A4",
|
|
workspaceOccupiedColorMode: "none",
|
|
workspaceOccupiedCustomColor: "#625B71",
|
|
workspaceUnfocusedColorMode: "default",
|
|
workspaceUnfocusedCustomColor: "#49454E",
|
|
workspaceUrgentColorMode: "default",
|
|
workspaceUrgentCustomColor: "#B3261E",
|
|
workspaceFocusedBorderEnabled: false,
|
|
workspaceFocusedBorderColor: "primary",
|
|
workspaceFocusedBorderCustomColor: "#6750A4",
|
|
workspaceFocusedBorderThickness: 2,
|
|
workspaceUnfocusedMonitorSeparateAppearance: false,
|
|
workspaceUnfocusedMonitorColorMode: "default",
|
|
workspaceUnfocusedMonitorFocusedCustomColor: "#6750A4",
|
|
workspaceUnfocusedMonitorOccupiedColorMode: "none",
|
|
workspaceUnfocusedMonitorOccupiedCustomColor: "#625B71",
|
|
workspaceUnfocusedMonitorUnfocusedColorMode: "default",
|
|
workspaceUnfocusedMonitorUnfocusedCustomColor: "#49454E",
|
|
workspaceUnfocusedMonitorUrgentColorMode: "default",
|
|
workspaceUnfocusedMonitorUrgentCustomColor: "#B3261E",
|
|
workspaceUnfocusedMonitorBorderEnabled: false,
|
|
workspaceUnfocusedMonitorBorderColor: "primary",
|
|
workspaceUnfocusedMonitorBorderCustomColor: "#6750A4",
|
|
workspaceUnfocusedMonitorBorderThickness: 2
|
|
},
|
|
clock: {
|
|
clockCompactMode: false,
|
|
clockDateOrder: "timeFirst",
|
|
clockNotificationBadge: false
|
|
},
|
|
music: {
|
|
mediaSize: 1,
|
|
mediaAdaptiveWidthEnabled: true,
|
|
audioScrollMode: "volume"
|
|
},
|
|
focusedWindow: {
|
|
focusedWindowCompactMode: false,
|
|
focusedWindowShowIcon: true,
|
|
focusedWindowSize: 1
|
|
},
|
|
runningApps: {
|
|
runningAppsCompactMode: true,
|
|
runningAppsGroupByApp: false,
|
|
runningAppsCurrentWorkspace: true,
|
|
runningAppsCurrentMonitor: false
|
|
},
|
|
appsDock: {
|
|
barMaxVisibleApps: 0,
|
|
barMaxVisibleRunningApps: 0,
|
|
barShowOverflowBadge: true,
|
|
runningAppsCompactMode: true,
|
|
runningAppsCurrentWorkspace: true,
|
|
appsDockHideIndicators: true,
|
|
appsDockColorizeActive: false,
|
|
appsDockActiveColorMode: "primary",
|
|
appsDockEnlargeOnHover: false,
|
|
appsDockEnlargePercentage: 125,
|
|
appsDockIconSizePercentage: 125,
|
|
appsDockSpacing: 4
|
|
},
|
|
systemTray: {
|
|
trayUseInlineExpansion: false,
|
|
trayPopupSingleLine: true,
|
|
trayAutoOverflow: true,
|
|
trayMaxVisibleItems: 0,
|
|
trayIconSpacing: 0
|
|
},
|
|
battery: {
|
|
showBatteryPercent: true,
|
|
showBatteryPercentOnlyOnBattery: false,
|
|
showBatteryTime: false,
|
|
showBatteryTimeOnlyOnBattery: false,
|
|
showBatteryPowerCharging: false,
|
|
showBatteryPowerDischarging: false,
|
|
batteryStyle: "icon"
|
|
},
|
|
controlCenterButton: {
|
|
showNetworkIcon: true,
|
|
showVpnIcon: true,
|
|
showBluetoothIcon: true,
|
|
showAudioIcon: true,
|
|
showAudioPercent: false,
|
|
showMicIcon: false,
|
|
showMicPercent: false,
|
|
showBrightnessIcon: false,
|
|
showBrightnessPercent: false,
|
|
showBatteryIcon: false,
|
|
showPrinterIcon: false,
|
|
showScreenSharingIcon: true,
|
|
showIdleInhibitorIcon: false,
|
|
showDoNotDisturbIcon: false,
|
|
controlCenterGroupOrder: CONTROL_CENTER_GROUP_ORDER
|
|
},
|
|
privacyIndicator: {
|
|
privacyShowMicIcon: false,
|
|
privacyShowCameraIcon: false,
|
|
privacyShowScreenShareIcon: false
|
|
},
|
|
keyboard_layout_name: {
|
|
keyboardLayoutNameCompactMode: false,
|
|
keyboardLayoutNameShowIcon: false,
|
|
keyboardLayoutNameLabelOverrides: {}
|
|
},
|
|
cpuUsage: {
|
|
minimumWidth: true
|
|
},
|
|
cpuTemp: {
|
|
minimumWidth: true
|
|
},
|
|
memUsage: {
|
|
minimumWidth: true,
|
|
showSwap: false,
|
|
showInGb: false
|
|
},
|
|
gpuTemp: {
|
|
minimumWidth: true,
|
|
selectedGpuIndex: 0,
|
|
pciId: ""
|
|
},
|
|
diskUsage: {
|
|
minimumWidth: true,
|
|
mountPath: "/",
|
|
diskUsageMode: 0,
|
|
showMountPath: true
|
|
},
|
|
systemUpdate: {
|
|
hideWhenIdle: false
|
|
}
|
|
};
|
|
|
|
// entry key -> settings.json key that held the value before config version 19 (launcherButton: 29)
|
|
var MIGRATED_GLOBALS = {
|
|
launcherButton: sameNames(["launcherLogoMode", "launcherLogoCustomPath", "launcherLogoColorOverride", "launcherLogoBrightness", "launcherLogoContrast", "launcherLogoSizeOffset"]),
|
|
workspaceSwitcher: sameNames(["showWorkspaceIndex", "showWorkspaceName", "showWorkspacePadding", "workspacePaddingCount", "showWorkspaceApps", "workspaceDragReorder", "maxWorkspaceIcons", "workspaceAppIconSizeOffset", "groupWorkspaceApps", "groupActiveWorkspaceApps", "workspaceFollowFocus", "showOccupiedWorkspacesOnly", "reverseScrolling", "dwlShowAllTags", "workspaceActiveAppHighlightEnabled", "workspaceColorMode", "workspaceFocusedCustomColor", "workspaceOccupiedColorMode", "workspaceOccupiedCustomColor", "workspaceUnfocusedColorMode", "workspaceUnfocusedCustomColor", "workspaceUrgentColorMode", "workspaceUrgentCustomColor", "workspaceFocusedBorderEnabled", "workspaceFocusedBorderColor", "workspaceFocusedBorderCustomColor", "workspaceFocusedBorderThickness", "workspaceUnfocusedMonitorSeparateAppearance", "workspaceUnfocusedMonitorColorMode", "workspaceUnfocusedMonitorFocusedCustomColor", "workspaceUnfocusedMonitorOccupiedColorMode", "workspaceUnfocusedMonitorOccupiedCustomColor", "workspaceUnfocusedMonitorUnfocusedColorMode", "workspaceUnfocusedMonitorUnfocusedCustomColor", "workspaceUnfocusedMonitorUrgentColorMode", "workspaceUnfocusedMonitorUrgentCustomColor", "workspaceUnfocusedMonitorBorderEnabled", "workspaceUnfocusedMonitorBorderColor", "workspaceUnfocusedMonitorBorderCustomColor", "workspaceUnfocusedMonitorBorderThickness"]),
|
|
clock: sameNames(["clockCompactMode"]),
|
|
music: sameNames(["mediaSize", "mediaAdaptiveWidthEnabled", "audioScrollMode"]),
|
|
focusedWindow: sameNames(["focusedWindowCompactMode", "focusedWindowShowIcon", "focusedWindowSize"]),
|
|
runningApps: sameNames(["runningAppsCompactMode", "runningAppsGroupByApp", "runningAppsCurrentWorkspace", "runningAppsCurrentMonitor"]),
|
|
appsDock: sameNames(["barMaxVisibleApps", "barMaxVisibleRunningApps", "barShowOverflowBadge", "runningAppsCompactMode", "runningAppsCurrentWorkspace", "appsDockHideIndicators", "appsDockColorizeActive", "appsDockActiveColorMode", "appsDockEnlargeOnHover", "appsDockEnlargePercentage", "appsDockIconSizePercentage"]),
|
|
systemTray: sameNames(["trayPopupSingleLine", "trayAutoOverflow", "trayMaxVisibleItems", "trayIconSpacing"]),
|
|
battery: sameNames(["showBatteryPercent", "showBatteryPercentOnlyOnBattery", "showBatteryTime", "showBatteryTimeOnlyOnBattery", "showBatteryPowerCharging", "showBatteryPowerDischarging", "batteryStyle"]),
|
|
controlCenterButton: {
|
|
showNetworkIcon: "controlCenterShowNetworkIcon",
|
|
showVpnIcon: "controlCenterShowVpnIcon",
|
|
showBluetoothIcon: "controlCenterShowBluetoothIcon",
|
|
showAudioIcon: "controlCenterShowAudioIcon",
|
|
showAudioPercent: "controlCenterShowAudioPercent",
|
|
showMicIcon: "controlCenterShowMicIcon",
|
|
showMicPercent: "controlCenterShowMicPercent",
|
|
showBrightnessIcon: "controlCenterShowBrightnessIcon",
|
|
showBrightnessPercent: "controlCenterShowBrightnessPercent",
|
|
showBatteryIcon: "controlCenterShowBatteryIcon",
|
|
showPrinterIcon: "controlCenterShowPrinterIcon",
|
|
showScreenSharingIcon: "controlCenterShowScreenSharingIcon",
|
|
showIdleInhibitorIcon: "controlCenterShowIdleInhibitorIcon",
|
|
showDoNotDisturbIcon: "controlCenterShowDoNotDisturbIcon"
|
|
},
|
|
privacyIndicator: sameNames(["privacyShowMicIcon", "privacyShowCameraIcon", "privacyShowScreenShareIcon"]),
|
|
keyboard_layout_name: sameNames(["keyboardLayoutNameCompactMode", "keyboardLayoutNameShowIcon"])
|
|
};
|
|
|
|
var LEGACY_GLOBAL_DEFAULTS = {
|
|
appsDockHideIndicators: false,
|
|
appsDockIconSizePercentage: 100
|
|
};
|
|
|
|
function sameNames(keys) {
|
|
var map = {};
|
|
for (var i = 0; i < keys.length; i++)
|
|
map[keys[i]] = keys[i];
|
|
return map;
|
|
}
|
|
|
|
function removedGlobals() {
|
|
var out = [];
|
|
for (var type in MIGRATED_GLOBALS) {
|
|
var map = MIGRATED_GLOBALS[type];
|
|
for (var key in map) {
|
|
var globalKey = map[key];
|
|
if (out.indexOf(globalKey) === -1)
|
|
out.push(globalKey);
|
|
}
|
|
}
|
|
return out;
|
|
}
|
|
|
|
function option(widgetType, data, key) {
|
|
if (data && data[key] !== undefined)
|
|
return data[key];
|
|
var defaults = DEFAULTS[widgetType];
|
|
return defaults ? defaults[key] : undefined;
|
|
}
|