AvengeMedia / AvengeMedia/DankMaterialShell
Proposal: break out machine specific state from `settings.json` into their own files
- Dominant language
- QML
- Stars
- 8.1k
- Forks
- 515
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 102
Description
### Feature Description
Break out machine specific state from `settings.json` into their own files
### Use Case
Hi! I use the same dotfiles on two different machines, and I've noticed that `~/.config/DankMaterialShell/settings.json` contains a lot of machine-specific settings. This gets kind of awkward to deal with when having `settings.json` checked in to a Git repo and tracked from both machines, because for some entries in `settings.json` each machine needs to have a unique setting, like its monitor names for example.
Here's a non-complete list of some of the entries that I'm talking about (for some I'm guessing what the actual use case is based on the name, but hopefully you get the idea).
- `bluetoothDevicePins.preferredDevice`
- `wifiNetworkPins.preferredWifi`
- `brightnessDevicePins`
- `audioInputDevicePins` / `audioOutputDevicePins`
- `niriOutputSettings`
- `activeDisplayProfile`
- `displayProfiles`
- `enabledGpuPciIds` / `selectedGpuIndex`
- `systemMonitorGpuPciId`
- `lockScreenActiveMonitor`
- `matugenTargetMonitor`
- `frameScreenPreferences`
- `systemMonitorDisplayPreferences`
- `systemMonitorVariants`
- `connectedFrameBarStyleBackups`
- `browserUsageHistory` / `filePickerUsageHistory`
### Compositor(s)
All compositors
### If Other, please specify
_No response_
### Proposed Solution
My proposed solution is to move machine-specific settings like the ones above to some other file, for example `~/.local/share/DankMaterialShell/settings/.json`.
### Alternatives/Existing Solutions
🤷🏻♂
Contributor guide
Research direction
Start by locating where ~/.config/DankMaterialShell/settings.json is loaded and where the listed machine-specific entries are read or written. Define how a per-host file under ~/.local/share/DankMaterialShell/settings/.json would coexist with shared settings, then confirm that machine-specific values no longer need to be tracked in settings.json.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- json
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100