1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-27 06:52:50 -05:00

launcher: add name, icon, description overrides + hide/unhide options

- convenient helpers without needing to make .desktop overrides
fixes #1329
This commit is contained in:
bbedward
2026-01-18 20:30:50 -05:00
parent 7cb39f00ad
commit 0f6ae11c3d
14 changed files with 1359 additions and 397 deletions

View File

@@ -21,6 +21,7 @@ Singleton {
property bool _isReadOnly: false
property bool _hasUnsavedChanges: false
property var _loadedSessionSnapshot: null
readonly property var _hooks: ({})
readonly property string _stateUrl: StandardPaths.writableLocation(StandardPaths.GenericStateLocation)
readonly property string _stateDir: Paths.strip(_stateUrl)
@@ -102,6 +103,10 @@ Singleton {
property string weatherLocation: "New York, NY"
property string weatherCoordinates: "40.7128,-74.0060"
property var hiddenApps: []
property var appOverrides: ({})
property bool searchAppActions: true
Component.onCompleted: {
if (!isGreeterMode) {
loadSettings();
@@ -261,6 +266,10 @@ Singleton {
_checkSessionWritable();
}
function set(key, value) {
Spec.set(root, key, value, saveSettings, _hooks);
}
function migrateFromUndefinedToV1(settings) {
console.info("SessionData: Migrating configuration from undefined to version 1");
if (typeof SettingsData !== "undefined") {
@@ -906,6 +915,61 @@ Singleton {
saveSettings();
}
function hideApp(appId) {
if (!appId)
return;
const current = [...hiddenApps];
if (current.indexOf(appId) === -1) {
current.push(appId);
hiddenApps = current;
saveSettings();
}
}
function showApp(appId) {
if (!appId)
return;
hiddenApps = hiddenApps.filter(id => id !== appId);
saveSettings();
}
function isAppHidden(appId) {
return appId && hiddenApps.indexOf(appId) !== -1;
}
function setAppOverride(appId, overrides) {
if (!appId)
return;
const newOverrides = Object.assign({}, appOverrides);
if (!overrides || Object.keys(overrides).length === 0) {
delete newOverrides[appId];
} else {
newOverrides[appId] = overrides;
}
appOverrides = newOverrides;
saveSettings();
}
function getAppOverride(appId) {
if (!appId)
return null;
return appOverrides[appId] || null;
}
function clearAppOverride(appId) {
if (!appId)
return;
const newOverrides = Object.assign({}, appOverrides);
delete newOverrides[appId];
appOverrides = newOverrides;
saveSettings();
}
function setSearchAppActions(enabled) {
searchAppActions = enabled;
saveSettings();
}
function syncWallpaperForCurrentMode() {
if (!perModeWallpaper)
return;