Files
DankMaterialShell/quickshell/Common/settings/SettingsSpec.js
T
2026-09-28 14:26:42 -04:00

1489 lines
31 KiB
JavaScript

.pragma library
.import "../../DankCommon/Common/settings/SharedSettingsSpec.js" as Shared
.import "../../DankCommon/Common/settings/SpecUtil.js" as Util
.import "DockConfig.js" as DockConfig
var LOCAL_SPEC = {
dockConfigs: {
def: [DockConfig.create("dock", "Dock")]
},
currentThemeCategory: {
def: "generic"
},
matugenScheme: {
def: "scheme-tonal-spot",
onChange: "regenSystemThemes"
},
matugenSmartMode: {
def: false,
onChange: "regenSystemThemes"
},
matugenSourceMode: {
def: "dominant",
onChange: "regenSystemThemes"
},
matugenContrast: {
def: 0,
onChange: "regenSystemThemes"
},
matugenSeedColor: {
def: "",
onChange: "regenSystemThemes"
},
matugenSpec: {
def: "2021",
onChange: "regenSystemThemes"
},
runUserMatugenTemplates: {
def: true,
onChange: "regenSystemThemes"
},
matugenTargetMonitor: {
def: "",
onChange: "regenSystemThemes"
},
generateThemeAtStartup: {
def: true
},
popupTransparency: {
def: 1.0,
coerce: Util.percentToUnit
},
floatingWindowSyncGlobal: {
def: true
},
floatingWindowTransparency: {
def: 1.0,
coerce: Util.percentToUnit
},
floatingWindowForegroundLayers: {
def: true
},
floatingWindowForegroundTransparency: {
def: 1.0,
coerce: Util.percentToUnit
},
dmsWindowsFloatingSeeded: {
def: []
},
hostSurfaceColor: {
def: "default"
},
hostSurfaceCustomColor: {
def: "#6750A4"
},
cardSurfaceColor: {
def: "default"
},
cardSurfaceCustomColor: {
def: "#6750A4"
},
chipSurfaceColor: {
def: "default"
},
chipSurfaceCustomColor: {
def: "#6750A4"
},
chipSurfaceNestedColor: {
def: "default"
},
chipSurfaceNestedCustomColor: {
def: "#6750A4"
},
widgetBackgroundColor: {
def: "default"
},
widgetBackgroundCustomColor: {
def: "#6750A4"
},
widgetBackgroundCustomStrength: {
def: 0.50,
coerce: Util.percentToUnit
},
widgetColorMode: {
def: "default"
},
controlCenterTileColorMode: {
def: "primary"
},
buttonColorMode: {
def: "primary"
},
niriLayoutGapsOverride: {
def: -1,
onChange: "updateCompositorLayout"
},
niriLayoutRadiusOverride: {
def: -1,
onChange: "updateCompositorLayout"
},
niriLayoutBorderSize: {
def: -1,
onChange: "updateCompositorLayout"
},
hyprlandLayoutGapsOverride: {
def: -1,
onChange: "updateCompositorLayout"
},
hyprlandLayoutGapsOutOverride: {
def: -1,
onChange: "updateCompositorLayout"
},
hyprlandLayoutRadiusOverride: {
def: -1,
onChange: "updateCompositorLayout"
},
hyprlandLayoutBorderSize: {
def: -1,
onChange: "updateCompositorLayout"
},
hyprlandResizeOnBorder: {
def: false,
onChange: "updateCompositorLayout"
},
hyprlandTilingLayout: {
def: "",
onChange: "updateCompositorLayout"
},
hyprlandDwindlePreserveSplit: {
def: false,
onChange: "updateCompositorLayout"
},
hyprlandDwindleSmartSplit: {
def: false,
onChange: "updateCompositorLayout"
},
hyprlandDwindleForceSplit: {
def: 0,
onChange: "updateCompositorLayout"
},
hyprlandMasterOrientation: {
def: "left",
onChange: "updateCompositorLayout"
},
hyprlandMasterNewStatus: {
def: "slave",
onChange: "updateCompositorLayout"
},
hyprlandMasterNewOnTop: {
def: false,
onChange: "updateCompositorLayout"
},
hyprlandMasterSize: {
def: 55,
onChange: "updateCompositorLayout"
},
hyprlandScrollingDirection: {
def: "right",
onChange: "updateCompositorLayout"
},
hyprlandScrollingColumnWidth: {
def: 50,
onChange: "updateCompositorLayout"
},
hyprlandScrollingFullscreenOneColumn: {
def: true,
onChange: "updateCompositorLayout"
},
hyprlandScrollingFollowFocus: {
def: true,
onChange: "updateCompositorLayout"
},
mangoLayoutGapsOverride: {
def: -1,
onChange: "updateCompositorLayout"
},
mangoLayoutGapsOutOverride: {
def: -1,
onChange: "updateCompositorLayout"
},
mangoLayoutRadiusOverride: {
def: -1,
onChange: "updateCompositorLayout"
},
mangoLayoutBorderSize: {
def: -1,
onChange: "updateCompositorLayout"
},
mangoTrackpadNaturalScrolling: {
def: true,
onChange: "updateCompositorCursor"
},
mouseAccelProfile: {
def: "default",
onChange: "updateCompositorInput"
},
mouseAccelSpeed: {
def: 0.0,
onChange: "updateCompositorInput"
},
mouseLeftHanded: {
def: false,
onChange: "updateCompositorInput"
},
mouseMiddleEmulation: {
def: false,
onChange: "updateCompositorInput"
},
mouseNaturalScroll: {
def: false,
onChange: "updateCompositorInput"
},
mouseScrollFactor: {
def: 1.0,
onChange: "updateCompositorInput"
},
mouseScrollMethod: {
def: "default",
onChange: "updateCompositorInput"
},
touchpadAccelProfile: {
def: "default",
onChange: "updateCompositorInput"
},
touchpadAccelSpeed: {
def: 0.0,
onChange: "updateCompositorInput"
},
touchpadClickMethod: {
def: "default",
onChange: "updateCompositorInput"
},
touchpadDisableOnExternalMouse: {
def: false,
onChange: "updateCompositorInput"
},
touchpadDisableWhileTyping: {
def: true,
onChange: "updateCompositorInput"
},
touchpadDragLock: {
def: false,
onChange: "updateCompositorInput"
},
touchpadMiddleEmulation: {
def: false,
onChange: "updateCompositorInput"
},
touchpadNaturalScroll: {
def: true,
onChange: "updateCompositorInput"
},
touchpadScrollFactor: {
def: 1.0,
onChange: "updateCompositorInput"
},
touchpadScrollMethod: {
def: "default",
onChange: "updateCompositorInput"
},
touchpadTapAndDrag: {
def: true,
onChange: "updateCompositorInput"
},
touchpadTapToClick: {
def: true,
onChange: "updateCompositorInput"
},
keyboardLayouts: {
def: "",
onChange: "updateCompositorInput"
},
keyboardVariants: {
def: "",
onChange: "updateCompositorInput"
},
keyboardModel: {
def: "",
onChange: "updateCompositorInput"
},
keyboardOptions: {
def: "",
onChange: "updateCompositorInput"
},
keyboardKeymapFile: {
def: "",
onChange: "updateCompositorInput"
},
keyboardTrackLayout: {
def: "",
onChange: "updateCompositorInput"
},
keyboardRepeatDelay: {
def: 0,
onChange: "updateCompositorInput"
},
keyboardRepeatRate: {
def: 0,
onChange: "updateCompositorInput"
},
keyboardNumlock: {
def: false,
onChange: "updateCompositorInput"
},
firstDayOfWeek: {
def: -1
},
showWeekNumber: {
def: false
},
calendarBackend: {
def: "auto"
},
defaultTaskCalendarId: {
def: ""
},
audioShowStreamDevices: {
def: false
},
windSpeedUnit: {
def: "kmh"
},
syncComponentAnimationSpeeds: {
def: true
},
popoutAnimationDuration: {
def: 150
},
modalAnimationDuration: {
def: 150
},
reduceMotion: {
def: false
},
springBounce: {
def: 1
},
motionEffect: {
def: 0
},
m3ElevationEnabled: {
def: true
},
m3ElevationIntensity: {
def: 12
},
m3ElevationOpacity: {
def: 30
},
m3ElevationColorMode: {
def: "default"
},
m3ElevationLightDirection: {
def: "top"
},
m3ElevationCustomColor: {
def: "#000000"
},
modalElevationEnabled: {
def: true
},
barElevationEnabled: {
def: true
},
blurEnabled: {
def: false
},
blurBorderSeeded: {
def: false
},
blurForegroundLayers: {
def: true
},
foregroundLayerTransparency: {
def: 1.0,
coerce: Util.percentToUnit
},
blurLayerOutlineOpacity: {
def: 0,
coerce: Util.percentToUnit
},
focusRingEnabled: {
def: true
},
focusRingWidth: {
def: 1.5
},
focusRingColor: {
def: "primary"
},
blurredWallpaperLayer: {
def: false
},
blurWallpaperOnOverview: {
def: false
},
systemTrayIconTintMode: {
def: "none"
},
systemTrayIconTintSaturation: {
def: 50
},
systemTrayIconTintStrength: {
def: 135
},
controlCenterColumns: {
def: 8
},
controlCenterIconScale: {
def: 1.0
},
controlCenterWidgets: {
def: [
{
id: "userCard",
enabled: true,
w: 6.5,
h: 1.5
},
{
id: "quickActions",
enabled: true,
w: 1.5,
h: 1.5
},
{
id: "volumeSlider",
enabled: true,
w: 4,
h: 1
},
{
id: "brightnessSlider",
enabled: true,
w: 4,
h: 1
},
{
id: "wifi",
enabled: true,
w: 4,
h: 1
},
{
id: "bluetooth",
enabled: true,
w: 4,
h: 1
},
{
id: "audioOutput",
enabled: true,
w: 4,
h: 1
},
{
id: "audioInput",
enabled: true,
w: 4,
h: 1
},
{
id: "nightMode",
enabled: true,
w: 4,
h: 1
},
{
id: "darkMode",
enabled: true,
w: 4,
h: 1
}
]
},
workspaceNameIcons: {
def: {}
},
scrollTitleEnabled: {
def: true
},
audioVisualizerEnabled: {
def: true
},
audioWheelScrollAmount: {
def: 5
},
bluetoothMprisEnabled: {
def: false
},
mediaExcludePlayers: {
def: []
},
mediaLyricsProviders: {
def: [
{
id: "betterlyrics",
enabled: true
},
{
id: "unison",
enabled: true
},
{
id: "lyricsplus",
enabled: true
},
{
id: "kugou",
enabled: true
},
{
id: "lrclib",
enabled: true
},
{
id: "youtubemusic",
enabled: true
}
]
},
appIdSubstitutions: {
def: [
{
pattern: "Spotify",
replacement: "spotify",
type: "exact"
},
{
pattern: "beepertexts",
replacement: "beeper",
type: "exact"
},
{
pattern: "home assistant desktop",
replacement: "homeassistant-desktop",
type: "exact"
},
{
pattern: "com.transmissionbt.transmission",
replacement: "transmission-gtk",
type: "contains"
},
{
pattern: "^steam_app_(\\d+)$",
replacement: "steam_icon_$1",
type: "regex"
}
]
},
centeringMode: {
def: "index"
},
clockDateFormat: {
def: ""
},
greeterAutoLogin: {
def: false,
onChange: "scheduleGreeterAutoLoginSync"
},
greeterPamExternallyManaged: {
def: false,
onChange: "markGreeterSyncPending"
},
browserPickerViewMode: {
def: "grid"
},
appPickerViewMode: {
def: "grid"
},
sortAppsAlphabetically: {
def: false
},
appLauncherGridColumns: {
def: 4
},
closeNiriOverviewOnWindowFocus: {
def: true
},
rememberLastQuery: {
def: false
},
rememberLastMode: {
def: true
},
spotlightSectionViewModes: {
def: {}
},
appDrawerSectionViewModes: {
def: {}
},
niriOverviewOverlayEnabled: {
def: true
},
niriOverviewLauncherStyle: {
def: "full"
},
dankLauncherV2Size: {
def: "compact"
},
dankLauncherV2ShowSourceBadges: {
def: true
},
dankLauncherV2BorderEnabled: {
def: false
},
dankLauncherV2BorderThickness: {
def: 2
},
dankLauncherV2BorderColor: {
def: "primary"
},
dankLauncherV2ShowFooter: {
def: true
},
dankLauncherV2UnloadOnClose: {
def: false
},
dankLauncherV2IncludeFilesInAll: {
def: false
},
dankLauncherV2IncludeFoldersInAll: {
def: false
},
launcherUseOverlayLayer: {
def: false
},
launcherStyle: {
def: "full"
},
avatarRing: {
def: "outline"
},
spotlightBarShowModeChips: {
def: false
},
keybindsFloatingWindow: {
def: false
},
dashTabPosition: {
def: "auto"
},
dashTabsEvenlySpaced: {
def: true
},
dashTabs: {
def: [
{
id: "overview",
enabled: true
},
{
id: "media",
enabled: true
},
{
id: "wallpaper",
enabled: true
},
{
id: "weather",
enabled: true
},
{
id: "notifications",
enabled: false
}
]
},
dashCards: {
def: [
{
id: "clock",
w: 2,
h: 1
},
{
id: "weather",
w: 1,
h: 1
},
{
id: "notifications",
w: 3,
h: 5
},
{
id: "calendar",
w: 3,
h: 3
},
{
id: "media",
w: 3,
h: 1
}
]
},
dashOptions: {
def: {}
},
networkPreference: {
def: "auto"
},
iconThemeDark: {
def: "System Default",
onChange: "applyStoredIconTheme"
},
iconThemeLight: {
def: "System Default",
onChange: "applyStoredIconTheme"
},
iconThemePerMode: {
def: false,
onChange: "applyStoredIconTheme"
},
availableIconThemes: {
def: ["System Default"],
persist: false
},
systemDefaultIconTheme: {
def: "",
persist: false
},
cursorSettings: {
def: {
theme: "System Default",
size: 24,
niri: {
hideWhenTyping: false,
hideAfterInactiveMs: 0
},
hyprland: {
hideOnKeyPress: false,
hideOnTouch: false,
inactiveTimeout: 0
},
dwl: {
cursorHideTimeout: 0
},
mango: {
cursorHideTimeout: 0
}
},
onChange: "updateCompositorCursor"
},
availableCursorThemes: {
def: ["System Default"],
persist: false
},
systemDefaultCursorTheme: {
def: "",
persist: false
},
notepadUseMonospace: {
def: true
},
notepadFontFamily: {
def: ""
},
notepadFontSize: {
def: 14
},
notificationSummaryFontSize: {
def: 0
},
notificationBodyFontSize: {
def: 0
},
notepadShowLineNumbers: {
def: false
},
notepadAutoSave: {
def: false
},
notepadSlideoutSide: {
def: "right"
},
notepadDefaultMode: {
def: "slideout"
},
notepadTransparencyOverride: {
def: -1
},
notepadLastCustomTransparency: {
def: 0.7
},
notepadUseCompositorGap: {
def: false
},
notepadEdgeGap: {
def: 0
},
soundsEnabled: {
def: true
},
useSystemSoundTheme: {
def: false
},
soundLogin: {
def: false
},
soundNewNotification: {
def: true
},
soundVolumeChanged: {
def: true
},
soundPluggedIn: {
def: true
},
muteSoundsWhenMediaPlaying: {
def: true
},
acMonitorTimeout: {
def: 0
},
acLockTimeout: {
def: 0
},
acSuspendTimeout: {
def: 0
},
acSuspendBehavior: {
def: 0
},
acProfileName: {
def: ""
},
acPostLockMonitorTimeout: {
def: 0
},
batteryMonitorTimeout: {
def: 0
},
batteryLockTimeout: {
def: 0
},
batterySuspendTimeout: {
def: 0
},
batterySuspendBehavior: {
def: 0
},
batteryProfileName: {
def: ""
},
batteryPostLockMonitorTimeout: {
def: 0
},
batteryChargeLimit: {
def: 100
},
batteryNotifyChargeLimit: {
def: false
},
batteryCriticalThreshold: {
def: 10
},
batteryNotifyCritical: {
def: true
},
batteryLowThreshold: {
def: 20
},
batteryNotifyLow: {
def: false
},
batteryChargeLimitNotificationType: {
def: 0
},
batteryLowNotificationType: {
def: 0
},
batteryCriticalNotificationType: {
def: 1
},
batteryAutoPowerSaver: {
def: false
},
lowerDisplayRefreshRateOnBattery: {
def: false
},
lockBeforeSuspend: {
def: false
},
loginctlLockIntegration: {
def: true
},
fadeToLockEnabled: {
def: true
},
fadeToLockGracePeriod: {
def: 5
},
fadeToDpmsEnabled: {
def: true
},
fadeToDpmsGracePeriod: {
def: 5
},
launchPrefix: {
def: ""
},
syncModeWithPortal: {
def: true
},
terminalsAlwaysDark: {
def: false,
onChange: "regenSystemThemes"
},
muxType: {
def: "tmux"
},
muxUseCustomCommand: {
def: false
},
muxCustomCommand: {
def: ""
},
muxSessionFilter: {
def: ""
},
runDmsMatugenTemplates: {
def: true
},
matugenTemplateGtk: {
def: true
},
matugenTemplateNiri: {
def: true
},
matugenTemplateHyprland: {
def: true
},
matugenTemplateMangowc: {
def: true
},
matugenTemplateQt5ct: {
def: true
},
matugenTemplateQt6ct: {
def: true
},
matugenTemplateFcitx5: {
def: true
},
matugenTemplateQtengine: {
def: true
},
matugenTemplateFirefox: {
def: true
},
matugenTemplatePywalfox: {
def: true
},
matugenTemplateZenBrowser: {
def: true
},
matugenTemplateVesktop: {
def: true
},
matugenTemplateVencord: {
def: true
},
matugenTemplateEquibop: {
def: true
},
matugenTemplateGhostty: {
def: true
},
matugenTemplateKitty: {
def: true
},
matugenTemplateFoot: {
def: true
},
matugenTemplateAlacritty: {
def: true
},
matugenTemplateNeovim: {
def: false
},
matugenTemplateWezterm: {
def: true
},
matugenTemplateDgop: {
def: true
},
matugenTemplateKcolorscheme: {
def: true
},
matugenTemplateVscode: {
def: true
},
matugenTemplateEmacs: {
def: true
},
matugenTemplateZed: {
def: true
},
matugenTemplateNeovimSettings: {
def: {
dark: {
baseTheme: "github_dark",
harmony: 0.5
},
light: {
baseTheme: "github_light",
harmony: 0.5
}
}
},
matugenTemplateNeovimSetBackground: {
def: true
},
notificationOverlayEnabled: {
def: false
},
notificationPopupShadowEnabled: {
def: true
},
notificationPopupPrivacyMode: {
def: false
},
notificationPopupBodyInvokesAction: {
def: false
},
notificationForegroundLayers: {
def: true
},
overviewRows: {
def: 2,
persist: false
},
overviewColumns: {
def: 5,
persist: false
},
overviewScale: {
def: 0.16,
persist: false
},
modalDarkenBackground: {
def: true
},
lockScreenShowSystemIcons: {
def: true
},
lockScreenShowTime: {
def: true
},
lockScreenClockStyle: {
def: "horizontal"
},
lockScreenShowDate: {
def: true
},
lockScreenShowPasswordField: {
def: true
},
lockScreenShowMediaPlayer: {
def: true
},
lockScreenPowerOffMonitorsOnLock: {
def: false
},
lockAtStartup: {
def: false
},
enableFprint: {
def: false
},
maxFprintTries: {
def: 15
},
enableU2f: {
def: false,
onChange: "scheduleAuthApply"
},
u2fMode: {
def: "or"
},
lockPamPath: {
def: ""
},
lockScreenSecurityKeyShortcut: {
def: "Ctrl+Q"
},
lockScreenSecurityKeyShortcutEnabled: {
def: false
},
lockPamInlineFprint: {
def: false
},
lockPamInlineU2f: {
def: false
},
lockPamExternallyManaged: {
def: false
},
lockU2fPamPath: {
def: ""
},
lockScreenInactiveColor: {
def: "#000000"
},
lockScreenNotificationMode: {
def: 0
},
lockScreenVideoEnabled: {
def: false
},
lockScreenVideoPath: {
def: ""
},
lockScreenVideoCycling: {
def: false
},
notificationTimeoutLow: {
def: 5000
},
notificationTimeoutNormal: {
def: 5000
},
notificationTimeoutCritical: {
def: 0
},
notificationIgnoreAppTimeout: {
def: false
},
notificationCompactMode: {
def: false
},
notificationShowTimeoutBar: {
def: false
},
notificationDedupeEnabled: {
def: true
},
notificationPopupPosition: {
def: 0
},
notificationAnimationDuration: {
def: 200
},
notificationHistoryEnabled: {
def: true
},
notificationHistoryMaxCount: {
def: 50
},
notificationHistoryMaxAgeDays: {
def: 7
},
notificationHistorySaveLow: {
def: true
},
notificationHistorySaveNormal: {
def: true
},
notificationHistorySaveCritical: {
def: true
},
notificationRules: {
def: []
},
notificationDndAllowCritical: {
def: true
},
notificationDndWhileScreenSharing: {
def: true
},
notificationFocusedMonitor: {
def: false
},
osdAlwaysShowValue: {
def: false
},
osdPosition: {
def: 5
},
osdVolumeEnabled: {
def: true
},
osdMediaVolumeEnabled: {
def: true
},
osdMediaPlaybackEnabled: {
def: false
},
osdBrightnessEnabled: {
def: true
},
osdIdleInhibitorEnabled: {
def: true
},
osdMicMuteEnabled: {
def: true
},
osdMicVolumeEnabled: {
def: true
},
osdCapsLockEnabled: {
def: true
},
osdPowerProfileEnabled: {
def: false
},
osdAudioOutputEnabled: {
def: true
},
osdWorkspaceEnabled: {
def: false
},
customPowerActionLock: {
def: ""
},
customPowerActionLogout: {
def: ""
},
customPowerActionSuspend: {
def: ""
},
customPowerActionHibernate: {
def: ""
},
customPowerActionReboot: {
def: ""
},
customPowerActionPowerOff: {
def: ""
},
customPowerButtons: {
def: []
},
powerMenuBootEntries: {
def: []
},
updaterCheckOnStart: {
def: false
},
updaterUseCustomCommand: {
def: false
},
updaterCustomCommand: {
def: ""
},
updaterTerminalAdditionalParams: {
def: ""
},
updaterIntervalSeconds: {
def: 1800
},
updaterIncludeFlatpak: {
def: true
},
updaterAllowAUR: {
def: true
},
updaterReopenAfterUpgrade: {
def: true
},
updaterIgnoredPackages: {
def: []
},
displayNameMode: {
def: "system"
},
screenPreferences: {
def: {}
},
showOnLastDisplay: {
def: {}
},
displayProfiles: {
def: {}
},
displayPreviousRefreshModes: {
def: {}
},
displayProfileAutoSelect: {
def: false
},
displayShowDisconnected: {
def: false
},
displaySnapToEdge: {
def: true
},
connectedFrameBarStyleBackups: {
def: {}
},
barConfigs: {
def: [
{
id: "default",
name: "Main Bar",
enabled: true,
position: 0,
screenPreferences: ["all"],
showOnLastDisplay: true,
leftWidgets: ["launcherButton", "workspaceSwitcher", "focusedWindow"],
centerWidgets: ["music", "clock", "weather"],
rightWidgets: ["systemTray", "clipboard", "cpuUsage", "memUsage", "notificationButton", "battery", "controlCenterButton"],
spacing: 4,
innerPadding: 4,
barInsetPadding: -1,
barLengthPadding: 0,
barLengthMode: "full",
barLengthPercent: 80,
bottomGap: 0,
attachToScreenEdge: false,
followInterfaceStyle: true,
transparency: 1.0,
surfaceColor: "default",
surfaceCustomColor: "#6750A4",
widgetFollowInterfaceStyle: true,
widgetTransparency: 1.0,
squareCorners: false,
noBackground: false,
widgetStyle: "pills",
maximizeWidgetIcons: false,
maximizeWidgetText: false,
widgetPadding: 8,
batteryColorMode: "theme",
gothCornersEnabled: false,
gothCornerRadiusOverride: false,
gothCornerRadiusValue: 12,
borderEnabled: false,
borderColor: "surfaceText",
borderOpacity: 1.0,
borderThickness: 1,
widgetOutlineEnabled: false,
widgetOutlineColor: "primary",
widgetOutlineOpacity: 1.0,
widgetOutlineThickness: 1,
fontScale: 1.0,
iconScale: 1.0,
autoHide: false,
autoHideStrict: false,
autoHideDelay: 250,
showOnWindowsOpen: false,
openOnOverview: false,
visible: true,
popupGapsAuto: true,
popupGapsManual: 4,
maximizeDetection: true,
useOverlayLayer: false,
scrollEnabled: true,
scrollXBehavior: "column",
scrollYBehavior: "workspace",
shadowIntensity: 0,
shadowOpacity: 60,
shadowColorMode: "default",
shadowCustomColor: "#000000",
shadowDirectionMode: "inherit",
shadowDirection: "top",
clickThrough: false,
hoverPopouts: false,
hoverPopoutDelay: 150
}
],
onChange: "updateBarConfigs"
},
desktopWidgetInstances: {
def: []
},
desktopWidgetGroups: {
def: []
},
builtInPluginSettings: {
def: {}
},
clipboardClickToPaste: {
def: false
},
clipboardEnterToPaste: {
def: false
},
clipboardRememberTypeFilter: {
def: false
},
clipboardUseOverlayLayer: {
def: false
},
clipboardSize: {
def: "compact"
},
clipboardTypeFilter: {
def: "all"
},
clipboardVisibleEntryActions: {
def: ["pin", "edit", "delete"]
},
launcherPluginVisibility: {
def: {}
},
launcherPluginOrder: {
def: []
},
frameEnabled: {
def: false
},
frameThickness: {
def: 16
},
frameRounding: {
def: 23
},
frameScreenPreferences: {
def: ["all"]
},
frameBarSize: {
def: 40
},
frameShowOnOverview: {
def: false
},
frameBlurEnabled: {
def: true
},
frameCloseGaps: {
def: true
},
frameLauncherEmergeSide: {
def: "bottom"
},
frameLauncherArcExtender: {
def: false
},
frameLauncherEdgeHover: {
def: false
},
frameMode: {
def: "connected"
},
barInsetPaddingShared: {
def: -1
},
barInsetPaddingSyncAll: {
def: false
},
frameBarInsetPadding: {
def: -1
}
};
var SPEC = Util.mergeSpec(Shared.SPEC, LOCAL_SPEC);
function getValidKeys() {
return Object.keys(SPEC).filter(function (k) {
return SPEC[k].persist !== false;
}).concat(["configVersion"]);
}
function set(root, key, value, saveFn, hooks) {
if (!(key in SPEC))
return;
if (value === undefined || value === null)
value = Util.cloneDef(SPEC[key].def);
var oldValue = root[key];
root[key] = value;
var hookName = SPEC[key].onChange;
if (hookName && hooks && hooks[hookName]) {
hooks[hookName](root, key, oldValue);
}
saveFn();
}