Save things where the rest of the software already saves them
Screenshots and recordings offered three folders to choose between, and three
guesses cannot include the folder somebody's other software already writes to --
which is the only folder that matters. This machine has had ~/Pictures/Screenshots
and ~/Videos/Screencasts since long before Panama, and Panama was writing
recordings to a Videos/Recordings it invented. Both are free text now, and the
recording default is the folder that was already there.
Wallpapers were swept from four directories at once, so the distribution's stock
images arrived mixed in with the user's own and there was no way to ask for just
one. Where wallpapers live is something somebody knows about their own machine.
It is a setting, not a search.
All three accept an absolute path as well as one relative to home, which meant
fixing Capture: it prefixed $HOME unconditionally, so naming /mnt/captures would
have written screenshots to ~/mnt/captures and left nobody able to find them.
The generator turned out to skip any entry whose comment sits inside the braces
rather than above them -- it looks for `key:` immediately after `{`. Three
settings were invisible in the reference because of it, one of them dockScreens,
which has never appeared there at all. The staleness contract could not see it
either: regenerating reproduced the same omission, so the copy was current and
incomplete at once. It now counts what was declared against what it could read
and refuses rather than quietly documenting less than exists.
Claude-Session: https://claude.ai/code/session_01Q84axqUE5inJhf5Jz9CFy1
This commit is contained in:
@@ -101,11 +101,12 @@ Singleton {
|
||||
{ value: "right", label: "Right" }
|
||||
]
|
||||
},
|
||||
|
||||
// A "json" value: the screen names the Dock appears on. Empty means
|
||||
// every screen, which is both the sensible default and the right
|
||||
// answer for the common single-monitor case -- storing a list of
|
||||
// names there would go stale the moment a display is unplugged.
|
||||
{
|
||||
// A "json" value: the screen names the Dock appears on. Empty means
|
||||
// every screen, which is both the sensible default and the right
|
||||
// answer for the common single-monitor case -- storing a list of
|
||||
// names there would go stale the moment a display is unplugged.
|
||||
key: "dockScreens", type: "json", def: [], group: "dock",
|
||||
label: "Screens",
|
||||
detail: "Which displays show the Dock"
|
||||
@@ -859,6 +860,19 @@ Singleton {
|
||||
// ── Desktop background ──────────────────────────────────────────────
|
||||
// Applied through hyprpaper's IPC. Not an hl.config option, so it has
|
||||
// no `hypr` block; services/Wallpaper.qml owns applying it.
|
||||
|
||||
// One folder, not four. The picker used to sweep ~/Pictures/Wallpapers,
|
||||
// ~/Pictures/Backgrounds, ~/.local/share/backgrounds and
|
||||
// /usr/share/backgrounds, which meant the distribution's stock
|
||||
// images turned up mixed in with the user's own and there was no
|
||||
// way to say "only mine". Where wallpapers live is a thing somebody
|
||||
// knows about their own machine; it is a setting, not a search.
|
||||
{
|
||||
key: "wallpaperDir", type: "string", def: "Pictures/Wallpapers", group: "wallpaper",
|
||||
pattern: "^~?/?[A-Za-z0-9 ._/+@'-]{1,160}$",
|
||||
label: "Wallpaper folder",
|
||||
detail: "Where the picker looks. Relative to your home folder unless it starts with /"
|
||||
},
|
||||
{
|
||||
key: "wallpaperPath", type: "string", def: "", group: "wallpaper",
|
||||
// Reaches hyprpaper as the "<output>,<path>" argument form, so a
|
||||
@@ -1271,25 +1285,23 @@ Singleton {
|
||||
// Directories and encoder arguments are enums rather than free text:
|
||||
// both are handed to a recorder process, and an arbitrary string there
|
||||
// is a much larger surface than a settings page needs to expose.
|
||||
|
||||
// Free text rather than three choices. The three were a guess at
|
||||
// where somebody keeps screenshots, and a guess cannot include the
|
||||
// folder the rest of their software already writes to -- which is
|
||||
// the only folder that matters. A path starting with / is taken as
|
||||
// absolute, so a drive that is not under home works too.
|
||||
{
|
||||
key: "screenshotDir", type: "enum", def: "Pictures/Screenshots", group: "capture",
|
||||
key: "screenshotDir", type: "string", def: "Pictures/Screenshots", group: "capture",
|
||||
pattern: "^~?/?[A-Za-z0-9 ._/+@'-]{1,160}$",
|
||||
label: "Screenshot folder",
|
||||
detail: "Folder under your home directory for screenshots",
|
||||
options: [
|
||||
{ value: "Pictures/Screenshots", label: "Pictures / Screenshots" },
|
||||
{ value: "Pictures", label: "Pictures" },
|
||||
{ value: "Desktop", label: "Desktop" }
|
||||
]
|
||||
detail: "Where screenshots are saved. Relative to your home folder unless it starts with /"
|
||||
},
|
||||
{
|
||||
key: "recordingDir", type: "enum", def: "Videos/Recordings", group: "capture",
|
||||
key: "recordingDir", type: "string", def: "Videos/Screencasts", group: "capture",
|
||||
pattern: "^~?/?[A-Za-z0-9 ._/+@'-]{1,160}$",
|
||||
label: "Recording folder",
|
||||
detail: "Folder under your home directory for screen recordings",
|
||||
options: [
|
||||
{ value: "Videos/Recordings", label: "Videos / Recordings" },
|
||||
{ value: "Videos", label: "Videos" },
|
||||
{ value: "Desktop", label: "Desktop" }
|
||||
]
|
||||
detail: "Where screen recordings are saved. Relative to your home folder unless it starts with /"
|
||||
},
|
||||
{
|
||||
key: "recorderArgs", type: "enum", def: "-c h264_vaapi -d /dev/dri/renderD128",
|
||||
|
||||
Reference in New Issue
Block a user