diff --git a/DankMaterialShell/.changelog-1.4 b/DankMaterialShell/.changelog-1.4
new file mode 100644
index 0000000..e69de29
diff --git a/DankMaterialShell/.firstlaunch b/DankMaterialShell/.firstlaunch
new file mode 100644
index 0000000..e69de29
diff --git a/DankMaterialShell/clsettings.json b/DankMaterialShell/clsettings.json
new file mode 100755
index 0000000..da26025
--- /dev/null
+++ b/DankMaterialShell/clsettings.json
@@ -0,0 +1,8 @@
+{
+ "maxHistory": 100,
+ "maxEntrySize": 20971520,
+ "autoClearDays": 0,
+ "clearAtStartup": false,
+ "disabled": false,
+ "maxPinned": 25
+}
\ No newline at end of file
diff --git a/DankMaterialShell/firefox.css b/DankMaterialShell/firefox.css
new file mode 100755
index 0000000..8004da6
--- /dev/null
+++ b/DankMaterialShell/firefox.css
@@ -0,0 +1,132 @@
+@media -moz-pref("userChrome.theme-material") {
+ :root {
+ --md-sys-color-primary: #33618d;
+ --md-sys-color-surface-tint: #33618d;
+ --md-sys-color-on-primary: #ffffff;
+ --md-sys-color-primary-container: #d0e4ff;
+ --md-sys-color-on-primary-container: #001d35;
+ --md-sys-color-secondary: #526070;
+ --md-sys-color-on-secondary: #ffffff;
+ --md-sys-color-secondary-container: #d6e4f7;
+ --md-sys-color-on-secondary-container: #0f1d2a;
+ --md-sys-color-tertiary: #6a5779;
+ --md-sys-color-on-tertiary: #ffffff;
+ --md-sys-color-tertiary-container: #f1dbff;
+ --md-sys-color-on-tertiary-container: #241532;
+ --md-sys-color-error: #ba1a1a;
+ --md-sys-color-on-error: #ffffff;
+ --md-sys-color-error-container: #ffdad6;
+ --md-sys-color-on-error-container: #410002;
+ --md-sys-color-background: #f8f9ff;
+ --md-sys-color-on-background: #191c20;
+ --md-sys-color-surface: #f8f9ff;
+ --md-sys-color-on-surface: #191c20;
+ --md-sys-color-surface-variant: #dfe3eb;
+ --md-sys-color-on-surface-variant: #42474e;
+ --md-sys-color-outline: #73777f;
+ --md-sys-color-outline-variant: #c2c7cf;
+ --md-sys-color-shadow: #000000;
+ --md-sys-color-scrim: #000000;
+ --md-sys-color-inverse-surface: #2d3135;
+ --md-sys-color-inverse-on-surface: #eff0f7;
+ --md-sys-color-inverse-primary: #9ecafc;
+ --md-sys-color-primary-fixed: #d0e4ff;
+ --md-sys-color-on-primary-fixed: #001d35;
+ --md-sys-color-primary-fixed-dim: #9ecafc;
+ --md-sys-color-on-primary-fixed-variant: #154974;
+ --md-sys-color-secondary-fixed: #d6e4f7;
+ --md-sys-color-on-secondary-fixed: #0f1d2a;
+ --md-sys-color-secondary-fixed-dim: #bac8db;
+ --md-sys-color-on-secondary-fixed-variant: #3b4857;
+ --md-sys-color-tertiary-fixed: #f1dbff;
+ --md-sys-color-on-tertiary-fixed: #241532;
+ --md-sys-color-tertiary-fixed-dim: #d5bee5;
+ --md-sys-color-on-tertiary-fixed-variant: #514060;
+ --md-sys-color-surface-dim: #d8dae0;
+ --md-sys-color-surface-bright: #f8f9ff;
+ --md-sys-color-surface-container-lowest: #ffffff;
+ --md-sys-color-surface-container-low: #f2f3f9;
+ --md-sys-color-surface-container: #f8f9ff;
+ --md-sys-color-surface-container-high: #f8f9ff;
+ --md-sys-color-surface-container-highest: #f8f9ff;
+
+ --m3-radius: 12px;
+ --m3-radius-sm: 10px;
+ --m3-elev-0: none;
+ --m3-elev-1: 0 1px 2px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.06);
+ --m3-elev-2: 0 2px 6px rgba(0,0,0,.10), 0 1px 3px rgba(0,0,0,.06);
+
+ --tab-height: 34px;
+ --urlbar-height: 38px;
+
+ --state-hover: color-mix(in srgb, var(--md-sys-color-on-surface) 8%, transparent);
+ --state-press: color-mix(in srgb, var(--md-sys-color-on-surface) 12%, transparent);
+
+ --focus-ring: 0 0 0 2px color-mix(in srgb, var(--md-sys-color-primary) 70%, transparent);
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --md-sys-color-primary: #9ecafc;
+ --md-sys-color-surface-tint: #9ecafc;
+ --md-sys-color-on-primary: #003256;
+ --md-sys-color-primary-container: #154974;
+ --md-sys-color-on-primary-container: #d0e4ff;
+ --md-sys-color-secondary: #bac8db;
+ --md-sys-color-on-secondary: #243140;
+ --md-sys-color-secondary-container: #3b4857;
+ --md-sys-color-on-secondary-container: #d6e4f7;
+ --md-sys-color-tertiary: #d5bee5;
+ --md-sys-color-on-tertiary: #3a2a48;
+ --md-sys-color-tertiary-container: #514060;
+ --md-sys-color-on-tertiary-container: #f1dbff;
+ --md-sys-color-error: #ffb4ab;
+ --md-sys-color-on-error: #690005;
+ --md-sys-color-error-container: #93000a;
+ --md-sys-color-on-error-container: #ffdad6;
+ --md-sys-color-background: #101418;
+ --md-sys-color-on-background: #e0e2e8;
+ --md-sys-color-surface: #101418;
+ --md-sys-color-on-surface: #e0e2e8;
+ --md-sys-color-surface-variant: #42474e;
+ --md-sys-color-on-surface-variant: #c2c7cf;
+ --md-sys-color-outline: #8c9199;
+ --md-sys-color-outline-variant: #42474e;
+ --md-sys-color-shadow: #000000;
+ --md-sys-color-scrim: #000000;
+ --md-sys-color-inverse-surface: #e0e2e8;
+ --md-sys-color-inverse-on-surface: #2d3135;
+ --md-sys-color-inverse-primary: #33618d;
+ --md-sys-color-primary-fixed: #d0e4ff;
+ --md-sys-color-on-primary-fixed: #001d35;
+ --md-sys-color-primary-fixed-dim: #9ecafc;
+ --md-sys-color-on-primary-fixed-variant: #154974;
+ --md-sys-color-secondary-fixed: #d6e4f7;
+ --md-sys-color-on-secondary-fixed: #0f1d2a;
+ --md-sys-color-secondary-fixed-dim: #bac8db;
+ --md-sys-color-on-secondary-fixed-variant: #3b4857;
+ --md-sys-color-tertiary-fixed: #f1dbff;
+ --md-sys-color-on-tertiary-fixed: #241532;
+ --md-sys-color-tertiary-fixed-dim: #d5bee5;
+ --md-sys-color-on-tertiary-fixed-variant: #514060;
+ --md-sys-color-surface-dim: #101418;
+ --md-sys-color-surface-bright: #36393e;
+ --md-sys-color-surface-container-lowest: #0b0e12;
+ --md-sys-color-surface-container-low: #191c20;
+ --md-sys-color-surface-container: #1d2024;
+ --md-sys-color-surface-container-high: #272a2f;
+ --md-sys-color-surface-container-highest: #32353a;
+
+ --m3-elev-1: 0 1px 2px rgba(0,0,0,.50), 0 1px 3px rgba(0,0,0,.35);
+ --m3-elev-2: 0 4px 10px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.35);
+
+ --state-hover: color-mix(in srgb, var(--md-sys-color-on-surface) 6%, transparent);
+ --state-press: color-mix(in srgb, var(--md-sys-color-on-surface) 10%, transparent);
+ }
+}
+
+/* idk if this even works, but the suggestion in the material updated readme bricks symbols no matter how many fallbacks I add */
+:root {
+ font-family: system-ui, "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !important;
+}
diff --git a/DankMaterialShell/plugin_settings.json b/DankMaterialShell/plugin_settings.json
new file mode 100755
index 0000000..4ac4932
--- /dev/null
+++ b/DankMaterialShell/plugin_settings.json
@@ -0,0 +1,50 @@
+{
+ "catWidget": {
+ "enabled": false
+ },
+ "dankObsidian": {
+ "enabled": true,
+ "isFlatpak": false,
+ "noTrigger": false,
+ "trigger": ""
+ },
+ "dankPinentry": {
+ "enabled": true
+ },
+ "imageConverter": {
+ "enabled": true
+ },
+ "sshConnections": {
+ "enabled": true,
+ "terminal": "ghostty"
+ },
+ "usbManager": {
+ "enabled": true
+ },
+ "dankActions": {
+ "enabled": true,
+ "variants": [
+ {
+ "icon": "none",
+ "displayText": "",
+ "displayCommand": "shuf -n 1 ~/.config/sdgos/tips/tips.list | cut -d '?' -f 2",
+ "clickCommand": "",
+ "middleClickCommand": "",
+ "rightClickCommand": "",
+ "updateInterval": 15,
+ "showIcon": false,
+ "showText": true,
+ "visibilityCommand": "",
+ "visibilityInterval": 0,
+ "id": "variant_1779445455419",
+ "name": "SDGOS-Tips"
+ }
+ ]
+ },
+ "dankKDEConnect": {
+ "enabled": true
+ },
+ "dankHooks": {
+ "enabled": true
+ }
+}
\ No newline at end of file
diff --git a/DankMaterialShell/plugins/.repos/0026f1eba8dedaec b/DankMaterialShell/plugins/.repos/0026f1eba8dedaec
new file mode 160000
index 0000000..547023b
--- /dev/null
+++ b/DankMaterialShell/plugins/.repos/0026f1eba8dedaec
@@ -0,0 +1 @@
+Subproject commit 547023b3ba65bcb195c93fd4b111d0f1eebe0432
diff --git a/DankMaterialShell/plugins/.repos/80c68c97031df69b b/DankMaterialShell/plugins/.repos/80c68c97031df69b
new file mode 160000
index 0000000..b45d16f
--- /dev/null
+++ b/DankMaterialShell/plugins/.repos/80c68c97031df69b
@@ -0,0 +1 @@
+Subproject commit b45d16f30f56c16371d93ecf54c3d0b4c23a24a5
diff --git a/DankMaterialShell/plugins/.repos/c9f8cf3b2b5ad95e b/DankMaterialShell/plugins/.repos/c9f8cf3b2b5ad95e
new file mode 160000
index 0000000..02df8bc
--- /dev/null
+++ b/DankMaterialShell/plugins/.repos/c9f8cf3b2b5ad95e
@@ -0,0 +1 @@
+Subproject commit 02df8bceb651bdbc5fdc7a07b5f6f19e60c3906a
diff --git a/DankMaterialShell/plugins/dankActions b/DankMaterialShell/plugins/dankActions
new file mode 120000
index 0000000..5a862b9
--- /dev/null
+++ b/DankMaterialShell/plugins/dankActions
@@ -0,0 +1 @@
+/home/den/.config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankActions
\ No newline at end of file
diff --git a/DankMaterialShell/plugins/dankActions.meta b/DankMaterialShell/plugins/dankActions.meta
new file mode 100644
index 0000000..e452a86
--- /dev/null
+++ b/DankMaterialShell/plugins/dankActions.meta
@@ -0,0 +1,3 @@
+repo=https://github.com/AvengeMedia/dms-plugins
+path=DankActions
+repodir=0026f1eba8dedaec
\ No newline at end of file
diff --git a/DankMaterialShell/plugins/dankPinentry b/DankMaterialShell/plugins/dankPinentry
new file mode 120000
index 0000000..3024c64
--- /dev/null
+++ b/DankMaterialShell/plugins/dankPinentry
@@ -0,0 +1 @@
+/home/den/.config/DankMaterialShell/plugins/.repos/c9f8cf3b2b5ad95e/plugin
\ No newline at end of file
diff --git a/DankMaterialShell/plugins/dankPinentry.meta b/DankMaterialShell/plugins/dankPinentry.meta
new file mode 100644
index 0000000..06c8b40
--- /dev/null
+++ b/DankMaterialShell/plugins/dankPinentry.meta
@@ -0,0 +1,3 @@
+repo=https://github.com/pacman99/DankPinentry
+path=plugin
+repodir=c9f8cf3b2b5ad95e
\ No newline at end of file
diff --git a/DankMaterialShell/plugins/sshConnections b/DankMaterialShell/plugins/sshConnections
new file mode 120000
index 0000000..b6b318c
--- /dev/null
+++ b/DankMaterialShell/plugins/sshConnections
@@ -0,0 +1 @@
+/home/den/.config/DankMaterialShell/plugins/.repos/80c68c97031df69b/sshConnections
\ No newline at end of file
diff --git a/DankMaterialShell/plugins/sshConnections.meta b/DankMaterialShell/plugins/sshConnections.meta
new file mode 100644
index 0000000..46f9833
--- /dev/null
+++ b/DankMaterialShell/plugins/sshConnections.meta
@@ -0,0 +1,3 @@
+repo=https://github.com/merdely/dms-plugins
+path=sshConnections
+repodir=80c68c97031df69b
\ No newline at end of file
diff --git a/DankMaterialShell/settings.json b/DankMaterialShell/settings.json
new file mode 100755
index 0000000..6074555
--- /dev/null
+++ b/DankMaterialShell/settings.json
@@ -0,0 +1,678 @@
+{
+ "currentThemeName": "dynamic",
+ "currentThemeCategory": "dynamic",
+ "customThemeFile": "",
+ "registryThemeVariants": {
+ "rosePine": "rosePine",
+ "catppuccin": {
+ "dark": {
+ "flavor": "frappe",
+ "accent": "sky"
+ }
+ }
+ },
+ "matugenScheme": "scheme-tonal-spot",
+ "runUserMatugenTemplates": true,
+ "matugenTargetMonitor": "",
+ "popupTransparency": 1,
+ "dockTransparency": 1,
+ "widgetBackgroundColor": "sch",
+ "widgetColorMode": "colorful",
+ "controlCenterTileColorMode": "primary",
+ "buttonColorMode": "primary",
+ "cornerRadius": 12,
+ "niriLayoutGapsOverride": -1,
+ "niriLayoutRadiusOverride": -1,
+ "niriLayoutBorderSize": -1,
+ "hyprlandLayoutGapsOverride": -1,
+ "hyprlandLayoutRadiusOverride": -1,
+ "hyprlandLayoutBorderSize": -1,
+ "mangoLayoutGapsOverride": -1,
+ "mangoLayoutRadiusOverride": -1,
+ "mangoLayoutBorderSize": -1,
+ "use24HourClock": true,
+ "showSeconds": false,
+ "padHours12Hour": false,
+ "useFahrenheit": false,
+ "windSpeedUnit": "kmh",
+ "nightModeEnabled": false,
+ "animationSpeed": 1,
+ "customAnimationDuration": 500,
+ "syncComponentAnimationSpeeds": true,
+ "popoutAnimationSpeed": 1,
+ "popoutCustomAnimationDuration": 150,
+ "modalAnimationSpeed": 1,
+ "modalCustomAnimationDuration": 150,
+ "enableRippleEffects": true,
+ "blurEnabled": false,
+ "blurForegroundLayers": true,
+ "blurLayerOutlineOpacity": 0.12,
+ "blurBorderColor": "outline",
+ "blurBorderCustomColor": "#ffffff",
+ "blurBorderOpacity": 0.35,
+ "wallpaperFillMode": "Fill",
+ "blurredWallpaperLayer": false,
+ "blurWallpaperOnOverview": false,
+ "showLauncherButton": true,
+ "showWorkspaceSwitcher": true,
+ "showFocusedWindow": true,
+ "showWeather": true,
+ "showMusic": true,
+ "showClipboard": true,
+ "showCpuUsage": true,
+ "showMemUsage": true,
+ "showCpuTemp": true,
+ "showGpuTemp": true,
+ "selectedGpuIndex": 0,
+ "enabledGpuPciIds": [],
+ "showSystemTray": true,
+ "systemTrayIconTintMode": "primary",
+ "systemTrayIconTintSaturation": 50,
+ "systemTrayIconTintStrength": 135,
+ "showClock": true,
+ "showNotificationButton": true,
+ "showBattery": true,
+ "showControlCenterButton": true,
+ "showCapsLockIndicator": true,
+ "controlCenterShowNetworkIcon": true,
+ "controlCenterShowBluetoothIcon": true,
+ "controlCenterShowAudioIcon": true,
+ "controlCenterShowAudioPercent": false,
+ "controlCenterShowVpnIcon": true,
+ "controlCenterShowBrightnessIcon": false,
+ "controlCenterShowBrightnessPercent": false,
+ "controlCenterShowMicIcon": false,
+ "controlCenterShowMicPercent": true,
+ "controlCenterShowBatteryIcon": false,
+ "controlCenterShowPrinterIcon": false,
+ "controlCenterShowScreenSharingIcon": true,
+ "showPrivacyButton": true,
+ "privacyShowMicIcon": false,
+ "privacyShowCameraIcon": false,
+ "privacyShowScreenShareIcon": false,
+ "controlCenterWidgets": [
+ {
+ "id": "volumeSlider",
+ "enabled": true,
+ "width": 50
+ },
+ {
+ "id": "brightnessSlider",
+ "enabled": true,
+ "width": 50
+ },
+ {
+ "id": "wifi",
+ "enabled": true,
+ "width": 50
+ },
+ {
+ "id": "bluetooth",
+ "enabled": true,
+ "width": 50
+ },
+ {
+ "id": "audioOutput",
+ "enabled": true,
+ "width": 50
+ },
+ {
+ "id": "audioInput",
+ "enabled": true,
+ "width": 50
+ },
+ {
+ "id": "nightMode",
+ "enabled": true,
+ "width": 50
+ },
+ {
+ "id": "darkMode",
+ "enabled": true,
+ "width": 50
+ }
+ ],
+ "showWorkspaceIndex": true,
+ "showWorkspaceName": false,
+ "showWorkspacePadding": false,
+ "workspaceScrolling": false,
+ "showWorkspaceApps": false,
+ "workspaceDragReorder": true,
+ "maxWorkspaceIcons": 3,
+ "workspaceAppIconSizeOffset": 0,
+ "groupWorkspaceApps": true,
+ "workspaceFollowFocus": false,
+ "showOccupiedWorkspacesOnly": false,
+ "reverseScrolling": false,
+ "dwlShowAllTags": true,
+ "workspaceColorMode": "default",
+ "workspaceOccupiedColorMode": "none",
+ "workspaceUnfocusedColorMode": "default",
+ "workspaceUrgentColorMode": "default",
+ "workspaceFocusedBorderEnabled": false,
+ "workspaceFocusedBorderColor": "primary",
+ "workspaceFocusedBorderThickness": 2,
+ "workspaceNameIcons": {},
+ "waveProgressEnabled": true,
+ "scrollTitleEnabled": true,
+ "audioVisualizerEnabled": true,
+ "audioScrollMode": "volume",
+ "audioWheelScrollAmount": 5,
+ "clockCompactMode": false,
+ "focusedWindowCompactMode": false,
+ "runningAppsCompactMode": true,
+ "barMaxVisibleApps": 0,
+ "barMaxVisibleRunningApps": 0,
+ "barShowOverflowBadge": true,
+ "appsDockHideIndicators": false,
+ "appsDockColorizeActive": true,
+ "appsDockActiveColorMode": "primary",
+ "appsDockEnlargeOnHover": true,
+ "appsDockEnlargePercentage": 125,
+ "appsDockIconSizePercentage": 100,
+ "keyboardLayoutNameCompactMode": false,
+ "runningAppsCurrentWorkspace": true,
+ "runningAppsGroupByApp": false,
+ "runningAppsCurrentMonitor": false,
+ "appIdSubstitutions": [],
+ "centeringMode": "index",
+ "clockDateFormat": "",
+ "lockDateFormat": "",
+ "greeterRememberLastSession": true,
+ "greeterRememberLastUser": true,
+ "greeterEnableFprint": false,
+ "greeterEnableU2f": false,
+ "greeterWallpaperPath": "",
+ "mediaSize": 1,
+ "appLauncherViewMode": "list",
+ "spotlightModalViewMode": "list",
+ "browserPickerViewMode": "grid",
+ "browserUsageHistory": {},
+ "appPickerViewMode": "grid",
+ "filePickerUsageHistory": {},
+ "sortAppsAlphabetically": false,
+ "appLauncherGridColumns": 8,
+ "spotlightCloseNiriOverview": true,
+ "spotlightSectionViewModes": {
+ "apps": "grid"
+ },
+ "appDrawerSectionViewModes": {},
+ "niriOverviewOverlayEnabled": true,
+ "dankLauncherV2Size": "large",
+ "dankLauncherV2BorderEnabled": false,
+ "dankLauncherV2BorderThickness": 2,
+ "dankLauncherV2BorderColor": "primary",
+ "dankLauncherV2ShowFooter": true,
+ "dankLauncherV2UnloadOnClose": false,
+ "useAutoLocation": false,
+ "weatherEnabled": true,
+ "networkPreference": "auto",
+ "iconTheme": "Sweet-Blue-Filled",
+ "cursorSettings": {
+ "theme": "System Default",
+ "size": 18,
+ "niri": {
+ "hideWhenTyping": false,
+ "hideAfterInactiveMs": 0
+ },
+ "hyprland": {
+ "hideOnKeyPress": false,
+ "hideOnTouch": false,
+ "inactiveTimeout": 0
+ },
+ "dwl": {
+ "cursorHideTimeout": 0
+ }
+ },
+ "launcherLogoMode": "os",
+ "launcherLogoCustomPath": "",
+ "launcherLogoColorOverride": "primary",
+ "launcherLogoColorInvertOnMode": false,
+ "launcherLogoBrightness": 0.5,
+ "launcherLogoContrast": 1,
+ "launcherLogoSizeOffset": 0,
+ "fontFamily": "CaskaydiaCove Nerd Font Mono",
+ "monoFontFamily": "CaskaydiaMono Nerd Font Mono",
+ "fontWeight": 400,
+ "fontScale": 1,
+ "notepadUseMonospace": true,
+ "notepadFontFamily": "",
+ "notepadFontSize": 14,
+ "notepadShowLineNumbers": false,
+ "notepadTransparencyOverride": -1,
+ "notepadLastCustomTransparency": 0.7,
+ "soundsEnabled": true,
+ "useSystemSoundTheme": false,
+ "soundNewNotification": true,
+ "soundVolumeChanged": true,
+ "soundPluggedIn": true,
+ "acMonitorTimeout": 0,
+ "acLockTimeout": 0,
+ "acSuspendTimeout": 0,
+ "acSuspendBehavior": 0,
+ "acProfileName": "",
+ "batteryMonitorTimeout": 0,
+ "batteryLockTimeout": 0,
+ "batterySuspendTimeout": 0,
+ "batterySuspendBehavior": 0,
+ "batteryProfileName": "",
+ "batteryChargeLimit": 100,
+ "lockBeforeSuspend": false,
+ "loginctlLockIntegration": true,
+ "fadeToLockEnabled": true,
+ "fadeToLockGracePeriod": 5,
+ "fadeToDpmsEnabled": true,
+ "fadeToDpmsGracePeriod": 5,
+ "launchPrefix": "",
+ "brightnessDevicePins": {},
+ "wifiNetworkPins": {},
+ "bluetoothDevicePins": {},
+ "audioInputDevicePins": {},
+ "audioOutputDevicePins": {},
+ "gtkThemingEnabled": false,
+ "qtThemingEnabled": false,
+ "syncModeWithPortal": true,
+ "terminalsAlwaysDark": false,
+ "muxType": "tmux",
+ "muxUseCustomCommand": false,
+ "muxCustomCommand": "",
+ "muxSessionFilter": "",
+ "runDmsMatugenTemplates": true,
+ "matugenTemplateGtk": true,
+ "matugenTemplateNiri": true,
+ "matugenTemplateHyprland": true,
+ "matugenTemplateMangowc": true,
+ "matugenTemplateQt5ct": true,
+ "matugenTemplateQt6ct": true,
+ "matugenTemplateFirefox": true,
+ "matugenTemplatePywalfox": true,
+ "matugenTemplateZenBrowser": true,
+ "matugenTemplateVesktop": true,
+ "matugenTemplateEquibop": true,
+ "matugenTemplateGhostty": true,
+ "matugenTemplateKitty": true,
+ "matugenTemplateFoot": true,
+ "matugenTemplateAlacritty": true,
+ "matugenTemplateNeovim": false,
+ "matugenTemplateWezterm": true,
+ "matugenTemplateDgop": true,
+ "matugenTemplateKcolorscheme": true,
+ "matugenTemplateVscode": true,
+ "matugenTemplateEmacs": true,
+ "matugenTemplateZed": true,
+ "showDock": false,
+ "dockAutoHide": false,
+ "dockSmartAutoHide": false,
+ "dockGroupByApp": true,
+ "dockOpenOnOverview": false,
+ "dockPosition": 1,
+ "dockSpacing": 4,
+ "dockBottomGap": 0,
+ "dockMargin": 0,
+ "dockIconSize": 31,
+ "dockIndicatorStyle": "circle",
+ "dockBorderEnabled": true,
+ "dockBorderColor": "primary",
+ "dockBorderOpacity": 1,
+ "dockBorderThickness": 2,
+ "dockIsolateDisplays": true,
+ "dockLauncherEnabled": true,
+ "dockLauncherLogoMode": "os",
+ "dockLauncherLogoCustomPath": "",
+ "dockLauncherLogoColorOverride": "primary",
+ "dockLauncherLogoSizeOffset": -5,
+ "dockLauncherLogoBrightness": 0.5,
+ "dockLauncherLogoContrast": 1,
+ "dockMaxVisibleApps": 0,
+ "dockMaxVisibleRunningApps": 0,
+ "dockShowOverflowBadge": true,
+ "notificationOverlayEnabled": false,
+ "notificationPopupShadowEnabled": true,
+ "notificationPopupPrivacyMode": false,
+ "modalDarkenBackground": true,
+ "lockScreenShowPowerActions": true,
+ "lockScreenShowSystemIcons": true,
+ "lockScreenShowTime": true,
+ "lockScreenShowDate": true,
+ "lockScreenShowProfileImage": true,
+ "lockScreenShowPasswordField": true,
+ "lockScreenShowMediaPlayer": true,
+ "lockScreenPowerOffMonitorsOnLock": false,
+ "lockAtStartup": false,
+ "enableFprint": false,
+ "maxFprintTries": 15,
+ "enableU2f": false,
+ "u2fMode": "or",
+ "lockScreenActiveMonitor": "all",
+ "lockScreenInactiveColor": "#000000",
+ "lockScreenNotificationMode": 0,
+ "hideBrightnessSlider": false,
+ "notificationTimeoutLow": 5000,
+ "notificationTimeoutNormal": 5000,
+ "notificationTimeoutCritical": 0,
+ "notificationCompactMode": false,
+ "notificationPopupPosition": 0,
+ "notificationAnimationSpeed": 1,
+ "notificationCustomAnimationDuration": 400,
+ "notificationHistoryEnabled": true,
+ "notificationHistoryMaxCount": 50,
+ "notificationHistoryMaxAgeDays": 7,
+ "notificationHistorySaveLow": true,
+ "notificationHistorySaveNormal": true,
+ "notificationHistorySaveCritical": true,
+ "notificationRules": [],
+ "osdAlwaysShowValue": false,
+ "osdPosition": 5,
+ "osdVolumeEnabled": true,
+ "osdMediaVolumeEnabled": true,
+ "osdMediaPlaybackEnabled": false,
+ "osdBrightnessEnabled": true,
+ "osdIdleInhibitorEnabled": true,
+ "osdMicMuteEnabled": true,
+ "osdCapsLockEnabled": true,
+ "osdPowerProfileEnabled": true,
+ "osdAudioOutputEnabled": true,
+ "powerActionConfirm": true,
+ "powerActionHoldDuration": 0.5,
+ "powerMenuActions": [
+ "reboot",
+ "logout",
+ "poweroff",
+ "lock",
+ "suspend",
+ "restart"
+ ],
+ "powerMenuDefaultAction": "logout",
+ "powerMenuGridLayout": false,
+ "customPowerActionLock": "",
+ "customPowerActionLogout": "",
+ "customPowerActionSuspend": "",
+ "customPowerActionHibernate": "",
+ "customPowerActionReboot": "",
+ "customPowerActionPowerOff": "",
+ "updaterHideWidget": false,
+ "updaterUseCustomCommand": false,
+ "updaterCustomCommand": "",
+ "updaterTerminalAdditionalParams": "",
+ "displayNameMode": "system",
+ "screenPreferences": {},
+ "showOnLastDisplay": {},
+ "niriOutputSettings": {},
+ "hyprlandOutputSettings": {},
+ "displayProfiles": {},
+ "activeDisplayProfile": {},
+ "displayProfileAutoSelect": false,
+ "displayShowDisconnected": false,
+ "displaySnapToEdge": true,
+ "barConfigs": [
+ {
+ "id": "default",
+ "name": "Main Bar",
+ "enabled": true,
+ "position": 0,
+ "screenPreferences": [
+ "all"
+ ],
+ "showOnLastDisplay": true,
+ "leftWidgets": [
+ {
+ "id": "launcherButton",
+ "enabled": true
+ },
+ {
+ "id": "workspaceSwitcher",
+ "enabled": true
+ },
+ {
+ "id": "layout",
+ "enabled": true
+ },
+ {
+ "id": "focusedWindow",
+ "enabled": true
+ }
+ ],
+ "centerWidgets": [
+ {
+ "id": "clock",
+ "enabled": true
+ },
+ {
+ "id": "weather",
+ "enabled": true
+ },
+ {
+ "id": "cpuTemp",
+ "enabled": true,
+ "minimumWidth": true
+ },
+ {
+ "id": "gpuTemp",
+ "enabled": true,
+ "selectedGpuIndex": 0,
+ "pciId": "10de:2544"
+ },
+ {
+ "id": "music",
+ "enabled": true
+ }
+ ],
+ "rightWidgets": [
+ {
+ "id": "systemTray",
+ "enabled": true
+ },
+ {
+ "id": "clipboard",
+ "enabled": true
+ },
+ {
+ "id": "vpn",
+ "enabled": true
+ },
+ {
+ "id": "cpuUsage",
+ "enabled": true
+ },
+ {
+ "id": "memUsage",
+ "enabled": true
+ },
+ {
+ "id": "diskUsage",
+ "enabled": true,
+ "mountPath": "/"
+ },
+ {
+ "id": "notificationButton",
+ "enabled": true
+ },
+ {
+ "id": "battery",
+ "enabled": true
+ },
+ {
+ "id": "controlCenterButton",
+ "enabled": true
+ }
+ ],
+ "spacing": 4,
+ "innerPadding": 4,
+ "bottomGap": 0,
+ "transparency": 1,
+ "widgetTransparency": 1,
+ "squareCorners": false,
+ "noBackground": false,
+ "maximizeWidgetIcons": false,
+ "maximizeWidgetText": false,
+ "removeWidgetPadding": false,
+ "widgetPadding": 8,
+ "gothCornersEnabled": false,
+ "gothCornerRadiusOverride": false,
+ "gothCornerRadiusValue": 12,
+ "borderEnabled": false,
+ "borderColor": "surfaceText",
+ "borderOpacity": 1,
+ "borderThickness": 1,
+ "widgetOutlineEnabled": false,
+ "widgetOutlineColor": "primary",
+ "widgetOutlineOpacity": 1,
+ "widgetOutlineThickness": 1,
+ "fontScale": 1,
+ "iconScale": 1,
+ "autoHide": false,
+ "autoHideDelay": 250,
+ "showOnWindowsOpen": false,
+ "openOnOverview": false,
+ "visible": true,
+ "popupGapsAuto": true,
+ "popupGapsManual": 4,
+ "maximizeDetection": true,
+ "scrollEnabled": true,
+ "scrollXBehavior": "column",
+ "scrollYBehavior": "workspace",
+ "shadowIntensity": 0,
+ "shadowOpacity": 60,
+ "shadowColorMode": "text",
+ "shadowCustomColor": "#000000",
+ "clickThrough": false
+ },
+ {
+ "id": "bar1779445652633",
+ "name": "Bar 2",
+ "enabled": false,
+ "position": 1,
+ "screenPreferences": [
+ "all"
+ ],
+ "showOnLastDisplay": false,
+ "leftWidgets": [],
+ "centerWidgets": [
+ {
+ "id": "dankActions:variant_1779445455419",
+ "enabled": true
+ }
+ ],
+ "rightWidgets": [],
+ "spacing": 4,
+ "innerPadding": 4,
+ "bottomGap": 0,
+ "transparency": 1,
+ "widgetTransparency": 1,
+ "squareCorners": false,
+ "noBackground": false,
+ "gothCornersEnabled": false,
+ "gothCornerRadiusOverride": false,
+ "gothCornerRadiusValue": 12,
+ "borderEnabled": false,
+ "borderColor": "primary",
+ "borderOpacity": 1,
+ "borderThickness": 1,
+ "widgetOutlineEnabled": false,
+ "widgetOutlineColor": "primary",
+ "widgetOutlineOpacity": 1,
+ "widgetOutlineThickness": 1,
+ "widgetPadding": 8,
+ "maximizeWidgetIcons": false,
+ "maximizeWidgetText": false,
+ "removeWidgetPadding": false,
+ "fontScale": 1,
+ "iconScale": 1,
+ "autoHide": false,
+ "autoHideDelay": 250,
+ "showOnWindowsOpen": false,
+ "openOnOverview": false,
+ "visible": true,
+ "popupGapsAuto": true,
+ "popupGapsManual": 4,
+ "maximizeDetection": true,
+ "scrollEnabled": true,
+ "scrollXBehavior": "column",
+ "scrollYBehavior": "none",
+ "shadowIntensity": 0,
+ "shadowOpacity": 60,
+ "shadowColorMode": "text",
+ "shadowCustomColor": "#000000"
+ }
+ ],
+ "desktopClockEnabled": false,
+ "desktopClockStyle": "analog",
+ "desktopClockTransparency": 0.8,
+ "desktopClockColorMode": "primary",
+ "desktopClockCustomColor": {
+ "r": 1,
+ "g": 1,
+ "b": 1,
+ "a": 1,
+ "hsvHue": -1,
+ "hsvSaturation": 0,
+ "hsvValue": 1,
+ "hslHue": -1,
+ "hslSaturation": 0,
+ "hslLightness": 1,
+ "valid": true
+ },
+ "desktopClockShowDate": true,
+ "desktopClockShowAnalogNumbers": false,
+ "desktopClockShowAnalogSeconds": true,
+ "desktopClockX": -1,
+ "desktopClockY": -1,
+ "desktopClockWidth": 280,
+ "desktopClockHeight": 180,
+ "desktopClockDisplayPreferences": [
+ "all"
+ ],
+ "systemMonitorEnabled": false,
+ "systemMonitorShowHeader": true,
+ "systemMonitorTransparency": 0.8,
+ "systemMonitorColorMode": "primary",
+ "systemMonitorCustomColor": {
+ "r": 1,
+ "g": 1,
+ "b": 1,
+ "a": 1,
+ "hsvHue": -1,
+ "hsvSaturation": 0,
+ "hsvValue": 1,
+ "hslHue": -1,
+ "hslSaturation": 0,
+ "hslLightness": 1,
+ "valid": true
+ },
+ "systemMonitorShowCpu": true,
+ "systemMonitorShowCpuGraph": true,
+ "systemMonitorShowCpuTemp": true,
+ "systemMonitorShowGpuTemp": false,
+ "systemMonitorGpuPciId": "",
+ "systemMonitorShowMemory": true,
+ "systemMonitorShowMemoryGraph": true,
+ "systemMonitorShowNetwork": true,
+ "systemMonitorShowNetworkGraph": true,
+ "systemMonitorShowDisk": true,
+ "systemMonitorShowTopProcesses": false,
+ "systemMonitorTopProcessCount": 3,
+ "systemMonitorTopProcessSortBy": "cpu",
+ "systemMonitorGraphInterval": 60,
+ "systemMonitorLayoutMode": "auto",
+ "systemMonitorX": -1,
+ "systemMonitorY": -1,
+ "systemMonitorWidth": 320,
+ "systemMonitorHeight": 480,
+ "systemMonitorDisplayPreferences": [
+ "all"
+ ],
+ "systemMonitorVariants": [],
+ "desktopWidgetPositions": {},
+ "desktopWidgetGridSettings": {},
+ "desktopWidgetInstances": [],
+ "desktopWidgetGroups": [],
+ "builtInPluginSettings": {
+ "dms_settings_search": {
+ "trigger": "?"
+ }
+ },
+ "clipboardEnterToPaste": false,
+ "launcherPluginVisibility": {},
+ "launcherPluginOrder": [],
+ "configVersion": 5
+}
\ No newline at end of file
diff --git a/DankMaterialShell/themes/catppuccin/preview-dark.svg b/DankMaterialShell/themes/catppuccin/preview-dark.svg
new file mode 100644
index 0000000..24054e3
--- /dev/null
+++ b/DankMaterialShell/themes/catppuccin/preview-dark.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/catppuccin/preview-light.svg b/DankMaterialShell/themes/catppuccin/preview-light.svg
new file mode 100644
index 0000000..4a57c3e
--- /dev/null
+++ b/DankMaterialShell/themes/catppuccin/preview-light.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/catppuccin/theme.json b/DankMaterialShell/themes/catppuccin/theme.json
new file mode 100644
index 0000000..101ad5f
--- /dev/null
+++ b/DankMaterialShell/themes/catppuccin/theme.json
@@ -0,0 +1,555 @@
+{
+ "id": "catppuccin",
+ "name": "Catppuccin",
+ "version": "1.0.0",
+ "author": "Avenge Media",
+ "description": "Soothing pastel theme for the high-spirited",
+ "dark": {},
+ "light": {},
+ "variants": {
+ "type": "multi",
+ "defaults": {
+ "dark": {
+ "accent": "mauve",
+ "flavor": "mocha"
+ },
+ "light": {
+ "accent": "mauve",
+ "flavor": "latte"
+ }
+ },
+ "flavors": [
+ {
+ "id": "mocha",
+ "name": "Mocha",
+ "dark": {
+ "surface": "#181825",
+ "surfaceText": "#cdd6f4",
+ "surfaceVariant": "#1e1e2e",
+ "surfaceVariantText": "#a6adc8",
+ "background": "#1e1e2e",
+ "backgroundText": "#cdd6f4",
+ "outline": "#6c7086",
+ "surfaceContainer": "#1e1e2e",
+ "surfaceContainerHigh": "#313244",
+ "surfaceContainerHighest": "#45475a",
+ "error": "#f38ba8",
+ "warning": "#fab387",
+ "info": "#89b4fa"
+ },
+ "light": {}
+ },
+ {
+ "id": "macchiato",
+ "name": "Macchiato",
+ "dark": {
+ "surface": "#1e2030",
+ "surfaceText": "#cad3f5",
+ "surfaceVariant": "#24273a",
+ "surfaceVariantText": "#a5adcb",
+ "background": "#24273a",
+ "backgroundText": "#cad3f5",
+ "outline": "#6e738d",
+ "surfaceContainer": "#24273a",
+ "surfaceContainerHigh": "#363a4f",
+ "surfaceContainerHighest": "#494d64",
+ "error": "#ed8796",
+ "warning": "#f5a97f",
+ "info": "#8aadf4"
+ },
+ "light": {}
+ },
+ {
+ "id": "frappe",
+ "name": "Frappé",
+ "dark": {
+ "surface": "#292c3c",
+ "surfaceText": "#c6d0f5",
+ "surfaceVariant": "#303446",
+ "surfaceVariantText": "#a5adce",
+ "background": "#303446",
+ "backgroundText": "#c6d0f5",
+ "outline": "#737994",
+ "surfaceContainer": "#303446",
+ "surfaceContainerHigh": "#414559",
+ "surfaceContainerHighest": "#51576d",
+ "error": "#e78284",
+ "warning": "#ef9f76",
+ "info": "#8caaee"
+ },
+ "light": {}
+ },
+ {
+ "id": "latte",
+ "name": "Latte",
+ "dark": {},
+ "light": {
+ "surface": "#e6e9ef",
+ "surfaceText": "#4c4f69",
+ "surfaceVariant": "#eff1f5",
+ "surfaceVariantText": "#6c6f85",
+ "background": "#eff1f5",
+ "backgroundText": "#4c4f69",
+ "outline": "#9ca0b0",
+ "surfaceContainer": "#e6e9ef",
+ "surfaceContainerHigh": "#ccd0da",
+ "surfaceContainerHighest": "#bcc0cc",
+ "error": "#d20f39",
+ "warning": "#fe640b",
+ "info": "#1e66f5"
+ }
+ }
+ ],
+ "accents": [
+ {
+ "frappe": {
+ "primary": "#f2d5cf",
+ "primaryText": "#303446",
+ "primaryContainer": "#76534f",
+ "secondary": "#eebebe",
+ "surfaceTint": "#3a2f33"
+ },
+ "id": "rosewater",
+ "latte": {
+ "primary": "#dc8a78",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#f6e7e3",
+ "secondary": "#dd7878",
+ "surfaceTint": "#f6e7e3"
+ },
+ "macchiato": {
+ "primary": "#f4dbd6",
+ "primaryText": "#24273a",
+ "primaryContainer": "#7a5853",
+ "secondary": "#f0c6c6",
+ "surfaceTint": "#3b3035"
+ },
+ "mocha": {
+ "primary": "#f5e0dc",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#7d5d56",
+ "secondary": "#f2cdcd",
+ "surfaceTint": "#3d3237"
+ },
+ "name": "Rosewater"
+ },
+ {
+ "frappe": {
+ "primary": "#eebebe",
+ "primaryText": "#303446",
+ "primaryContainer": "#744f52",
+ "secondary": "#f2d5cf",
+ "surfaceTint": "#392e31"
+ },
+ "id": "flamingo",
+ "latte": {
+ "primary": "#dd7878",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#f6e5e5",
+ "secondary": "#dc8a78",
+ "surfaceTint": "#f6e5e5"
+ },
+ "macchiato": {
+ "primary": "#f0c6c6",
+ "primaryText": "#24273a",
+ "primaryContainer": "#775256",
+ "secondary": "#f4dbd6",
+ "surfaceTint": "#3a3033"
+ },
+ "mocha": {
+ "primary": "#f2cdcd",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#7a555a",
+ "secondary": "#f5e0dc",
+ "surfaceTint": "#3c3134"
+ },
+ "name": "Flamingo"
+ },
+ {
+ "frappe": {
+ "primary": "#f4b8e4",
+ "primaryText": "#303446",
+ "primaryContainer": "#793d65",
+ "secondary": "#ca9ee6",
+ "surfaceTint": "#3c2e37"
+ },
+ "id": "pink",
+ "latte": {
+ "primary": "#ea76cb",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#f7d7ee",
+ "secondary": "#8839ef",
+ "surfaceTint": "#f7d7ee"
+ },
+ "macchiato": {
+ "primary": "#f5bde6",
+ "primaryText": "#24273a",
+ "primaryContainer": "#7a3e67",
+ "secondary": "#c6a0f6",
+ "surfaceTint": "#3d2f38"
+ },
+ "mocha": {
+ "primary": "#f5c2e7",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#7a3f69",
+ "secondary": "#cba6f7",
+ "surfaceTint": "#3d2f39"
+ },
+ "name": "Pink"
+ },
+ {
+ "frappe": {
+ "primary": "#ca9ee6",
+ "primaryText": "#303446",
+ "primaryContainer": "#542f79",
+ "secondary": "#babbf1",
+ "surfaceTint": "#33293c"
+ },
+ "id": "mauve",
+ "latte": {
+ "primary": "#8839ef",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#eadcff",
+ "secondary": "#7287fd",
+ "surfaceTint": "#eadcff"
+ },
+ "macchiato": {
+ "primary": "#c6a0f6",
+ "primaryText": "#24273a",
+ "primaryContainer": "#532f7d",
+ "secondary": "#b7bdf8",
+ "surfaceTint": "#32293e"
+ },
+ "mocha": {
+ "primary": "#cba6f7",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#55307f",
+ "secondary": "#b4befe",
+ "surfaceTint": "#33293f"
+ },
+ "name": "Mauve"
+ },
+ {
+ "frappe": {
+ "primary": "#e78284",
+ "primaryText": "#303446",
+ "primaryContainer": "#692233",
+ "secondary": "#ea999c",
+ "surfaceTint": "#38272e"
+ },
+ "id": "red",
+ "latte": {
+ "primary": "#d20f39",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#f6d0d6",
+ "secondary": "#e64553",
+ "surfaceTint": "#f6d0d6"
+ },
+ "macchiato": {
+ "primary": "#ed8796",
+ "primaryText": "#24273a",
+ "primaryContainer": "#6c2336",
+ "secondary": "#ee99a0",
+ "surfaceTint": "#3a2830"
+ },
+ "mocha": {
+ "primary": "#f38ba8",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#6f2438",
+ "secondary": "#eba0ac",
+ "surfaceTint": "#3c2930"
+ },
+ "name": "Red"
+ },
+ {
+ "frappe": {
+ "primary": "#ea999c",
+ "primaryText": "#303446",
+ "primaryContainer": "#69333d",
+ "secondary": "#e78284",
+ "surfaceTint": "#382a2f"
+ },
+ "id": "maroon",
+ "latte": {
+ "primary": "#e64553",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#f7d8dc",
+ "secondary": "#d20f39",
+ "surfaceTint": "#f7d8dc"
+ },
+ "macchiato": {
+ "primary": "#ee99a0",
+ "primaryText": "#24273a",
+ "primaryContainer": "#6b343f",
+ "secondary": "#ed8796",
+ "surfaceTint": "#392b30"
+ },
+ "mocha": {
+ "primary": "#eba0ac",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#6d3641",
+ "secondary": "#f38ba8",
+ "surfaceTint": "#3a2c31"
+ },
+ "name": "Maroon"
+ },
+ {
+ "frappe": {
+ "primary": "#ef9f76",
+ "primaryText": "#303446",
+ "primaryContainer": "#6d3e24",
+ "secondary": "#e5c890",
+ "surfaceTint": "#382e27"
+ },
+ "id": "peach",
+ "latte": {
+ "primary": "#fe640b",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#ffe4d5",
+ "secondary": "#df8e1d",
+ "surfaceTint": "#ffe4d5"
+ },
+ "macchiato": {
+ "primary": "#f5a97f",
+ "primaryText": "#24273a",
+ "primaryContainer": "#704025",
+ "secondary": "#eed49f",
+ "surfaceTint": "#3a2f28"
+ },
+ "mocha": {
+ "primary": "#fab387",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#734226",
+ "secondary": "#f9e2af",
+ "surfaceTint": "#3b3028"
+ },
+ "name": "Peach"
+ },
+ {
+ "frappe": {
+ "primary": "#e5c890",
+ "primaryText": "#303446",
+ "primaryContainer": "#68542c",
+ "secondary": "#a6d189",
+ "surfaceTint": "#383428"
+ },
+ "id": "yellow",
+ "latte": {
+ "primary": "#df8e1d",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#fff6d6",
+ "secondary": "#40a02b",
+ "surfaceTint": "#fff6d6"
+ },
+ "macchiato": {
+ "primary": "#eed49f",
+ "primaryText": "#24273a",
+ "primaryContainer": "#6b572e",
+ "secondary": "#a6da95",
+ "surfaceTint": "#393529"
+ },
+ "mocha": {
+ "primary": "#f9e2af",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#6e5a2f",
+ "secondary": "#a6e3a1",
+ "surfaceTint": "#3a362a"
+ },
+ "name": "Yellow"
+ },
+ {
+ "frappe": {
+ "primary": "#a6d189",
+ "primaryText": "#303446",
+ "primaryContainer": "#2d5932",
+ "secondary": "#81c8be",
+ "surfaceTint": "#2a362b"
+ },
+ "id": "green",
+ "latte": {
+ "primary": "#40a02b",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#dff4e0",
+ "secondary": "#179299",
+ "surfaceTint": "#dff4e0"
+ },
+ "macchiato": {
+ "primary": "#a6da95",
+ "primaryText": "#24273a",
+ "primaryContainer": "#2e5c34",
+ "secondary": "#8bd5ca",
+ "surfaceTint": "#2b372c"
+ },
+ "mocha": {
+ "primary": "#a6e3a1",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#2f5f36",
+ "secondary": "#94e2d5",
+ "surfaceTint": "#2b382c"
+ },
+ "name": "Green"
+ },
+ {
+ "frappe": {
+ "primary": "#81c8be",
+ "primaryText": "#303446",
+ "primaryContainer": "#2c5853",
+ "secondary": "#99d1db",
+ "surfaceTint": "#2a3634"
+ },
+ "id": "teal",
+ "latte": {
+ "primary": "#179299",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#daf3f1",
+ "secondary": "#04a5e5",
+ "surfaceTint": "#daf3f1"
+ },
+ "macchiato": {
+ "primary": "#8bd5ca",
+ "primaryText": "#24273a",
+ "primaryContainer": "#2d5b56",
+ "secondary": "#91d7e3",
+ "surfaceTint": "#2b3735"
+ },
+ "mocha": {
+ "primary": "#94e2d5",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#2e5e59",
+ "secondary": "#89dceb",
+ "surfaceTint": "#2b3836"
+ },
+ "name": "Teal"
+ },
+ {
+ "frappe": {
+ "primary": "#99d1db",
+ "primaryText": "#303446",
+ "primaryContainer": "#245464",
+ "secondary": "#85c1dc",
+ "surfaceTint": "#283438"
+ },
+ "id": "sky",
+ "latte": {
+ "primary": "#04a5e5",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#dbf1fb",
+ "secondary": "#209fb5",
+ "surfaceTint": "#dbf1fb"
+ },
+ "macchiato": {
+ "primary": "#91d7e3",
+ "primaryText": "#24273a",
+ "primaryContainer": "#245667",
+ "secondary": "#7dc4e4",
+ "surfaceTint": "#293539"
+ },
+ "mocha": {
+ "primary": "#89dceb",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#24586a",
+ "secondary": "#74c7ec",
+ "surfaceTint": "#29363a"
+ },
+ "name": "Sky"
+ },
+ {
+ "frappe": {
+ "primary": "#85c1dc",
+ "primaryText": "#303446",
+ "primaryContainer": "#1f4967",
+ "secondary": "#8caaee",
+ "surfaceTint": "#27323a"
+ },
+ "id": "sapphire",
+ "latte": {
+ "primary": "#209fb5",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#def3f8",
+ "secondary": "#1e66f5",
+ "surfaceTint": "#def3f8"
+ },
+ "macchiato": {
+ "primary": "#7dc4e4",
+ "primaryText": "#24273a",
+ "primaryContainer": "#1f4b6b",
+ "secondary": "#8aadf4",
+ "surfaceTint": "#27333b"
+ },
+ "mocha": {
+ "primary": "#74c7ec",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#1f4d6f",
+ "secondary": "#89b4fa",
+ "surfaceTint": "#27343c"
+ },
+ "name": "Sapphire"
+ },
+ {
+ "frappe": {
+ "primary": "#8caaee",
+ "primaryText": "#303446",
+ "primaryContainer": "#243d6f",
+ "secondary": "#babbf1",
+ "surfaceTint": "#282f3b"
+ },
+ "id": "blue",
+ "latte": {
+ "primary": "#1e66f5",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#e0e9ff",
+ "secondary": "#7287fd",
+ "surfaceTint": "#e0e9ff"
+ },
+ "macchiato": {
+ "primary": "#8aadf4",
+ "primaryText": "#24273a",
+ "primaryContainer": "#243e72",
+ "secondary": "#b7bdf8",
+ "surfaceTint": "#29303c"
+ },
+ "mocha": {
+ "primary": "#89b4fa",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#243f75",
+ "secondary": "#b4befe",
+ "surfaceTint": "#29313d"
+ },
+ "name": "Blue"
+ },
+ {
+ "frappe": {
+ "primary": "#babbf1",
+ "primaryText": "#303446",
+ "primaryContainer": "#3d427b",
+ "secondary": "#ca9ee6",
+ "surfaceTint": "#2e2f3e"
+ },
+ "id": "lavender",
+ "latte": {
+ "primary": "#7287fd",
+ "primaryText": "#eff1f5",
+ "primaryContainer": "#e5e8ff",
+ "secondary": "#8839ef",
+ "surfaceTint": "#e5e8ff"
+ },
+ "macchiato": {
+ "primary": "#b7bdf8",
+ "primaryText": "#24273a",
+ "primaryContainer": "#3e437e",
+ "secondary": "#c6a0f6",
+ "surfaceTint": "#2f303f"
+ },
+ "mocha": {
+ "primary": "#b4befe",
+ "primaryText": "#1e1e2e",
+ "primaryContainer": "#3f4481",
+ "secondary": "#cba6f7",
+ "surfaceTint": "#2f3140"
+ },
+ "name": "Lavender"
+ }
+ ]
+ },
+ "sourceDir": "catppuccin"
+}
\ No newline at end of file
diff --git a/DankMaterialShell/themes/dracula/preview-dark.svg b/DankMaterialShell/themes/dracula/preview-dark.svg
new file mode 100644
index 0000000..92681a3
--- /dev/null
+++ b/DankMaterialShell/themes/dracula/preview-dark.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/dracula/preview-light.svg b/DankMaterialShell/themes/dracula/preview-light.svg
new file mode 100644
index 0000000..f1a0780
--- /dev/null
+++ b/DankMaterialShell/themes/dracula/preview-light.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/dracula/theme.json b/DankMaterialShell/themes/dracula/theme.json
new file mode 100644
index 0000000..f0cc546
--- /dev/null
+++ b/DankMaterialShell/themes/dracula/theme.json
@@ -0,0 +1,48 @@
+{
+ "id": "dracula",
+ "name": "Dracula",
+ "version": "1.0.2",
+ "author": "Graplo",
+ "description": "Dracula dark theme with Alucard light variant",
+ "dark": {
+ "primary": "#bd93f9",
+ "primaryText": "#282a36",
+ "primaryContainer": "#7c5ac7",
+ "secondary": "#ff79c6",
+ "surface": "#21222c",
+ "surfaceText": "#f8f8f2",
+ "surfaceVariant": "#282a36",
+ "surfaceVariantText": "#f8f8f2",
+ "surfaceTint": "#3d2f43",
+ "background": "#282a36",
+ "backgroundText": "#f8f8f2",
+ "outline": "#6272a4",
+ "surfaceContainer": "#282a36",
+ "surfaceContainerHigh": "#313244",
+ "surfaceContainerHighest": "#44475a",
+ "error": "#ff5555",
+ "warning": "#f1fa8c",
+ "info": "#8be9fd"
+ },
+ "light": {
+ "primary": "#8332f4",
+ "primaryText": "#f8f8f2",
+ "primaryContainer": "#c9a4ff",
+ "secondary": "#ff79c6",
+ "surface": "#f8f8f2",
+ "surfaceText": "#282a36",
+ "surfaceVariant": "#e9e9f0",
+ "surfaceVariantText": "#44475a",
+ "surfaceTint": "#8332f4",
+ "background": "#f5f6fa",
+ "backgroundText": "#282a36",
+ "outline": "#c8c8d2",
+ "surfaceContainer": "#f2f2f7",
+ "surfaceContainerHigh": "#ececf2",
+ "surfaceContainerHighest": "#e6e6ee",
+ "error": "#ff5555",
+ "warning": "#f1fa8c",
+ "info": "#8be9fd"
+ },
+ "sourceDir": "dracula"
+}
\ No newline at end of file
diff --git a/DankMaterialShell/themes/nord/preview-dark.svg b/DankMaterialShell/themes/nord/preview-dark.svg
new file mode 100644
index 0000000..bab0a70
--- /dev/null
+++ b/DankMaterialShell/themes/nord/preview-dark.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/nord/preview-light.svg b/DankMaterialShell/themes/nord/preview-light.svg
new file mode 100644
index 0000000..57fedd1
--- /dev/null
+++ b/DankMaterialShell/themes/nord/preview-light.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/nord/theme.json b/DankMaterialShell/themes/nord/theme.json
new file mode 100644
index 0000000..d215a33
--- /dev/null
+++ b/DankMaterialShell/themes/nord/theme.json
@@ -0,0 +1,46 @@
+{
+ "id": "nord",
+ "name": "nord",
+ "version": "1.0.1",
+ "author": "wirus",
+ "description": "nord theme",
+ "dark": {
+ "primary": "#81a1c1",
+ "primaryText": "#2e3440",
+ "primaryContainer": "#88c0d0",
+ "secondary": "#b48ead",
+ "surface": "#3b4252",
+ "surfaceText": "#eceff4",
+ "surfaceVariant": "#434c5e",
+ "surfaceVariantText": "#eceff4",
+ "surfaceTint": "#81a1c1",
+ "background": "#2e3440",
+ "backgroundText": "#8fbcbb",
+ "outline": "#d8dee9",
+ "surfaceContainer": "#434c5e",
+ "surfaceContainerHigh": "#4c566a",
+ "error": "#bf616a",
+ "warning": "#d08770",
+ "info": "#88c0d0"
+ },
+ "light": {
+ "primary": "#3b6ea8",
+ "primaryText": "#e5e9f0",
+ "primaryContainer": "#398eac",
+ "secondary": "#97365b",
+ "surface": "#c2d0e7",
+ "surfaceText": "#2e3440",
+ "surfaceVariant": "#b8c5db",
+ "surfaceVariantText": "#3b4252",
+ "surfaceTint": "#3b6ea8",
+ "background": "#e5e9f0",
+ "backgroundText": "#29838d",
+ "outline": "#60728c",
+ "surfaceContainer": "#b8c5db",
+ "surfaceContainerHigh": "#aebacf",
+ "error": "#99324b",
+ "warning": "#ac4426",
+ "info": "#398eac"
+ },
+ "sourceDir": "nord"
+}
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/preview-dark.svg b/DankMaterialShell/themes/rosePine/preview-dark.svg
new file mode 100644
index 0000000..e92a3a6
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/preview-dark.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/preview-dawn-dark.svg b/DankMaterialShell/themes/rosePine/preview-dawn-dark.svg
new file mode 100644
index 0000000..3fd02f5
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/preview-dawn-dark.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/preview-dawn-light.svg b/DankMaterialShell/themes/rosePine/preview-dawn-light.svg
new file mode 100644
index 0000000..b6bc90c
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/preview-dawn-light.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/preview-dawn.svg b/DankMaterialShell/themes/rosePine/preview-dawn.svg
new file mode 100644
index 0000000..2241942
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/preview-dawn.svg
@@ -0,0 +1,45 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/preview-light.svg b/DankMaterialShell/themes/rosePine/preview-light.svg
new file mode 100644
index 0000000..7397a1c
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/preview-light.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/preview-moon-dark.svg b/DankMaterialShell/themes/rosePine/preview-moon-dark.svg
new file mode 100644
index 0000000..94ce68c
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/preview-moon-dark.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/preview-moon-light.svg b/DankMaterialShell/themes/rosePine/preview-moon-light.svg
new file mode 100644
index 0000000..ded06a2
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/preview-moon-light.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/preview-moon.svg b/DankMaterialShell/themes/rosePine/preview-moon.svg
new file mode 100644
index 0000000..66d5363
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/preview-moon.svg
@@ -0,0 +1,45 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/preview-rosePine-dark.svg b/DankMaterialShell/themes/rosePine/preview-rosePine-dark.svg
new file mode 100644
index 0000000..e92a3a6
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/preview-rosePine-dark.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/preview-rosePine-light.svg b/DankMaterialShell/themes/rosePine/preview-rosePine-light.svg
new file mode 100644
index 0000000..7397a1c
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/preview-rosePine-light.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/preview-rosePine.svg b/DankMaterialShell/themes/rosePine/preview-rosePine.svg
new file mode 100644
index 0000000..1b98844
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/preview-rosePine.svg
@@ -0,0 +1,45 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/rosePine/theme.json b/DankMaterialShell/themes/rosePine/theme.json
new file mode 100644
index 0000000..3e6faaa
--- /dev/null
+++ b/DankMaterialShell/themes/rosePine/theme.json
@@ -0,0 +1,109 @@
+{
+ "id": "rosePine",
+ "name": "Rosé Pine",
+ "version": "1.0.0",
+ "author": "ExistencialistaP",
+ "description": "All natural pine, faux fur and a bit of soho vibes for the classy minimalist",
+ "dark": {
+ "primary": "#c4a7e7",
+ "primaryContainer": "#26233a",
+ "secondary": "#f6c177",
+ "surfaceText": "#e0def4",
+ "surfaceVariantText": "#e0def4",
+ "backgroundText": "#e0def4",
+ "outline": "#908caa",
+ "error": "#eb6f92",
+ "warning": "#f6c177",
+ "info": "#9ccfd8"
+ },
+ "light": {
+ "primary": "#907aa9",
+ "primaryContainer": "#dfdad9",
+ "secondary": "#ea9d34",
+ "surfaceText": "#575279",
+ "surfaceVariantText": "#575279",
+ "backgroundText": "#575279",
+ "outline": "#797593",
+ "error": "#b4637a",
+ "warning": "#ea9d34",
+ "info": "#56949f"
+ },
+ "variants": {
+ "default": "rosePine",
+ "options": [
+ {
+ "id": "rosePine",
+ "name": "Rosé Pine",
+ "dark": {
+ "primaryText": "#191724",
+ "surface": "#1f1d2e",
+ "surfaceVariant": "#26233a",
+ "surfaceTint": "#c4a7e7",
+ "background": "#191724",
+ "surfaceContainer": "#1f1d2e",
+ "surfaceContainerHigh": "#26233a",
+ "surfaceContainerHighest": "#524f67"
+ },
+ "light": {
+ "primaryText": "#faf4ed",
+ "surface": "#fffaf3",
+ "surfaceVariant": "#f2e9de",
+ "surfaceTint": "#907aa9",
+ "background": "#faf4ed",
+ "surfaceContainer": "#fffaf3",
+ "surfaceContainerHigh": "#f2e9de",
+ "surfaceContainerHighest": "#cecacd"
+ }
+ },
+ {
+ "id": "moon",
+ "name": "Moon",
+ "dark": {
+ "primaryText": "#232136",
+ "surface": "#2a273f",
+ "surfaceVariant": "#393552",
+ "surfaceTint": "#c4a7e7",
+ "background": "#232136",
+ "surfaceContainer": "#2a273f",
+ "surfaceContainerHigh": "#393552",
+ "surfaceContainerHighest": "#56526e"
+ },
+ "light": {
+ "primaryText": "#faf4ed",
+ "surface": "#f2e9de",
+ "surfaceVariant": "#fffaf3",
+ "surfaceTint": "#907aa9",
+ "background": "#faf4ed",
+ "surfaceContainer": "#fffaf3",
+ "surfaceContainerHigh": "#f2e9de",
+ "surfaceContainerHighest": "#cecacd"
+ }
+ },
+ {
+ "id": "dawn",
+ "name": "Dawn",
+ "dark": {
+ "primaryText": "#191724",
+ "surface": "#26233a",
+ "surfaceVariant": "#1f1d2e",
+ "surfaceTint": "#907aa9",
+ "background": "#191724",
+ "surfaceContainer": "#26233a",
+ "surfaceContainerHigh": "#1f1d2e",
+ "surfaceContainerHighest": "#524f67"
+ },
+ "light": {
+ "primaryText": "#faf4ed",
+ "surface": "#fffaf3",
+ "surfaceVariant": "#f2e9de",
+ "surfaceTint": "#907aa9",
+ "background": "#faf4ed",
+ "surfaceContainer": "#fffaf3",
+ "surfaceContainerHigh": "#f2e9de",
+ "surfaceContainerHighest": "#dfdad9"
+ }
+ }
+ ]
+ },
+ "sourceDir": "rose-pine"
+}
\ No newline at end of file
diff --git a/DankMaterialShell/themes/steamDeck/preview-dark.svg b/DankMaterialShell/themes/steamDeck/preview-dark.svg
new file mode 100644
index 0000000..899e8e7
--- /dev/null
+++ b/DankMaterialShell/themes/steamDeck/preview-dark.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/steamDeck/preview-light.svg b/DankMaterialShell/themes/steamDeck/preview-light.svg
new file mode 100644
index 0000000..3a2036f
--- /dev/null
+++ b/DankMaterialShell/themes/steamDeck/preview-light.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/steamDeck/theme.json b/DankMaterialShell/themes/steamDeck/theme.json
new file mode 100644
index 0000000..3711c76
--- /dev/null
+++ b/DankMaterialShell/themes/steamDeck/theme.json
@@ -0,0 +1,46 @@
+{
+ "id": "steamDeck",
+ "name": "Steam Deck",
+ "version": "1.0.0",
+ "author": "yayuuu",
+ "description": "Steam Deck inspired theme",
+ "dark": {
+ "primary": "#1a9fff",
+ "primaryText": "#16161e",
+ "primaryContainer": "#23262e",
+ "secondary": "#777a7f",
+ "surface": "#0e131a",
+ "surfaceText": "#fefefe",
+ "surfaceVariant": "#55585d",
+ "surfaceVariantText": "#cbccd1",
+ "surfaceTint": "#0e131a",
+ "background": "#0e131a",
+ "backgroundText": "#d5d6db",
+ "outline": "#55585d",
+ "surfaceContainer": "#0e131a",
+ "surfaceContainerHigh": "#23262e",
+ "error": "#f44336",
+ "warning": "#ff9800",
+ "info": "#1a9fff"
+ },
+ "light": {
+ "primary": "#1a73e8",
+ "primaryText": "#d0d5e3",
+ "primaryContainer": "#b9bfca",
+ "secondary": "#23262e",
+ "surface": "#b9bfca",
+ "surfaceText": "#23262e",
+ "surfaceVariant": "#c4c8da",
+ "surfaceVariantText": "#1a1b26",
+ "surfaceTint": "#b9bfca",
+ "background": "#b9bfca",
+ "backgroundText": "#1a1b26",
+ "outline": "#4c505e",
+ "surfaceContainer": "#b9bfca",
+ "surfaceContainerHigh": "#9699a3",
+ "error": "#f44336",
+ "warning": "#ff9800",
+ "info": "#1a73e8"
+ },
+ "sourceDir": "steam-deck"
+}
\ No newline at end of file
diff --git a/DankMaterialShell/themes/tokyoNightNightMoon/preview-dark.svg b/DankMaterialShell/themes/tokyoNightNightMoon/preview-dark.svg
new file mode 100644
index 0000000..c99847a
--- /dev/null
+++ b/DankMaterialShell/themes/tokyoNightNightMoon/preview-dark.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/tokyoNightNightMoon/preview-light.svg b/DankMaterialShell/themes/tokyoNightNightMoon/preview-light.svg
new file mode 100644
index 0000000..125c064
--- /dev/null
+++ b/DankMaterialShell/themes/tokyoNightNightMoon/preview-light.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/DankMaterialShell/themes/tokyoNightNightMoon/theme.json b/DankMaterialShell/themes/tokyoNightNightMoon/theme.json
new file mode 100644
index 0000000..0ec887f
--- /dev/null
+++ b/DankMaterialShell/themes/tokyoNightNightMoon/theme.json
@@ -0,0 +1,46 @@
+{
+ "id": "tokyoNightNightMoon",
+ "name": "TokyoNight Night and Moon",
+ "version": "1.0.0",
+ "author": "Will Adams (adapted from Avenge Media)",
+ "description": "Popular Tokyo Night color scheme with vibrant blues and purples, Night and Moon variant",
+ "dark": {
+ "primary": "#7aa2f7",
+ "primaryText": "#1a1b26",
+ "primaryContainer": "#7dcfff",
+ "secondary": "#bb9af7",
+ "surface": "#1a1b26",
+ "surfaceText": "#c0caf5",
+ "surfaceVariant": "#24283b",
+ "surfaceVariantText": "#a9b1d6",
+ "surfaceTint": "#7aa2f7",
+ "background": "#16161e",
+ "backgroundText": "#c0caf5",
+ "outline": "#3b4261",
+ "surfaceContainer": "#1f2335",
+ "surfaceContainerHigh": "#292e42",
+ "error": "#f7768e",
+ "warning": "#ff9e64",
+ "info": "#7dcfff"
+ },
+ "light": {
+ "primary": "#82aaff",
+ "primaryText": "#1e2030",
+ "primaryContainer": "#86e1fc",
+ "secondary": "#c099ff",
+ "surface": "#222436",
+ "surfaceText": "#c8d3f5",
+ "surfaceVariant": "#2f334d",
+ "surfaceVariantText": "#828bb8",
+ "surfaceTint": "#82aaff",
+ "background": "#191B29",
+ "backgroundText": "#c8d3f5",
+ "outline": "#444a73",
+ "surfaceContainer": "#2f334d",
+ "surfaceContainerHigh": "#444a73",
+ "error": "#ff757f",
+ "warning": "#ff966c",
+ "info": "#86e1fc"
+ },
+ "sourceDir": "tokyonight-night-moon"
+}
\ No newline at end of file
diff --git a/ghostty/themes/dankcolors b/ghostty/themes/dankcolors
index 9556157..2e43346 100644
--- a/ghostty/themes/dankcolors
+++ b/ghostty/themes/dankcolors
@@ -1,22 +1,22 @@
-background = #0d141c
-foreground = #dde3ee
-cursor-color = #9bcaff
-selection-background = #00497a
-selection-foreground = #dde3ee
+background = #101418
+foreground = #e0e2e8
+cursor-color = #9ecafc
+selection-background = #154974
+selection-foreground = #e0e2e8
-palette = 0=#0d141c
+palette = 0=#101418
palette = 1=#ff729c
-palette = 2=#7fff90
+palette = 2=#7efc8f
palette = 3=#fff772
-palette = 4=#80b5f2
-palette = 5=#214976
-palette = 6=#9bcaff
+palette = 4=#84b6ef
+palette = 5=#244a74
+palette = 6=#9ecafc
palette = 7=#eff6ff
-palette = 8=#999fa5
+palette = 8=#979da3
palette = 9=#ff9fbb
palette = 10=#a5ffb1
palette = 11=#fffaa5
-palette = 12=#aad1ff
-palette = 13=#b9d9ff
-palette = 14=#d2e7ff
+palette = 12=#aed3ff
+palette = 13=#bcdbff
+palette = 14=#d4e8ff
palette = 15=#f8fbff
diff --git a/install.sh b/install.sh
index dd6b435..ced363e 100644
--- a/install.sh
+++ b/install.sh
@@ -2,7 +2,7 @@
echo "installing pre-requisites"
-sudo pacman -Syu ghostty firefox dms-shell yay git nautilus brightnessctl pipewire-pulse pipewire matugen adw-gtk-theme wl-copy hyprshot grim satty code-oss zoxide zsh zsh-theme-powerlevel10k eza kanshi
+sudo pacman -Syu ghostty firefox dms-shell yay git nautilus brightnessctl pipewire-pulse pipewire matugen adw-gtk-theme wl-copy hyprshot grim satty code-oss zoxide zsh zsh-theme-powerlevel10k eza kanshi ttf-nerd-fonts-symbols-common ttf-nerd-fonts-symbols-mono ttf-nerd-fonts-symbols ttf-cascadia-code-nerd ttf-cascadia-mono-nerd ttf-terminus-nerd ttf-firacode-nerd ttf-ubuntu-nerd
yay -S mangowm-git dsearch-bin
@@ -23,12 +23,10 @@ cp -r /home/$(whoami)/SDG-OS/ghostty /home/$(whoami)/.config
echo "projects" > ~/.config/projectdir.state
mkdir -p ~/projects
-echo "source /home/$(whoami)/.config/sdgos/zshconfig.zsh" >> ~/.zshrc
-
mv /home/$(whoami)/.zshrc /home/$(whoami)/.zshrc-old-$(date %b%D)
-ln -sf /home/$(Whoami)/.config/sdgos/zshrc /home/$(whoami)
+cp /home/$(Whoami)/.config/sdgos/zshrc /home/$(whoami)/.zshrc
mv /home/$(whoami)/.p10k.zsh /home/$(whoami)/.p10k.zsh-old-$(date %b%D)
-ln -sf /home/$(Whoami)/.config/sdgos/p10k.zsh /home/$(whoami)
+cp /home/$(Whoami)/.config/sdgos/p10k.zsh /home/$(whoami)/.p10k.zsh
chmod -R a+x ~/.config/sdgos
diff --git a/mango/autostart.conf b/mango/autostart.conf
index 2e9e07e..daf4e2b 100644
--- a/mango/autostart.conf
+++ b/mango/autostart.conf
@@ -3,7 +3,7 @@
## update tealdeer/tldr
exec-once=tldr --update
## start dsearch file indexer
-exec-once=dsearch serve --workers 1 --root ~
+exec-once=dsearch serve --workers 1 --root ~ --exclude-hidden
## start a polkit agent
exec-once=systemctl --user start hyprpolkitagent
## first-run UI
diff --git a/mango/binds.conf b/mango/binds.conf
index 0c34163..8f6e384 100644
--- a/mango/binds.conf
+++ b/mango/binds.conf
@@ -5,16 +5,23 @@ bind=SUPER+SHIFT,H,spawn_shell,ghostty -e ~/.config/sdgos/help/help.sh # show SD
bind=SUPER,K,spawn_shell,dms ipc call keybinds toggleWithPath mangowc ~/.config/mango/binds.conf # show keybinds
bind=SUPER,0,spawn_shell,notify-send "SDG-OS Tips" "$(shuf -n 1 ~/.config/sdgos/tips/tips.list | sed 's/.*: //')" # show tip
-
+## scratchpad
+bind=SUPER,C,toggle_scratchpad
+bind=SUPER+CTRL,C,minimized
+bind=SUPER+ALT,C,restore_minimized
+bind=SUPER+ALT,SPACE,toggle_named_scratchpad,com.mitchellh.ghostty,.*,ghostty
##! window management
bind=SUPER,T,togglefloating, # float/unfloat active window
bind=SUPER,F,togglefullscreen, # fullscreen active window
+bind=SUPER+ALT,F,togglefakefullscreen, # make program think window is fullscreen
bind=SUPER,Q,killclient, # Close active window
bind=SUPER+SHIFT,Q,quit, # Exit mango
bind=SUPER+SHIFT,P,toggleoverlay, # toggle overlay mode
bind=SUPER,P,spawn_shell,mmsg -d toggleglobal && mmsg -d togglefloating # pin window across workspaces
bind=ALT,TAB,toggleoverview
+bind=SUPER,A,spawn_shell,~/.config/sdgos/misc/layoutbutton.sh # special layout toggle
+bind=SUPER+SHIFT,A,switch_layout
##! OS functions
bind=SUPER,L,spawn_shell,dms ipc call lock lock # locks screen
@@ -30,6 +37,7 @@ bind=SUPER,Z,spawn_shell,dms ipc call powermenu toggle # toggle power menu
bind=SUPER,S,spawn_shell,dms ipc call settings toggle # toggle settings
###! SDG-OS custom scripts
bind=SUPER,M,spawn_shell,ghostty -e ~/.config/sdgos/mango-config.sh # show mango config editor
+bind=SUPER+ALT,M,spawn_shell,ghostty -e ~/.config/sdgos/config-overview/menu.sh # mango config explainer menu
bind=SUPER,Y,spawn_shell,ghostty -e ~/.config/sdgos/tuis/pkg-install.sh # install packages
bind=SUPER+SHIFT,Y,spawn_shell,ghostty -e ~/.config/sdgos/tuis/aur-install.sh # install AUR packages
bind=SUPER,W,spawn_shell,ghostty -e ~/.config/sdgos/tuis/layout-switch.sh # switch between layouts on the current workspace
@@ -73,7 +81,7 @@ bind=SUPER,down,focusdir,down
bind=SUPER+SHIFT,up,exchange_stack_client,prev
bind=SUPER+SHIFT,down,exchange_stack_client,next
bind=SUPER+SHIFT,left,focusstack,prev
-BIND=SUPER+SHIFT,right,focusstack,next
+bind=SUPER+SHIFT,right,focusstack,next
bind=SUPER+Ctrl,left,exchange_client,left
bind=SUPER+Ctrl,right,exchange_client,right
bind=SUPER+Ctrl,up,exchange_client,up
diff --git a/mango/decoration.conf b/mango/decoration.conf
index b6aa5c8..3691d4e 100644
--- a/mango/decoration.conf
+++ b/mango/decoration.conf
@@ -7,15 +7,15 @@ animation_type_close=zoom
animation_fade_in=1
animation_fade_out=1
tag_animation_direction=1
-zoom_initial_ratio=0.4
-zoom_end_ratio=0.8
+zoom_initial_ratio=0.2
+zoom_end_ratio=0.9
fadein_begin_opacity=0.5
fadeout_begin_opacity=0.8
-animation_duration_move=500
-animation_duration_open=400
+animation_duration_move=400
+animation_duration_open=500
animation_duration_tag=350
-animation_duration_close=800
-animation_duration_focus=0
+animation_duration_close=300
+animation_duration_focus=600
animation_curve_open=0.46,1.0,0.29,1
animation_curve_move=0.46,1.0,0.29,1
animation_curve_tag=0.46,1.0,0.29,1
@@ -47,7 +47,7 @@ shadowscolor= 0x1a1a1a99
# window opacity
focused_opacity=0.9
-unfocused_opacity=0.85
+unfocused_opacity=0.7
# borders
border_radius=10
diff --git a/mango/dms/colors.conf b/mango/dms/colors.conf
index 8d8d367..8324447 100644
--- a/mango/dms/colors.conf
+++ b/mango/dms/colors.conf
@@ -1,6 +1,6 @@
# ! Auto-generated file. Do not edit directly.
# Remove source = ./dms/colors.conf from your config to override.
-bordercolor = 0x8b919bff
-focuscolor = 0x9bcaffff
+bordercolor = 0x8c9199ff
+focuscolor = 0x9ecafcff
urgentcolor = 0xffb4abff
diff --git a/mango/dms/cursor.conf b/mango/dms/cursor.conf
index 0ab34c0..78a2523 100644
--- a/mango/dms/cursor.conf
+++ b/mango/dms/cursor.conf
@@ -1,3 +1,2 @@
# Auto-generated by DMS - do not edit manually
cursor_size=18
-cursor_theme=default
diff --git a/mango/layouts.conf b/mango/layouts.conf
index f8753ce..61b8fdc 100644
--- a/mango/layouts.conf
+++ b/mango/layouts.conf
@@ -1,3 +1,6 @@
+
+circle_layout=dwindle,scroller,vertical_scroller,center_tile,tile
+
# Scroller Layout Setting
scroller_structs=20
scroller_default_proportion=0.8
@@ -5,13 +8,15 @@ scroller_focus_center=0
scroller_prefer_center=0
edge_scroller_pointer_focus=1
scroller_default_proportion_single=1.0
-scroller_proportion_preset=0.5,0.8,1.0
+scroller_proportion_preset=0.15,0.3,0.5,0.8,1.0
# Master-Stack Layout Setting
new_is_master=1
-default_mfact=0.55
+default_mfact=0.75
default_nmaster=1
smartgaps=0
+center_when_single_stack=0
+center_master_overspread=1
# Overview Setting
hotarea_size=15
diff --git a/sdgos/config-overview/browser.sh b/sdgos/config-overview/browser.sh
new file mode 100755
index 0000000..f849521
--- /dev/null
+++ b/sdgos/config-overview/browser.sh
@@ -0,0 +1,12 @@
+STRING="$1"
+
+KEY=$(echo "$STRING" | cut -d '=' -f1 )
+
+if [ "$KEY" == "bind" ]; then
+ KEY=$(echo "$STRING" | cut -d ',' -f 1,2,3 | sed 's/bindl/bind/' | sed 's/binds/bind/' | sed 's/bindr/bind/' | sed 's/binds/bind/' | sed 's/bindp/bind/' | sed 's|=.*,.*,|=MOD,KEY,|g' | sed 's/ //g' )
+fi
+
+
+LINK=$(cat ~/.config/sdgos/config-overview/options.list | grep " $KEY " | cut -d '|' -f4)
+
+firefox --new-tab $LINK
\ No newline at end of file
diff --git a/sdgos/config-overview/checker.sh b/sdgos/config-overview/checker.sh
new file mode 100755
index 0000000..9b4ab49
--- /dev/null
+++ b/sdgos/config-overview/checker.sh
@@ -0,0 +1,261 @@
+#!/bin/bash
+
+STRING="$1"
+
+KEY=$(echo "$STRING" | cut -d '=' -f1 )
+
+if [ "$KEY" == "bind" ]; then
+ KEY=$(echo "$STRING" | cut -d ',' -f 1,2,3 | sed 's/bindl/bind/' | sed 's/binds/bind/' | sed 's/bindr/bind/' | sed 's/binds/bind/' | sed 's/bindp/bind/' | sed 's|=.*,.*,|=MOD,KEY,|g' | sed 's/ //g' )
+fi
+
+EXAMPLE=$(cat ~/.config/sdgos/config-overview/options.list | grep " $KEY " | head -1 | cut -d '|' -f2)
+EXPLAINER=$(cat ~/.config/sdgos/config-overview/options.list | grep " $KEY " | head -1 | cut -d '|' -f3)
+LINK=$(cat ~/.config/sdgos/config-overview/options.list | grep " $KEY " | head -1 | cut -d '|' -f4)
+EXTRA=$(cat ~/.config/sdgos/config-overview/options.list | grep " $KEY " | head -1 | cut -d '|' -f5 | sed 's/ //g')
+echo "## Mango Config Key Explainer"
+echo ""
+if [ "$STRING" == "" ];then
+ echo "nothing selected"
+else
+echo "key: $KEY"
+echo ""
+echo "example:$EXAMPLE"
+echo "description:$EXPLAINER"
+echo "link to documentation:$LINK"
+echo ""
+echo "Extra Information:"
+case $EXTRA in
+ bind)
+ echo "for binds, you can add the following to modify the type of bind:"
+ echo "bindl: allows use while on the lock screen"
+ echo "binds: binds using keysym"
+ echo "bindr: binds on key release"
+ echo "bindp: this makes the bind transparent, meaning that it won't prevent your bind from also triggering a bind in your programs"
+ ;;
+ monitor)
+ echo "for monitor rules, you have two types of parameters: selectors and modifiers"
+ echo ""
+ echo "selectors:"
+ echo "name: - selects all monitors of this name"
+ echo "make: - selects all monitors of this manufacturer"
+ echo "make: - selects all monitors of this model (as reported by EDID) "
+ echo "serial: - selects the monitors matching this serial number (as reported by EDID)"
+ echo ""
+ echo "you can use multiple selectors, this will require monitors to match *all* selectors"
+ echo ""
+ echo "modifiers:"
+ echo "width: - sets the width in pixels for that monitor, ensure this resolution is supported"
+ echo "height: - sets the height in pixels for that monitor, ensure this resolution is supported"
+ echo "refresh: - sets the refresh rate for the monitor, ensure it is supported for your set resolution"
+ echo "x: - offsets the monitor compared to other monitors by this amount of pixels horizontally, useful for multi-monitor layouts"
+ echo "y: - offsets the monitor compared to other monitors by this amount of pixels vertically, useful for multi-monitor layouts"
+ echo "scale: - sets the display scaling"
+ echo "vrr:<1/0> - turns variable refresh rate on/off for this monitor"
+ echo "rr:<0-7> - rotates and flips the display. 0 = upright, 1=90deg, 2=180deg, 3=270deg, 4=0deg,flip, 5=90deg, flip, 6=180deg, flip, 7=270, flip"
+ echo "custom:<1/0> - enables custom mode for this display"
+ echo ""
+ echo "you can use multiple modifiers"
+ echo ""
+ echo "generally, the recommended setup is to filter down and configure each monitor separately with *one* rule per monitor"
+ ;;
+ dwindle)
+ echo "dwindle is a \"binary tree\" based layout"
+ echo "this means that when you spawn a new window, it will split the focused window in half in the longer direction"
+ echo "so from 1 window to 2, it'll always result in 2 windows side-by-side"
+ echo "then, if you split the left window again, it'll split vertically since it is taller than it is wide"
+
+ ;;
+ master)
+ echo "both master and tiled layouts are \"primary/secondaries\" layouts"
+ echo "one window (location depending on the layout) is the \"master window\""
+ echo "the other windows will be tiled up outside of the master window area"
+ echo "this means the mater window area size will not change"
+ echo "you can exchange windows either by super+dragging any window to the master area"
+ echo "or using keybinds to exchange windows, there is also a specific keybind dispatcher for setting the focused area as master"
+ ;;
+ scroller)
+ echo "scroller layouts are an infinite strip of windows either vertically or horizontally"
+ echo "you can scroll through these windows using SUPER+arrows or by moving the mouse"
+ echo "within one \"section\", you can stack tiles in the other direction, horizontal scroll = vertical stacking"
+ echo "scroller will allow non-focused windows to peek into your window, which allows you to easily navigate with the mouse"
+
+ ;;
+ tearing)
+ echo "tearing needs to be set globally, and can then be enabled for specific apps using window rules"
+ echo "window rule example: windowrule=force_tearing:1,title:vkcube"
+ echo "this will completely turn off system VSYNC for the application"
+ ;;
+ env)
+ echo "these set environment variables that are not just available to mango, but any application that runs under mango will also have these variables"
+ echo "this recursively continues, so since mango spawns DankMaterial Shell, all applications spawned using DankMaterial Shell will *also* have these variables"
+ ;;
+ animations)
+ echo "Animations in mangoWM provide smooth transitions for windows, layers, and layout changes."
+ echo "They are particularly useful for improving visual feedback during window management."
+ echo ""
+ echo "To customize animations, you can adjust the following aspects:"
+ echo " - **Animation types**: Choose between sliding, zooming, fading, or disabling animations entirely."
+ echo " - **Durations**: Control how long animations take (e.g., faster for snappy feedback, slower for smoother transitions)."
+ echo " - **Bezier curves**: Define the 'feel' of animations (e.g., linear, bouncy, or easing effects)."
+ echo ""
+ echo "For a cohesive experience, ensure that animation durations and curves are balanced."
+ echo "For example, a fast zoom animation with a bouncy curve might feel jarring, while a smooth fade with a linear curve feels natural."
+ echo ""
+ echo "If animations feel laggy, try reducing their duration or disabling them for specific actions (e.g., focus changes)."
+ echo ""
+ echo "You can test and refine animations in real-time by reloading mangoWM after making changes."
+ ;;
+ bezier)
+ echo "Bezier curves define the acceleration and deceleration of animations, giving them a distinct 'feel.'"
+ echo "They are represented by four values: x1, y1, x2, y2, which plot a curve on a graph from (0,0) to (1,1)."
+ echo ""
+ echo "Here’s how to interpret and create bezier curves:"
+ echo " - **x1, y1**: The first control point. A higher y1 value creates a sharp initial acceleration."
+ echo " - **x2, y2**: The second control point. A lower y2 value creates a sharp deceleration at the end."
+ echo ""
+ echo "Common curve types:"
+ echo " - **Linear (0.0,0.0,1.0,1.0)**: Constant speed, no easing."
+ echo " - **Ease-in (e.g., 0.42,0.0,1.0,1.0)**: Starts slow, accelerates quickly."
+ echo " - **Ease-out (e.g., 0.0,0.0,0.58,1.0)**: Starts fast, decelerates smoothly."
+ echo " - **Ease-in-out (e.g., 0.42,0.0,0.58,1.0)**: Smooth acceleration and deceleration."
+ echo " - **Bouncy (e.g., 0.28,0.84,0.42,1.0)**: Creates a spring-like effect."
+ echo ""
+ echo "To create custom curves, use tools like:"
+ echo " - cssportal.com/bezier-curve-generator"
+ echo " - easings.net"
+ echo ""
+ echo "Copy the generated values (e.g., 0.46,1.0,0.29,0.99) and apply them to your animation settings."
+ echo "Experiment with different curves to achieve the desired 'feel' for your setup."
+ ;;
+ windowrules)
+ echo "Window rules customize behavior for specific windows based on filters."
+ echo ""
+ echo "Filters:"
+ echo "appid: - Match by application ID."
+ echo "title: - Match by window title."
+ echo ""
+ echo "State & Behavior Modifiers:"
+ echo "isfloating: 0/1 - Force floating state."
+ echo "isfullscreen: 0/1 - Force fullscreen state."
+ echo "isfakefullscreen: 0/1 - Force fake fullscreen (constrained)."
+ echo "isglobal: 0/1 - Open as sticky across tags."
+ echo "isoverlay: 0/1 - Always on top layer."
+ echo "isopensilent: 0/1 - Open without focus."
+ echo "istagsilent: 0/1 - Don't focus if not on current tag."
+ echo "force_fakemaximize: 0/1 - Force fake maximize."
+ echo "ignore_maximize: 0/1 - Ignore maximize requests."
+ echo "ignore_minimize: 0/1 - Ignore minimize requests."
+ echo "force_tiled_state: 0/1 - Force tiled state."
+ echo "noopenmaximized: 0/1 - Prevent opening maximized."
+ echo "single_scratchpad: 0/1 - Show one scratchpad at a time."
+ echo "allow_shortcuts_inhibit: 0/1 - Allow shortcut inhibition."
+ echo "idleinhibit_when_focus: 0/1 - Inhibit idle when focused."
+ echo ""
+ echo "Geometry & Position Modifiers:"
+ echo "width: 0-9999 - Window width (pixels or % if <1)."
+ echo "height: 0-9999 - Window height (pixels or % if <1)."
+ echo "offsetx: -999-999 - X offset from center (% of screen)."
+ echo "offsety: -999-999 - Y offset from center (% of screen)."
+ echo "monitor: - Assign to specific monitor."
+ echo "tags: 1-9 - Assign to specific tag."
+ echo "no_force_center: 0/1 - Disable forced centering."
+ echo "isnosizehint: 0/1 - Ignore size hints."
+ echo ""
+ echo "Visuals & Decoration Modifiers:"
+ echo "noblur: 0/1 - Disable blur effect."
+ echo "isnoborder: 0/1 - Remove window border."
+ echo "isnoshadow: 0/1 - Disable shadow."
+ echo "isnoradius: 0/1 - Disable corner radius."
+ echo "isnoanimation: 0/1 - Disable animations."
+ echo "focused_opacity: 0-1 - Focused window opacity."
+ echo "unfocused_opacity: 0-1 - Unfocused window opacity."
+ echo "allow_csd: 0/1 - Allow client-side decorations."
+ echo ""
+ echo "Layout & Scroller Modifiers:"
+ echo "scroller_proportion: 0.1-1.0 - Scroller proportion."
+ echo "scroller_proportion_single: 0.1-1.0 - Single-window scroller proportion."
+ echo ""
+ echo "Animation Modifiers:"
+ echo "animation_type_open: zoom/slide/fade/none - Open animation."
+ echo "animation_type_close: zoom/slide/fade/none - Close animation."
+ echo "nofadein: 0/1 - Disable fade-in."
+ echo "nofadeout: 0/1 - Disable fade-out."
+ echo ""
+ echo "Terminal & Swallowing Modifiers:"
+ echo "isterm: 0/1 - Replace terminal window."
+ echo "noswallow: 0/1 - Prevent window swallowing."
+ echo ""
+ echo "Global & Special Windows Modifiers:"
+ echo "globalkeybinding: - Global keybinding."
+ echo "isunglobal: 0/1 - Open as unmanaged global window."
+ echo "isnamedscratchpad: 0/1 - Named scratchpad."
+ echo ""
+ echo "Performance & Tearing Modifiers:"
+ echo "force_tearing: 0/1 - Enable tearing."
+ ;;
+ tagrules)
+ echo "Tag rules customize behavior for specific tags."
+ echo ""
+ echo "Filters:"
+ echo "id: 0-9 - Match by tag ID (0 for ~0 tag)."
+ echo "monitor_name: - Match by monitor name."
+ echo "monitor_make: - Match by monitor manufacturer."
+ echo "monitor_model: - Match by monitor model."
+ echo "monitor_serial: - Match by monitor serial."
+ echo ""
+ echo "Modifiers:"
+ echo "layout_name: - Set layout (e.g., 'scroller')."
+ echo "no_render_border: 0/1 - Disable border rendering."
+ echo "open_as_floating: 0/1 - Open windows as floating."
+ echo "no_hide: 0/1 - Keep tag visible even if empty."
+ echo "nmaster: 0-99 - Number of master windows."
+ echo "mfact: 0.1-0.9 - Master area factor."
+ ;;
+ layerrules)
+ echo "Layer rules customize behavior for layer shell surfaces."
+ echo ""
+ echo "Filters:"
+ echo "layer_name: - Match by layer name (supports regex)."
+ echo ""
+ echo "Modifiers:"
+ echo "animation_type_open: slide/zoom/fade/none - Open animation."
+ echo "animation_type_close: slide/zoom/fade/none - Close animation."
+ echo "noblur: 0/1 - Disable blur."
+ echo "noanim: 0/1 - Disable animations."
+ echo "noshadow: 0/1 - Disable shadow."
+ ;;
+ scratchpad)
+ echo "the scratchpad is a hidden storage space you can minimize applications to"
+ echo "these scratchpads are monitor-bound, but work across tags, windows inside the scratchpad are effectively untagged."
+ echo "there are seperate binds for moving the current focused window to the scratchpad, toggling the scratchpad and moving windows back out"
+ echo "the scratchpad will only show one window at a time, you can toggle through them using the same bind"
+ echo "you can also make and bind named scratchpads that use a specific program. these can only contain that program with that title."
+ echo "a named scratchpad also spawns the window if no window exists. though you'll have to use the bind a second time to put that window in the scratchpad"
+ ;;
+ overview)
+ echo "Overview mode displays all windows on the current monitor in a grid layout."
+ echo ""
+ echo "You can interact with windows using the mouse:"
+ echo "Left-click to focus a window."
+ echo "Right-click to close a window."
+ echo ""
+ echo "Overview can be triggered by moving the mouse to a hot corner."
+ echo "The hot corner is configurable and can be disabled if needed."
+ echo ""
+ echo "Overview temporarily shows all windows from all tags on the current monitor."
+ echo "This allows you to quickly switch to any window, regardless of its tag."
+ ;;
+ autostart)
+ echo "exec-once and exec are used to launch programs automatically when mangoWM starts."
+ echo ""
+ echo "Applications run in the order they appear in the config."
+ echo ""
+ echo "For delayed starts, use a script with 'sleep' or put 'sleep 15 &&' in front of the command in your exec-once= or exec= setting."
+ echo ""
+ echo "Common uses are things like status bars, daemons, or applications you want to start in the background like steam or discord"
+ ;;
+ *)
+ echo "no extra info for this item."
+ ;;
+esac
+fi
\ No newline at end of file
diff --git a/sdgos/config-overview/menu.sh b/sdgos/config-overview/menu.sh
new file mode 100755
index 0000000..32c4cec
--- /dev/null
+++ b/sdgos/config-overview/menu.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+CONFDIR="/home/$(whoami)/.config/mango"
+echo "confdir is $CONFDIR"
+
+app=micro
+
+while $true; do
+ selected=$(ls -1 $CONFDIR | fzf --layout=reverse --preview="bat $CONFDIR/{}")
+
+ echo "selected is $selected"
+
+ STRING=$(cat $CONFDIR/$selected | fzf --layout 'reverse' --preview-window 'down:50%,wrap-word' --preview-label='alt+b - open documentation in browser' --preview-label-pos='top' --bind 'alt-b:execute(~/.config/sdgos/config-overview/browser.sh {})' --preview='~/.config/sdgos/config-overview/checker.sh {}')
+
+done
\ No newline at end of file
diff --git a/sdgos/config-overview/options.list b/sdgos/config-overview/options.list
new file mode 100644
index 0000000..c2d5ae1
--- /dev/null
+++ b/sdgos/config-overview/options.list
@@ -0,0 +1,232 @@
+
+ source | source=~/.config/mango/binds.conf | includes other config files in the mango config | https://mangowm.github.io/docs/configuration/basics
+ env | env=ENVIRONMENT_NAME,value | Sets an environment variable to a specific value | https://mangowm.github.io/docs/configuration/basics | env
+ exec-once | exec-once=steam +open steam://my/steam/link | runs the provided command once on mangoWM initial start | https://mangowm.github.io/docs/configuration/basics | autostart
+ exec | exec=bash ~/.config/sdgos/script.sh | runs the provided command every config reload | https://mangowm.github.io/docs/configuration/basics | autostart
+ allow_tearing | allow_tearing=1 | allows programs to bypass mangoWM vsync | https://mangowm.github.io/docs/configuration/monitors | tearing
+ repeat_rate | repeat_rate=25 | how many keystrokes per second a held key does | https://mangowm.github.io/docs/configuration/input
+ repeat_delay | repeat_delay=600 | milliseconds before a held key starts repeating | https://mangowm.github.io/docs/configuration/input
+ numlockon | numlockon=0 | sets the default numlock state (on or off) | https://mangowm.github.io/docs/configuration/input
+ xkb_rules_rules | xkb_rules_rules=base | sets XKB rules file (advanced config, not needed) | https://mangowm.github.io/docs/configuration/input
+ xkb_rules_model | xkb_rules_model=macbook | sets the keyboard model (for compat reasons) | https://mangowm.github.io/docs/configuration/input
+ xkb_rules_layout | xkb_rules_layout=us,de | list of keyboard layouts | https://mangowm.github.io/docs/configuration/input
+ xkb_rules_Variant | xkb_rules_variant=dvorak | sets the layout variant | https://mangowm.github.io/docs/configuration/input
+ xkb_rules_options | xkb_rules_options=ctrl:nocaps | sets advanced xkb rules options (like key remaps) | https://mangowm.github.io/docs/configuration/input
+ mouse_natural_scrolling | mouse_natural_scrolling=1 | inverts the scrolling direction for mouse scroll wheels | https://mangowm.github.io/docs/configuration/input
+ mouse_accel_profile | mouse_accel_profile=2 | sets acceleration curve (0=none,1=flat,2=adaptive) | https://mangowm.github.io/docs/configuration/input
+ mouse_accel_speed | mouse_accel_speed=0.1 | mouse acceleration modifier (-1.0 to 1.0) | https://mangowm.github.io/docs/configuration/input
+ left_handed | left_handed=1 | swaps the left and right mouse buttons | https://mangowm.github.io/docs/configuration/input
+ axis_scroll_factor | axis_scroll_factor=0.5 | modifies the scroll speed (0.1 to 10.0) | https://mangowm.github.io/docs/configuration/input
+ axis_bind_apply_timeout | axis_bind_apply_timeout=100 | ms between axis bind events for scrolling | https://mangowm.github.io/docs/configuration/miscellaneous
+ cursor_size | cursor_size=24 | sets the size of the cursor | https://mangowm.github.io/docs/configuration/input
+ cursor_theme | cursor_theme=Adwaita | sets the cursor cursor_theme | https://mangowm.github.io/docs/configuration/input
+ disable_trackpad | disable_trackpad=1 | disables the Trackpad | https://mangowm.github.io/docs/configuration/input
+ tap_to_click | tap_to_click=1 | triggers a left click on taps | https://mangowm.github.io/docs/configuration/input
+ tap_and_drag | tap_and_drag=1 | tap and hold to click-drag items | https://mangowm.github.io/docs/configuration/input
+ trackpad_natural_scrolling | trackpad_natural_scrolling=0 | inverts trackpad scrolling direction | https://mangowm.github.io/docs/configuration/input
+ trackpad_accel_profile | trackpad_accel_profile=2 | sets accel profile (0 = none, 1 = flat, 2 = adaptive) | https://mangowm.github.io/docs/configuration/input
+ trackpad_accel_speed | trackpad_accel_speed=0.1 | adjusts the trackpad acceleration speed (-1.0 to 1.0) | https://mangowm.github.io/docs/configuration/input
+ scroll_button | scroll_button=279 | sets the button for scrolling (272-259) | https://mangowm.github.io/docs/configuration/input
+ scroll_method | scroll_method=2 | 1 = two-finger scroll, 2 = edge scroll, 4 = button | https://mangowm.github.io/docs/configuration/input
+ click_method | click_method=1 | 1 = button area (bottom of trackpad), 2 = clickfinger | https://mangowm.github.io/docs/configuration/input
+ send_events_mode | send_events_mode=2 | disable events sending on trackpad (1) or mouse (2) | https://mangowm.github.io/docs/configuration/input
+ drag_lock | drag_lock=1 | locks dragging after tapping | https://mangowm.github.io/docs/configuration/input
+ disable_while_typing | disable_while_typing=1 | disables the trackpad when disable_while_typing | https://mangowm.github.io/docs/configuration/input
+ middle_button_emulation | middle_button_emulation=1 | adds a virtual middle-click button to the trackpad | https://mangowm.github.io/docs/configuration/input
+ swipe_min_threshold | swipe_min_threshold=1 | minimum threshold for swipe gestures to activate | https://mangowm.github.io/docs/configuration/input
+ button_map | button_map=1 | changes trackpad button layout (0=l/r/m, 1=l/m/r) | https://mangowm.github.io/docs/configuration/input
+ trackpad_scroll_factor | trackpad_scroll_factor=1.5 | changes trackpad scroll speed (0.1 to 10.0) | https://mangowm.github.io/docs/configuration/input
+ xwayland_persistence | xwayland_persistence=1 | keeps xwayland running (reduces x11 app startup lag) | https://mangowm.github.io/docs/configuration/miscellaneous
+ syncobj_enable | syncobj_enable=1 | enable syncobj timing (helps with gaming stutter/lag) | https://mangowm.github.io/docs/configuration/miscellaneous
+ allow_lock_transparent | allow_lock_transparent=0 | allow the lock screen to be transparent | https://mangowm.github.io/docs/configuration/miscellaneous
+ allow_shortcuts_inhibit | allow_shortcuts_inhibit=1 | allows apps to inhibit mangowm keybinds | https://mangowm.github.io/docs/configuration/miscellaneous
+ focus_on_activate | focus_on_activate=1 | automatically focus windows that request activation | https://mangowm.github.io/docs/configuration/miscellaneous
+ sloppyfocus | sloppyfocus=1 | focus automatically follows the mouse cursor | https://mangowm.github.io/docs/configuration/miscellaneous
+ warpcursor | warpcursor=1 | move the cursor to the focused window when changing focus via keyboard | https://mangowm.github.io/docs/configuration/miscellaneous
+ cursor_hide_Timeout | cursor_hide_timeout=30 | hides the cursor after seconds of not moving | https://mangowm.github.io/docs/configuration/miscellaneous
+ drag_tile_to_tile | drag_tile_to_tile=0 | allow dragging a tile onto another to swap them | https://mangowm.github.io/docs/configuration/miscellaneous
+ drag_tile_small | drag_tile_small=1 | temporarily makes tiles small when dragging them around | https://mangowm.github.io/docs/configuration/miscellaneous
+ drag_corner | drag_corner=0 | drag corner for drag-to-tile detection | https://mangowm.github.io/docs/configuration/miscellaneous
+ drag_warp_cursor | drag_warp_cursor=1 | warp cursor when dragging windows to tile | https://mangowm.github.io/docs/configuration/miscellaneous
+ focus_cross_monitor | focus_cross_monitor=1 | allow focus to jump across monitors | https://mangowm.github.io/docs/configuration/miscellaneous
+ focus_cross_tag | focus_cross_tag=1 | allow focus to jump across tags/workspaces | https://mangowm.github.io/docs/configuration/miscellaneous
+ exchange_cross_monitor | exchange_cross_monitor=1 | allow apps to be swapped across monitors | https://mangowm.github.io/docs/configuration/miscellaneous
+ scratchpad_cross_monitor | scratchpad_cross_monitor=1 | share the scratchpad pool across monitors | https://mangowm.github.io/docs/configuration/miscellaneous | scratchpad
+ view_current_to_back | view_current_to_back=1 | toggling to the current tag goes to the previous tag | https://mangowm.github.io/docs/configuration/miscellaneous
+ single_scratchpad | single_scratchpad=1 | only allow one scratchpad to be visible at a time | https://mangowm.github.io/docs/configuration/miscellaneous | scratchpad
+ idleinhibit_ignore_visible | idleinhibit_ignore_visible=1 | allows invisible programs (eg daemons) to prevent sleep | https://mangowm.github.io/docs/configuration/miscellaneous
+ drag_tile_refresh_interval | drag_tile_refresh_interval=8.0 | interval to refresh sizes during tiled dragging | https://mangowm.github.io/docs/configuration/miscellaneous
+ drag_floating_refresh_interval | drag_floating_refresh_interval=8.0 | interval to refresh sizes during floating dragging | https://mangowm.github.io/docs/configuration/miscellaneous
+ enable_floating_snap | enable_floating_snap=1 | snap floating windows to edges of other windows | https://mangowm.github.io/docs/configuration/miscellaneous
+ snap_distance | snap_distance=30 | maximum distance to trigger floating snap | https://mangowm.github.io/docs/configuration/miscellaneous
+ no_border_when_single | no_border_when_single=1 | removes window borders when only one window is visible | https://mangowm.github.io/docs/configuration/miscellaneous
+ borderpx | borderpx=4 | sets the width of screen borders | https://mangowm.github.io/docs/visuals/theming
+ border_radius | border_radius=10 | rounding radius for windows | https://mangowm.github.io/docs/visuals/theming
+ no_radius_when_single | no_radius_when_single=0 | turns off corner rounding when the window is the only one on the monitor | https://mangowm.github.io/docs/visuals/effects
+ focused_opacity | focused_opacity=0.9 | sets the opacity of the focused window | https://mangowm.github.io/docs/visuals/theming
+ unfocused_opacity | unfocused_opacity=0.8 | sets the opacity of unfocused windows | https://mangowm.github.io/docs/visuals/theming
+ gappih | gappih=5 | sets the horizontal gap between windows | https://mangowm.github.io/docs/visuals/theming
+ gappiv | gappiv=5 | sets the vertical gap between windows | https://mangowm.github.io/docs/visuals/theming
+ gappoh | gappoh=10 | sets the horizontal gap to screen edges | https://mangowm.github.io/docs/visuals/theming
+ gappov | gappov=10 | sets the vertical gap to screen edges | https://mangowm.github.io/docs/visuals/theming
+ rootcolor | rootcolor=0x323232ff | sets the default background color | https://mangowm.github.io/docs/visuals/theming
+ bordercolor | bordercolor=0x444444ff | sets the inactive border color | https://mangowm.github.io/docs/visuals/theming
+ dropcolor | dropcolor=0x8FBA7C55 | sets the drop shadow color for floating windows | https://mangowm.github.io/docs/visuals/theming
+ focuscolor | focuscolor=0xc66b25ff | sets the focused window border color | https://mangowm.github.io/docs/visuals/theming
+ urgentcolor | urgentcolor=0xad401fff | sets the urgent window border color | https://mangowm.github.io/docs/visuals/theming
+ maximizescreencolor | maximizescreencolor=0xad401fff | sets the maximized window border color | https://mangowm.github.io/docs/visuals/theming
+ scratchpadcolor | scratchpadcolor=0xad401fff | sets the scratchpad window border color | https://mangowm.github.io/docs/visuals/theming | scratchpad
+ scratchpad_width_ratio | scratchpad_width_ratio=0.8 | sets the width of the scratchpad | https://mangowm.github.io/docs/window-management/scratchpad | scratchpad
+ scratchpad_height_ratio | scratchpad_height_ratio=0.9 | sets the height of the scratchpad | https://mangowm.github.io/docs/window-management/scratchpad | scratchpad
+ globalcolor | globalcolor=0xad401fff | sets the border for windows in global mode | https://mangowm.github.io/docs/visuals/theming
+ overlaycolor | overlaycolor=0xad401fff | sets the border color for windows in the overlay | https://mangowm.github.io/docs/visuals/theming
+ blur | blur=1 | toggles blur for windows | https://mangowm.github.io/docs/visuals/effects
+ blur_layer | blur_layer=0 | toggles blur for other elements (bars/docks) | https://mangowm.github.io/docs/visuals/effects
+ blur_optimized | blur_optimized=0 | turns on blur optimization caching (reduced GPU usage) | https://mangowm.github.io/docs/visuals/effects
+ blur_params_radius | blur_params_radius=5 | strength of the blurring | https://mangowm.github.io/docs/visuals/effects
+ blur_params_num_passes | blur_params_num_passes=2 | amount of passes (more = smoother but more expensive) | https://mangowm.github.io/docs/visuals/effects
+ blur_params_noise | blur_params_noise=0.02 | noise level for the blur (advanced) | https://mangowm.github.io/docs/visuals/effects
+ blur_params_brightness | blur_params_brightness=0.9 | brightness level for the blur (advanced) | https://mangowm.github.io/docs/visuals/effects
+ blur_params_contrast | blur_params_contrast=0.9 | contrast level for the blur (advanced) | https://mangowm.github.io/docs/visuals/effects
+ blur_params_saturation | blur_params_saturation=1.2 | saturation level for the blur (advanced) | https://mangowm.github.io/docs/visuals/effects
+ shadows | shadows=1 | enable shadows for windows | https://mangowm.github.io/docs/visuals/effects
+ layer_shadows | layer_shadows=0 | enable shadows for other elements (bars/docks) | https://mangowm.github.io/docs/visuals/effects
+ shadow_only_floating | shadow_only_floating=1 | limit shadows to floating windows only | https://mangowm.github.io/docs/visuals/effects
+ shadows_size | shadows_size=10 | size of the shadows | https://mangowm.github.io/docs/visuals/effects
+ shadows_blur | shadows_blur=15 | amount of blur for the shadows | https://mangowm.github.io/docs/visuals/effects
+ shadows_position_x | shadows_position_x=0 | horizontal offset for the shadow | https://mangowm.github.io/docs/visuals/effects
+ shadows_position_y | shadows_position_y=0 | vertical offset for the shadow | https://mangowm.github.io/docs/visuals/effects
+ shadowscolor | shadowscolor=0x000000ff | color of the shadow | https://mangowm.github.io/docs/visuals/effects
+ circle_layout | circle_layout=grid,scroller,tile,dwindle | sets the list of layouts to cycle between using the keybind | https://mangowm.github.io/docs/window-management/layouts | scroller
+ scroller_structs | scroller_structs=20 | sets reserved side width when window ratio is 1 | https://mangowm.github.io/docs/window-management/layouts | scroller
+ scroller_default_proportion | scroller_default_proportion=0.9 | sets the default width proportion for new windows | https://mangowm.github.io/docs/window-management/layouts | scroller
+ scroller_focus_center | scroller_focus_center=0 | always center the focused window | https://mangowm.github.io/docs/window-management/layouts | scroller
+ scroller_prefer_center | scroller_prefer_center=1 | center the focused window only if it is outside the view | https://mangowm.github.io/docs/window-management/layouts | scroller
+ scroller_prefer_overspread | scroller_prefer_overspread=1 | allow windows to overspread when there is extra space | https://mangowm.github.io/docs/window-management/layouts | scroller
+ edge_scroller_pointer_focus | edge_scroller_pointer_focus=1 | focus windows even if they're partially off-screen | https://mangowm.github.io/docs/window-management/layouts | scroller
+ scroller_proportion_preset | scroller_proportion_preset=0.5,0.8,1.0 | presets for cycling window widths using keybinds | https://mangowm.github.io/docs/window-management/layouts | scroller
+ scroller_ignore_proportion_single | scroller_ignore_proportion_single=1 | ignore proportion adjustments for single windows | https://mangowm.github.io/docs/window-management/layouts | scroller
+ scroller_default_proportion_single | scroller_default_proportion_single=1.0 | default proportion for single windows| https://mangowm.github.io/docs/window-management/layouts | scroller
+ new_is_master | new_is_master=1 | make new windows the master window | https://mangowm.github.io/docs/window-management/layouts | master
+ default_mfact | default_mfact=0.55 | how much of the screen is used for the master window | https://mangowm.github.io/docs/window-management/layouts | master
+ default_nmaster | default_nmaster=1 | number of allowed master windows | https://mangowm.github.io/docs/window-management/layouts | master
+ smartgaps | smartgaps=0 | disable gaps when only one window is present | https://mangowm.github.io/docs/window-management/layouts | master
+ center_master_overspread | center_master_overspread=0 | spread master across the screen if no stack exists | https://mangowm.github.io/docs/window-management/layouts | master
+ center_when_single_stack | center_when_single_stack=1 | center master when only one stack window exits (center only) | https://mangowm.github.io/docs/window-management/layouts | master
+ dwindle_split_ratio | dwindle_split_ratio=0.5 | ratio used for new splits (0.05-0.95) | https://mangowm.github.io/docs/window-management/layouts | dwindle
+ dwindle_smart_split | dwindle_smart_split=0 | pick the split axis from the cursor's position | https://mangowm.github.io/docs/window-management/layouts | dwindle
+ dwindle_hsplit | dwindle_hsplit=1 | where the window goes for horizontal splits (0=cursor,1=r,2=l)| https://mangowm.github.io/docs/window-management/layouts | dwindle
+ dwindle_vsplit | dwindle_vsplit=1 | where the window goes for vertical splits (0=cursor,1=d,2=u) | https://mangowm.github.io/docs/window-management/layouts | dwindle
+ dwindle_preserve_split | dwindle_preserve_split=1 | keep the sibling's split orientation when a window is closed | https://mangowm.github.io/docs/window-management/layouts | dwindle
+ dwindle_smart_resize | dwindle_smart_resize=0 | change how drag-to-resize works (test both) | https://mangowm.github.io/docs/window-management/layouts | dwindle
+ dwindle_drop_simple_split | dwindle_drop_simple_split=0 | 1=two-zone matching, 0=quadrants for drag-and-drop | https://mangowm.github.io/docs/window-management/layouts | dwindle
+ dwindle_manual_split | dwindle_manual_split=0 | manually split windows mode | https://mangowm.github.io/docs/window-management/layouts | dwindle
+ hotarea_size | hotarea_size=10 | sets the trigger size for the hot area | https://mangowm.github.io/docs/window-management/overview | overview
+ enable_hotarea | enable_hotarea=1 | toggles the hot area (hover to trigger overview) | https://mangowm.github.io/docs/window-management/overview | overview
+ hotarea_corner | hotarea_corner=0 | 0=top left,1=top right,2=bottom-left,3=bottom-right | https://mangowm.github.io/docs/window-management/overview | overview
+ ov_tab_mode | ov_tab_mode=1 | set overview to tab mode (works like windows alt+tab) | https://mangowm.github.io/docs/window-management/overview | overview
+ overviewgappi | overviewgappi=5 | sets the inner gaps in overview mode| https://mangowm.github.io/docs/window-management/overview | overview
+ overviewgappo | overviewgappo=30 | sets the outer gaps in overview mode | https://mangowm.github.io/docs/window-management/overview | overview
+ ov_no_resize | ov_no_resize=1 | disables window resizing in overview | https://mangowm.github.io/docs/window-management/overview | overview
+ bind | bind=SUPER+SHIFT,Q, | sets a bind with MODIFIER,KEY,DISPATCHER. | https://mangowm.github.io/docs/bindings/keys
+ keymode | keymode=mykeymode | all binds below this will be in this named keymode | https://mangowm.github.io/docs/bindings/keys
+ mousebind | mousebind=SUPER,btn_left,moveresize,curmove | bind with a mouse button | https://mangowm.github.io/docs/bindings/mouse-gestures | bind
+ axisbind | axisbind=SUPER,DOWN,viewtoright_have_client | bind to scroll up/down/left/right | https://mangowm.github.io/docs/bindings/mouse-gestures | bind
+ gesturebind | gesturebind=SUPER,left,3,focusdir,left | binds trackpad swipe gestures, format: MOD,direction,fingers, | https://mangowm.github.io/docs/bindings/mouse-gestures | bind
+ switchbind| switchbind=fold, | binds for laptop lid fold/unfold. | https://mangowm.github.io/docs/bindings/mouse-gestures | bind
+ monitorrule | monitorrule=name:DP-1,width:1920,height:1080,refresh:60 | configures your monitors | https://mangowm.github.io/docs/configuration/monitors | monitor
+
+ bind=MOD,KEY,killclient | bind=MOD,KEY,killclient | close the current focused window | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,togglefloating | bind=MOD,KEY,togglefloating | toggle floating state for the focused window | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,toggle_all_floating | bind=MOD,KEY,toggle_all_floating | toggle floating state for all visible windows | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,togglefullscreen | bind=MOD,KEY,togglefullscreen | toggle fullscreen for the focused window | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,togglefakefullscreen | bind=MOD,KEY,togglefakefullscreen | makes focused app think its fullscreen but keeps it windowed | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,togglemaximizescreen | bind=MOD,KEY,togglemaximizescreen | maximize the focused window (hide other windows behind) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,toggleglobal | bind=MOD,KEY,toggleglobal | pin the focused window to all tags | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,toggle_render_border | bind=MOD,KEY,toggle_render_border | toggles rendering of the border for the focused window | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,centerwin | bind=MOD,KEY,centerwin | centers the focused floating window | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,minimized | bind=MOD,KEY,minimized | minimize a window to the scratchpad | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,restore_minimized | bind=MOD,KEY,restore_minimized | bring back a window from the scratchpad | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,toggle_scratchpad | bind=MOD,KEY,toggle_scratchpad | toggle scratchpad visibility | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,toggle_named_scratchpad | bind=MOD,KEY,toggle_named_scratchpad,appid,title,'launchcommand' | toggles a named scratchpad, launches app if not running | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,focusdir | bind=MOD,KEY,focusdir,left | move focus in direction up/down/left/right | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,focusstack | bind=MOD,KEY,focusstack,next | cycle focus in the stack prev/next | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,focuslast | bind=MOD,KEY,focuslast | focus the previous window | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,exchange_client | bind=MOD,KEY,exchange_client,right | swap focused window with window to the left/right/down/up | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,exchange_stack_client | bind=MOD,KEY,exchange_stack_client,next | swap focused window with prev/next window in stack | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,zoom | bind=MOD,KEY,zoom | swap focused window with master | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,view | bind=MOD,KEY,view,3 | view this tag, accepts x, +x, -x and multiple tags delimited by pipes, + and - are relative | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,viewtoleft | bind=MOD,KEY,viewtoleft | view the previous tag (equal to view,-1) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,viewtoright | bind=MOD,KEY,viewtoright | view the next tag (equal to view,+1) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,viewtoleft_have_client | bind=MOD,KEY,viewtoleft_have_client | viewtoleft but only if a window exists on that tag on that monitor | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,viewtoright_have_client | bind=MOD,KEY,viewtoright_have_client | viewtoright but only if a window exists on that tag on that monitor | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,viewcrossmon | bind=MOD,KEY,viewcrossmon,1,name:DP-1 | view a specific tag on a specific monitor | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,tag | bind=MOD,KEY,tag,2 | replace focused window tag with this tag and move to that tag | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,tagsilent | bind=MOD,KEY,tagsilent,5 | replace focused window tag with this tag, do not move to the tag | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,tagtoleft | bind=MOD,KEY,tagtoleft | increment focused window tag by 1 | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,tagtoright | bind=MOD,KEY,tagtoright | decrement focused window tag by 1 | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,tagcrossmon | bind=MOD,KEY,tagcrossmon,4,name:DP-2 | move focused window to specific tag on specific monitor | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,toggletag | bind=MOD,KEY,toggletag,2 | toggle this tag on the active window without removing other tags | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,toggleview | bind=MOD,KEY,toggleview,4 | toggle visibility for this tag | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,comboview | bind=MOD,KEY,comboview,3 | like view + toggleview, allows holding down modifier and pressing multiple keys | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,focusmon | bind=MOD,KEY,focusmon,right | move focus to monitor by direction (left/right/up/down) or name:DP-1 | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,tagmon | bind=MOD,KEY,tagmon,right | move focused window to monitor by direction or name:DP-1 | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,setlayout | bind=MOD,KEY,setlayout,tile | sets the layout of the current tag on the current window | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,switch_layout | bind=MOD,KEY,switch_layout | cycle through the available layouts (see circle_layout:) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,incmaster | bind=MOD,KEY,incmaster,+1 | increase/decrease the number of master windows (+1/-1) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,setmfact | bind=MOD,KEY,setmfact,+0.05 | increase/decrease the master area size (+/-0.x) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,set_proportion | bind=MOD,KEY,set_proportion,0.7 | set the scroller window proportion (0.0-1.0) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,switch_proportion_preset | bind=MOD,KEY,switch_proportion_preset | switch between proportion presets (see scroller_proportion_preset:) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,scroller_stack | bind=MOD,KEY,scroller_stack,up | move window inside/outside scroller stack in direction | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,incgaps | bind=MOD,KEY,incgaps,+2 | adjust gap size (+/-x) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,togglegaps | bind=MOD,KEY,togglegaps | toggle whether gaps are used | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,dwindle_toggle_split_direction | bind=MOD,KEY,dwindle_toggle_split_direction | toggle the split direction for dwindle layout | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,spawn | bind=MOD,KEY,spawn,firefox | spawn the provided application via command | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,spawn_shell | bind=MOD,KEY,spawn_shell,'ghostty -e ~/.config/sdgos/tuis/pkg-install.sh' | run the provided command with command syntax support | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,spawn_on_empty | bind=MOD,KEY,spawn_on_empty,'firefox',4 | spawns the application on the provided tab if empty | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,reload_config | bind=MOD,KEY,reload_config | reloads the mango config | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,quit | bind=MOD,KEY,quit | quits mangoWM | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,toggleoverview | bind=MOD,KEY,toggleoverview | toggle overview mode on/off | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,create_virtual_output | bind=MOD,KEY,create_virtual_output | creates a virtual monitor (for remote access) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,destroy_all_virtual_output | bind=MOD,KEY,destroy_all_virtual_output | destroy a virtual monitor (for remote access) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,toggleoverlay | bind=MOD,KEY,toggleoverlay | toggles overlay state for the focused window | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,toggle_trackpad_enable | bind=MOD,KEY,toggle_trackpad_enable | toggles the trackpad | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,setkeymode | bind=MOD,KEY,setkeymode,mykeymode | sets the keymode | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,switch_keyboard_layout | bind=MOD,KEY,switch_keyboard_layout | switches between your available keyboard layouts | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,setoption | bind=MOD,KEY,setoption,key,value | temporarily sets any option (gets removed on reload) | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,disable_monitor | bind=MOD,KEY,disable_monitor,name:HDMI-A-1 | disables the provided monitor | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,enable_monitor | bind=MOD,KEY,enable_monitor,name:HDMI-A-1 | enables the provided monitor | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,toggle_monitor | bind=MOD,KEY,toggle_monitor,name:HDMI-A-1 | toggles the provided monitor | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,smartmovewin | bind=MOD,KEY,smartmovewin,up | moves floating focused window in direction by snap distance | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,smartresizewin | bind=MOD,KEY,smartresizewin,left | resizes floating focused window by snap distance | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,movewin | bind=MOD,KEY,movewin,10,10 | moves floating focused window to x,y coordinates | https://mangowm.github.io/docs/bindings/keys | bind
+ bind=MOD,KEY,resizewin | bind=MOD,KEY,resizewin,500,300 | resizes floating focused window to x,y pixels | https://mangowm.github.io/docs/bindings/keys | bind
+ windowrule | windowrule=title:ghostty,isfloating:1 | sets rules to windows based on filter conditions | https://mangowm.github.io/docs/window-management/rules | windowrules
+ tagrule | tagrule=id:1,nmaster:2 | sets rules to tags (workspaces) based on filter conditions | https://mangowm.github.io/docs/window-management/rules | tagrules
+ layerrule | layerrule=layer_name:background,noanim:1 | sets rules to layers based on filter conditions | https://mangowm.github.io/docs/window-management/rules | layerrules
+
+ animations | animations=1 | turns animations off and on for windows | https://mangowm.github.io/docs/visuals/animations | animations
+ layer_animations | layer_animations=1 | turn animations off and on for bars, notifications etc | https://mangowm.github.io/docs/visuals/animations | animations
+ animation_type_open | animation_type_open=zoom | sets the animation type for window open, options are slide, zoom, fade and none | https://mangowm.github.io/docs/visuals/animations | animations
+ animation_type_close | animation_type_close=slide | sets the animation type for window close, options are slide, zoom, fade and none | https://mangowm.github.io/docs/visuals/animations | animations
+ layer_animation_type_open | layer_animation_type_open=slide | sets the animation type for layer objects opening, options are slide, zoom, fade and none | https://mangowm.github.io/docs/visuals/animations | animations
+ layer_animation_type_close | layer_animation_type_close=slide | sets the animation type for layer objects closing, options are slide, zoom, fade and none | https://mangowm.github.io/docs/visuals/animations | animations
+ animation_fade_in | animation_fade_in=1 | toggles fade-in for fade animations | https://mangowm.github.io/docs/visuals/animations | animations
+ animation_fade_out | animation_fade_out=1 | toggles fade-out for fade animations | https://mangowm.github.io/docs/visuals/animations | animations
+ fadein_begin_opacity | fadein_begin_opacity=0.5 | sets the starting opacity for fade-in | https://mangowm.github.io/docs/visuals/animations | animations
+ fadeout_begin_opacity | fadeout_begin_opacity=0.5 | sets the starting opacity for fade-out | https://mangowm.github.io/docs/visuals/animations | animations
+ zoom_initial_ratio | zoom_initial_ratio=0.4 | sets the starting size as a fraction of final size for zoom animations | https://mangowm.github.io/docs/visuals/animations | animations
+ zoom_end_ratio | zoom_end_ratio=0.8 | sets the end size as a fraction of the final size for zoom animations | https://mangowm.github.io/docs/visuals/animations | animations
+ animation_duration_move | animation_duration_move=500 | sets the duration for the move animation in ms | https://mangowm.github.io/docs/visuals/animations | animations
+ animation_duration_open | animation_duration_open=400 | sets the duration for the open animation in ms | https://mangowm.github.io/docs/visuals/animations | animations
+ animation_duration_tag | animation_duration_tag=300 | sets the tag switch animation duration in ms | https://mangowm.github.io/docs/visuals/animations | animations
+ animation_duration_close | animation_duration_close=300 | sets the duration for the close animation in ms | https://mangowm.github.io/docs/visuals/animations | animations
+ animation_duration_focus | animation_duration_focus=0 | sets the duration for the transition animation to and from focused state (for example, opacity and border color changes) | https://mangowm.github.io/docs/visuals/animations | animations
+ animation_curve_open | animation_curve_open=0.46,1.0,0.29,0.99 | sets a custom bezier curve for the open animation | https://mangowm.github.io/docs/visuals/animations | bezier
+ animation_curve_move | animation_curve_move=0.46,1.0,0.29,0.99 | sets a custom bezier curve for the move animation | https://mangowm.github.io/docs/visuals/animations | bezier
+ animation_curve_tag | animation_curve_tag=0.46,1.0,0.29,0.99 | sets a custom bezier curve for the tag switch animation | https://mangowm.github.io/docs/visuals/animations | bezier
+ animation_curve_close | animation_curve_close=0.46,1.0,0.29,0.99 | sets a custom bezier curve for the close animation | https://mangowm.github.io/docs/visuals/animations | bezier
+ animation_curve_focus | animation_curve_focus=0.46,1.0,0.29,0.99 | sets a custom bezier curve for the focus change animation | https://mangowm.github.io/docs/visuals/animations | bezier
+ animation_curve_opafadein | animation_curve_opafadein=0.46,1.0,0.29,0.99 | sets a custom bezier curve for opacity fadein | https://mangowm.github.io/docs/visuals/animations | bezier
+ animation_curve_opafadeout | animation_curve_opafadeout=0.5,0.5,0.5,0.5 | sets a custom bezier curve for opacity fadeout | https://mangowm.github.io/docs/visuals/animations | bezier
+ tag_animation_direction | tag_animation_direction=1 | sets the direction for the tag switch animation (vertical or horizontal) | https://mangowm.github.io/docs/visuals/animations | animations
diff --git a/sdgos/firstrun.sh b/sdgos/firstrun.sh
index 42970aa..8cfd0e7 100755
--- a/sdgos/firstrun.sh
+++ b/sdgos/firstrun.sh
@@ -1,6 +1,24 @@
#!/bin/bash
if [ ! -f ~/.config/firstrun.state ]; then
+ dms ipc call wallpaper set ~/.config/sdgos/wallpaper.png
+ dms ipc call settings set showWorkspaceIndex true
+ dms ipc call settings set dwlShowAllTags true
+ dms ipc call settings set gtkThemingEnabled true
+ dms ipc call settings set qtThemingEnabled true
+ dms ipc call settings set runDmsMatugenTemplates true
+ dms ipc call settings set matugenTemplateGtk true
+ dms ipc call settings set matugenTemplatePywalfox true
+ dms ipc call settings set matugenTemplateFirefox true
+ dms ipc call settings set matugenTemplateQt6ct true
+ dms ipc call settings set matugenTemplateGhostty true
+ dms ipc call settings set showDock false
+ dms ipc call settings set dockAutoHide false
+ dms ipc call settings set currentTheme dynamic
+ dms ipc call settings set currentThemeCategory dynamic
+ dms ipc call settings set runUserMatugenTemplates true
+ dms ipc call settings set matugenScheme scheme-tonal-spot
+
dms ipc call settings open
dms ipc call keybinds openWithPath mangowc ~/.config/mango/binds.conf
touch ~/.config/firstrun.state
diff --git a/sdgos/help/topics/003 SDG-OS important keybinds b/sdgos/help/topics/003 SDG-OS important keybinds
index e69de29..7ff641f 100644
--- a/sdgos/help/topics/003 SDG-OS important keybinds
+++ b/sdgos/help/topics/003 SDG-OS important keybinds
@@ -0,0 +1,51 @@
+> Important Keybinds
+
+
+the most important keybind to know is *SUPER+K*
+
+this will open a searchable menu with all of your keybinds.
+
+whenever SUPER is noted in your keybinds, that's the button generally found between ctrl and alt, on most keyboards it will have a windows logo, on macOS keyboards it'll be the option key.
+
+
+However, you don't want to be referencing this menu all the time, so here's the keybinds you should learn first:
+
+[^SUPER+SPACE]:
+this opens your app runner, it's also set up to find files within your home directory automatically and can find settings for you.
+
+[^SUPER+Y]:
+this opens an installer for software. doing this while holding shift allows you to instead install packages from the Arch User Repository.
+
+it is recommended to use the normal package installer unless the package is either not available or broken, in which case, use the AUR.
+
+[^SUPER+1-9]:
+using SUPER + the number keys allows you to switch between workspaces. holding shift while doing this allows you to take your active window with you.
+
+[^SUPER+Left Mouse Button]:
+this will allow you to drag and re-organize windows
+
+[^SUPER+Right Mouse Button]:
+this will allow you to drag to re-size windows
+
+[^SUPER+Q]:
+this quits the current window, like pressing the X on a desktop environment window
+
+[^SUPER+Z]:
+this opens the power menu, allowing you to log out, reboot or turn off your computer
+
+[^SUPER+E]:
+this opens your file browser
+
+[^SUPER+B]:
+this opens firefox
+
+[^SUPER+ENTER]:
+this opens your terminal
+
+[^SUPER+H]:
+this opens a menu that gives you short info on common commands, pressing enter or double-clicking a command will open the manual page for that command.
+holding shift will instead open this menu!
+
+[^SUPER+K]:
+as mentioned before, this will give you a full overview of all keys.
+
diff --git a/sdgos/help/topics/004 using SDG-OS functions b/sdgos/help/topics/004 using SDG-OS functions
index e69de29..7e94fbe 100644
--- a/sdgos/help/topics/004 using SDG-OS functions
+++ b/sdgos/help/topics/004 using SDG-OS functions
@@ -0,0 +1,120 @@
+> Using SDG-OS Functions
+
+
+
+## Install TUIs
+
+the process is the same for using Pacman repositories or using the AUR.
+
+Please always prefer using the pacman repositories if possible, only use the AUR if needed.
+
+step 1: either open a terminal and type the alias `pacgui` or `aurgui`, or use the keybind *SUPER+Y* for pacman or *SUPER+SHIFT+Y* for the AUR
+
+step 2: search for your package
+
+step 3: if you wish to install multiple packages, press tab after highlighting each package
+
+step 4: press enter and provide your password
+
+your software will now be installed alongside all of its dependencies
+
+
+
+## TLDR TUI
+
+you can call this using either the *SUPER+H* bind or the alias `tldrtui` in the terminal
+
+you can use a mouse to interact with this interface or use the arrow keys, you can type to search.
+
+pressing enter or double-clicking an entry will open the man page for that entry
+
+pressing q on the manpage will bring you back to the main menu.
+
+to exit, press *SUPER+Q* to quit the terminal
+
+
+
+## help TUI
+
+you can call this using the *SUPER+SHIFT+H* bind or the alias `helptui` in the terminal
+
+you can use the arrow keys or the mouse to navigate and type to search.
+
+enter refreshes the menu
+
+to exit, press *SUPER+Q*
+
+
+
+## mango config editor
+
+to start, either press *SUPER+M* or run `mangoconf` in the terminal.
+
+this will provide you with a menu listing the configuration files in ~/.config/mango
+
+on the right side, it will show you a preview of the file.
+
+once you've found the file you want to edit, press enter to open it in micro.
+
+in micro, you can use ctrl+s to save and ctrl+q to quit
+
+then, you can reload the mango config with *SUPER+R*
+
+
+
+## project selector
+
+the project selector uses a state file in your ~/.config directory to determine which directory to scan.
+
+this directory must be inside home, and is set to ~/projects by default
+
+to change this, run the following:
+
+`echo "my-projects/subdir-if-needed" > ~/.config/projectdir.state`
+
+this example would make the project selector scan /home/UserName/my-projects/subdir-if-needed
+
+the project selector finds git repositories, so it will only display projects that are a git repository. it is recommended you keep your projects in git repo's.
+
+for configs, you can place them inside a git repo and symlink them using the ln command or using stow.
+
+
+with git repositories inside your projects directory, you can now use the project selector to access them.
+
+you can open the project selector with the bind *SUPER+SHIFT+TAB* or the terminal alias `git-projects`
+
+on the left, you'll see the full paths to all found git repositories.
+
+on the right, you'll see a listing of the files in the git repository as well as the readme.
+
+pressing enter on the repository will open the repository in code-OSS, which will then allow you to work on the repository without clutter.
+
+this also allows you to then use the code-OSS GUI to do git pull, push and sync.
+
+
+
+## layout switcher
+
+you can open the layout switcher with the bind *SUPER+W*
+
+you can then tab through the layouts using the arrow keys and press enter on your desired one.
+
+this will only affect your current view on the active monitor and will be reset when the config is reloaded.
+
+if you've accidentally messed up your layout, pressing *SUPER+R* will force it back to dwindle.
+
+
+
+## documentation menu
+
+you can open this menu using the alias `documentation` in the terminal or the bind *SUPER+shift+M*
+
+this menu will allow you to quickly open both various documentation sites in firefox as well as custom-built searchable quick reference menu's
+
+
+
+## tips
+
+tips are shown automatically when you start your first terminal session, they are also shown when you run the command `tipme`
+
+you can also get a tip in your notifications by pressing the bind *SUPER+0*
\ No newline at end of file
diff --git a/sdgos/help/topics/101 accessing the settings menu b/sdgos/help/topics/101 accessing the settings menu
index e69de29..9c89305 100644
--- a/sdgos/help/topics/101 accessing the settings menu
+++ b/sdgos/help/topics/101 accessing the settings menu
@@ -0,0 +1,22 @@
+> Accessing the settings menu
+
+the Dank Material Shell Settings will be where you configure most of your basic things.
+
+there is a custom bind for this: *SUPER+S*
+
+you can also access it from multiple places in the top bar, the app launcher (*SUPER+SPACE*) and the control center (*SUPER+ESCAPE*)
+
+the settings menu is divided into the following sections:
+
+personalization - here you'll find theming, typography, animations, sounds, time, weather and wallpapers
+dank bar - here you'll find basic bar settings
+workspaces and widgets - here you'll find more complex configurations for both desktop widgets and items in the bar
+dock and launcher - here you'll find configurations for the app launcher as well as the toggleable dock.
+keyboard shortcuts - gives you a graphical menu to add your own keybinds
+displays - gives you graphical display configuration
+network - manage your network connections and VPNs
+system - this contains audio, clipboard and multiplexer settings
+power and security - this contains your lock screen and power/sleep settings
+plugins - install DMS plugins to extend functionality
+
+take the time to browse through these and try some stuff.
\ No newline at end of file
diff --git a/sdgos/help/topics/102 overview of other menus b/sdgos/help/topics/102 overview of other menus
index e69de29..2363280 100644
--- a/sdgos/help/topics/102 overview of other menus
+++ b/sdgos/help/topics/102 overview of other menus
@@ -0,0 +1,105 @@
+> Other Menus
+
+DMS and SDG-OS have a variety of menus, here's an overview of them and how you can access them
+
+## runner
+the runner can be accessed using the keybind *SUPER+SPACE*
+
+it can also be accessed by clicking the button on the top left of the bar, a button for this can also be turned on in the dock.
+
+by default, the button will be in apps mode, the keybind will be in "all" mode.
+
+in apps mode, the runner menu will allow you to launch applications
+
+in search mode, the runner will allow you to search through your /home directory
+
+under plugins, you can select settings, you can also do this by starting your search with "?"
+
+this will allow you to search through DMS settings.
+
+## Keybinds
+
+this can be accessed with *SUPER+K*
+
+the keybinds menu gives you a searchable overview of the keybinds configured in ~/.config/mango/binds.conf
+
+## clipboard History
+
+this can be accessed with *SUPER+V* or from a widget on your bar.
+
+you can see your clipboard history from here and load any of those elements back to your clipboard
+
+## process list
+
+this can be accessed with *SUPER+X* or from various widgets on your bar.
+
+this menu acts as a "Task Manager", allowing you to view, search and kill processes, monitor performance and monitor disk usage.
+
+this is also a good place to find information about your system, such as what kernel you're running, what your hostname is and what CPU/GPU you have.
+
+## dash
+
+the dash can be accessed through various bar widgets and contains an overview with calendar and metrics, a media player, wallpaper selector, weather and access to your settigns.
+
+
+## notifications
+
+notifications can be accessed with *SUPER+SHIFT+N*, from the notifications widget or from the control center
+
+this will show you a notification history as well as current notifications, allows you to toggle do not disturb and allows you to configure notification settings.
+
+## control center
+
+this can be accessed with *SUPER+ESCAPE* or from the bar widget and gives you quick access to common settings like wifi, bluetooth, audio, theming, the settings menu and power controls.
+
+
+## power menu
+
+this can be accessed from a bar widget or *SUPER+Z* and allows you to reboot, shut down or sleep your PC.
+
+## notepad
+
+this can be toggled with *SUPER+N* or a bar widget, and is a simple space to keep quick notes.
+
+
+## command help
+
+this can be spawned with *SUPER+H* and gives you a searchable list of basic commands with their TLDR overviews
+
+selecting a command shows the full manual page, pressing q in the manual page brings you back to the main menu
+
+
+## full help
+
+this menu! spawned with *SUPER+SHIFT+H*
+
+
+## package installer
+
+spawned with *SUPER+Y*, this menu allows you to search the pacman repository, read details and install packages.
+
+
+## AUR installer
+
+spawned with *SUPER+SHIFT+Y*, this menu allows you to search the Arch User Repository, read details and install packages.
+
+
+## Mango Config TUI
+
+spawned with *SUPER+M*, this menu gives you a list of your mango configuration files with a preview, selecting an item will open it in the micro text editor.
+
+
+## layout switcher
+
+spawned with *SUPER+W*, this menu allows you to switch between mangoWM layouts
+
+
+## documentation
+
+spawned with *SUPER+SHIFT+M*, this menu gives you quick access to relevant documentation
+
+
+## Project selector
+
+spawned with *SUPER+SHIFT+TAB*, this menu gives you quick access to working on any git projects in your ~/projects directory
+
diff --git a/sdgos/misc/layoutbutton.sh b/sdgos/misc/layoutbutton.sh
new file mode 100755
index 0000000..8dda337
--- /dev/null
+++ b/sdgos/misc/layoutbutton.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+
+
+ACTIVEMON=$(mmsg -g -o | grep -e "selmon 1" | awk '{print $1}')
+
+echo $ACTIVEMON
+
+LAYOUT=$(mmsg -g -l | grep -e "$ACTIVEMON" | awk '{print $3}')
+
+echo "$LAYOUT"
+
+case $LAYOUT in
+ T)
+ echo "Left Master"
+ mmsg -d zoom
+ ;;
+ S)
+ echo "Horizontal Scroller"
+ mmsg -d switch_proportion_preset
+ ;;
+ G)
+ echo "Horizontal Grid"
+ mmsg -d togglegaps
+ ;;
+ M)
+ echo "Monocle"
+ ;;
+ K)
+ echo "Horizontal Deck"
+ mmsg -d zoom
+ ;;
+ CT)
+ echo "Center Master"
+ mmsg -d zoom
+ ;;
+ RT)
+ echo "Right Master"
+ mmsg -d zoom
+ ;;
+ VS)
+ echo "Vertical Scroller"
+ mmsg -d switch_proportion_preset
+ ;;
+ VT)
+ echo "Top Master"
+ mmsg -d zoom
+ ;;
+ VG)
+ echo "Vertical Grid"
+ mmsg -d togglegaps
+ ;;
+ VK)
+ echo "Vertical Deck"
+ mmsg -d zoom
+ ;;
+ DW)
+ echo "Dwindle"
+ mmsg -d togglemaximizescreen
+ ;;
+ F)
+ echo "Fair"
+ mmsg -d togglegaps
+ ;;
+ VF)
+ echo "Vertical Fair"
+ mmsg -d togglegaps
+ ;;
+ *)
+ notify-send "Unhandled Layout Detected"
+ ;;
+esac
diff --git a/sdgos/wallpaper.png b/sdgos/wallpaper.png
new file mode 100755
index 0000000..823e15d
Binary files /dev/null and b/sdgos/wallpaper.png differ
diff --git a/sdgos/zshconfig.zsh b/sdgos/zshconfig.zsh
index 7a95314..118766a 100644
--- a/sdgos/zshconfig.zsh
+++ b/sdgos/zshconfig.zsh
@@ -39,6 +39,7 @@ alias helptui=~/.config/sdgos/help/help.sh
EDITOR=micro
IMAGEPROGRAM='satty --filename'
TIPS=$(cat ~/.config/sdgos/tips/tips.list)
+SHELL=/bin/zsh
## filetype aliases, default-opens them with the set program
diff --git a/update.sh b/update.sh
new file mode 100644
index 0000000..8a51725
--- /dev/null
+++ b/update.sh
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+echo "updating git repo"
+
+git pull
+
+
+echo "re-installing/updating pre-requisites"
+
+sudo pacman -Syu ghostty firefox dms-shell yay git nautilus brightnessctl pipewire-pulse pipewire matugen adw-gtk-theme wl-copy hyprshot grim satty code-oss zoxide zsh zsh-theme-powerlevel10k eza kanshi ttf-nerd-fonts-symbols-common ttf-nerd-fonts-symbols-mono ttf-nerd-fonts-symbols ttf-cascadia-code-nerd ttf-cascadia-mono-nerd ttf-terminus-nerd ttf-firacode-nerd ttf-ubuntu-nerd
+
+yay -S mangowm-git dsearch-bin
+
+WORKINGDIR=$(pwd)
+
+if [ $WORKINGDIR != "/home/$(whoami)/SDG-OS"]; then
+ ln -sf $WORKINGDIR /home/$(whoami)
+fi
+
+RAND=$(date %b%D)
+
+read -p "do you want to update and refresh your mango config? this will reset you back to SDG-OS defaults [y/N] " -n 1 -r REPLY
+echo
+if [[ $REPLY =~ ^[Yy]$ ]]; then
+ mv /home/$(whoami)/.config/mango /home/$(whoami)/.config/mango-old-$RAND
+ cp -r /home/$(whoami)/SDG-OS/mango /home/$(whoami)/.config
+ sleep 5
+ echo "old version of the config moved to mango-old-$RAND and new version copied in."
+else
+ return 0
+fi
+
+echo "re-building SDGOS scripts dir"
+mv /home/$(whoami)/.config/sdgos /home/$(whoami)/.config/sdgos-old-$RAND
+cp -r /home/$(whoami)/SDG-OS/sdgos /home/$(whoami)/.config
+sleep 5
+echo "SDGOS scripts dir re-built"
+
+read -p "do you want to update and refresh your ghostty config? this will reset you back to SDG-OS defaults [y/N] " -n 1 -r REPLY2
+echo
+if [[ $REPLY2 =~ ^[Yy]$ ]]; then
+ mv /home/$(whoami)/.config/ghostty /home/$(whoami)/.config/ghostty-old-$RAND
+ cp -r /home/$(whoami)/SDG-OS/ghostty /home/$(whoami)/.config
+ sleep 5
+ echo "old ghostty config moved to ghostty-old-$RAND and new config copied in"
+else
+ return 0
+fi
+
+read -p "do you want to update and refresh your zshrc config? this will reset you back to SDG-OS defaults [y/N] " -n 1 -r REPLY3
+echo
+if [[ $REPLY3 =~ ^[Yy]$ ]]; then
+ mv /home/$(whoami)/.zshrc /home/$(whoami)/.zshrc-old-$RAND
+ cp /home/$(Whoami)/.config/sdgos/zshrc /home/$(whoami)/.zshrc
+ sleep 5
+ echo "old zshrc moved to .zshrc-old-$RAND and new zshrc copied in."
+else
+ return 0
+fi
+
+read -p "do you want to update and refresh your p10k config? this will reset you back to SDG-OS defaults [y/N] " -n 1 -r REPLY4
+echo
+if [[ $REPLY4 =~ ^[Yy]$ ]]; then
+mv /home/$(whoami)/.p10k.zsh /home/$(whoami)/.p10k.zsh-old-$RAND
+cp /home/$(Whoami)/.config/sdgos/p10k.zsh /home/$(whoami)/.p10k.zsh
+sleep 5
+echo "old p10k moved to .p10k.zsh-old-$RAND and new p10k config copied in"
+else
+ return 0
+fi
+
+echo "fixing perms on SDGOS folder"
+chmod -R a+x ~/.config/sdgos
+sleep 3
+echo "perms fixed, update complete."
+echo ""
+echo "when you've confirmed functionality of the update, "
\ No newline at end of file