Coherence: one component per idea, one spelling per word, one truth per claim
Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
@@ -61,7 +61,7 @@ Singleton {
|
||||
//
|
||||
// The theme id alone is not enough: editing a custom theme's background
|
||||
// keeps the same id, and the shell would repaint from the binding while
|
||||
// kitty, GTK and the lock screen kept the old colours -- the change would
|
||||
// kitty, GTK and the lock screen kept the old colors -- the change would
|
||||
// look like it had only half landed. The values are in the key too, so any
|
||||
// edit to the active palette is a change worth pushing.
|
||||
readonly property string palettePrint: {
|
||||
@@ -192,7 +192,7 @@ Singleton {
|
||||
// A theme change is a palette change: selecting another theme, or
|
||||
// editing the active one. accentName is the NEAREST CURATED name, so
|
||||
// it can hold still across both -- Moon to Moon Rose keeps "blue" and
|
||||
// moves every other colour.
|
||||
// moves every other color.
|
||||
const themeChanged = force || themeId !== root.appliedThemeId
|
||||
|| palettePrint !== root.appliedPalettePrint;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
pragma Singleton
|
||||
|
||||
// Display configuration: resolution, refresh rate, scale, rotation, position,
|
||||
// colour management, variable refresh rate, and mirroring.
|
||||
// color management, variable refresh rate, and mirroring.
|
||||
//
|
||||
// This is the only page in Panama Settings where a wrong value can leave you
|
||||
// unable to SEE the screen well enough to undo it. A mode the display cannot
|
||||
@@ -85,7 +85,7 @@ Singleton {
|
||||
{ value: 3, label: "Portrait (flipped)" }
|
||||
]
|
||||
|
||||
// Colour management presets Hyprland accepts as `cm`. "auto" is a policy,
|
||||
// Color management presets Hyprland accepts as `cm`. "auto" is a policy,
|
||||
// not a state: the compositor resolves it to a concrete preset and reports
|
||||
// that one back, so it is never verified against readback.
|
||||
readonly property var colorProfiles: [
|
||||
@@ -510,7 +510,7 @@ Singleton {
|
||||
}
|
||||
|
||||
// Everything past `primary` is optional so that arrangements stored before
|
||||
// the colour and mirror fields existed still load. Present but invalid is
|
||||
// the color and mirror fields existed still load. Present but invalid is
|
||||
// not optional: a half-written record is one Panama refuses rather than
|
||||
// guesses at, exactly as it treats a half-written position.
|
||||
function isPersistedLayoutEntry(entry: var): bool {
|
||||
@@ -675,7 +675,7 @@ Singleton {
|
||||
return root.formatBitdepth(String(monitor.currentFormat ?? ""));
|
||||
}
|
||||
|
||||
// The colour half of the readback comparison. Each field is asserted only
|
||||
// The color half of the readback comparison. Each field is asserted only
|
||||
// where the compositor reports something to compare against; vrrMode is
|
||||
// absent by design, since `vrr` reads back live state rather than policy.
|
||||
function matchesColor(monitor: var, requested: var): bool {
|
||||
@@ -732,7 +732,7 @@ Singleton {
|
||||
|
||||
// One-field controls remain callers of the complete-layout transaction.
|
||||
// Their edit is cloned into the current layout so every output's position,
|
||||
// colour and mirror state participates in apply, verification, and
|
||||
// color and mirror state participates in apply, verification, and
|
||||
// rollback. `partial` carries only the fields being changed; anything it
|
||||
// leaves out keeps the value currentLayout just read from the compositor.
|
||||
function applyRecord(output: string, partial: var): bool {
|
||||
|
||||
@@ -204,7 +204,7 @@ Singleton {
|
||||
effects.push("keeps the screen awake");
|
||||
const allow = Array.isArray(mode.allow) ? mode.allow : [];
|
||||
if (allow.length > 0)
|
||||
effects.push(allow.length + (allow.length === 1 ? " app may interrupt" : " apps may interrupt"));
|
||||
effects.push(allow.length + (allow.length === 1 ? " application may interrupt" : " applications may interrupt"));
|
||||
const when = triggers.length > 0 ? "When " + triggers.join(" or ") : "Never turns on";
|
||||
return effects.length > 0 ? when + " · " + effects.join(", ") : when;
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ Singleton {
|
||||
}
|
||||
}
|
||||
|
||||
// "danger" | "warn" | "muted" | "ok". Named rather than a colour: Theme is
|
||||
// "danger" | "warn" | "muted" | "ok". Named rather than a color: Theme is
|
||||
// a UI concern and this is a service.
|
||||
readonly property string tone: {
|
||||
switch (root.headlineState) {
|
||||
|
||||
@@ -77,7 +77,7 @@ Singleton {
|
||||
}
|
||||
|
||||
// The devices half of the store, in the shape the applications list has
|
||||
// always read it in. Kept so that "this app has a privacy rule" keeps
|
||||
// always read it in. Kept so that "this application has a privacy rule" keeps
|
||||
// working there without that page having to learn about tables.
|
||||
readonly property var devices: {
|
||||
const known = root.tables;
|
||||
|
||||
@@ -310,14 +310,14 @@ Singleton {
|
||||
applyRestoredState.restart();
|
||||
}
|
||||
|
||||
// The colour, depth and mirror fields a stored arrangement may carry beyond
|
||||
// The color, depth and mirror fields a stored arrangement may carry beyond
|
||||
// its geometry. Optional exactly as Displays.isPersistedLayoutEntry has
|
||||
// them: an arrangement written before these existed still restores, and a
|
||||
// field that is present but invalid refuses the whole entry rather than
|
||||
// being guessed at.
|
||||
//
|
||||
// Leaving them out was a real loss, not a cosmetic one. The restored record
|
||||
// is built on top of the LIVE layout, so a snapshot's colour profile,
|
||||
// is built on top of the LIVE layout, so a snapshot's color profile,
|
||||
// bit depth and SDR levels were silently replaced by whatever the display
|
||||
// is showing right now -- and layoutsEqual, comparing only geometry, then
|
||||
// judged the two identical and skipped the apply that would have put them
|
||||
|
||||
@@ -223,7 +223,7 @@ Singleton {
|
||||
// permissions" appears twice on purpose: the Applications page answers
|
||||
// what a Flatpak's sandbox exposes, this one answers what the portal
|
||||
// recorded, and they are different questions with the same name.
|
||||
{ label: "Background apps", detail: "Which applications may keep running after you close them", page: "privacy" },
|
||||
{ label: "Background applications", detail: "Which applications may keep running after you close them", page: "privacy" },
|
||||
{ label: "Screen sharing permission", detail: "Take back a screen-capture grant an application was given", page: "privacy" },
|
||||
{ label: "Remote desktop permission", detail: "Take back a grant to control this desktop's pointer and keyboard", page: "privacy" },
|
||||
{ label: "Clear recent files", detail: "Empty the list of documents this desktop remembers you opening", page: "privacy" },
|
||||
@@ -295,8 +295,8 @@ Singleton {
|
||||
{ label: "Quiet hours", detail: "The schedule the Sleep focus mode keeps", page: "notifications" },
|
||||
{ label: "Critical alerts break through", detail: "Let urgent notifications past Do Not Disturb", page: "notifications" },
|
||||
{ label: "Application notification rules", detail: "Which applications may notify you, and how", page: "notifications" },
|
||||
{ label: "Forget an app's notifications", detail: "Remove its rule; it returns on its next notification", page: "notifications" },
|
||||
{ label: "Per-app notification sound", detail: "Turn the chime off for one application", page: "notifications" },
|
||||
{ label: "Forget an application's notifications", detail: "Remove its rule; it returns on its next notification", page: "notifications" },
|
||||
{ label: "Per-application notification sound", detail: "Turn the chime off for one application", page: "notifications" },
|
||||
{ label: "Banners or history", detail: "Send one application straight to history without a popup", page: "notifications" },
|
||||
{ label: "Focus session duration", detail: "How long a focus session runs before it ends itself", page: "focus" },
|
||||
{ label: "Keyboard shortcuts", detail: "Every shortcut the compositor has bound", page: "shortcuts" },
|
||||
@@ -309,8 +309,8 @@ Singleton {
|
||||
// of the three is a preference with a label to find it by.
|
||||
{ label: "Custom shortcut", detail: "Bind your own keys to an application, a shell action, or a window action", page: "shortcuts" },
|
||||
{ label: "Add a shortcut", detail: "Press the chord you want, then pick what it should do", page: "shortcuts" },
|
||||
{ label: "Launch an app with a shortcut", detail: "Give an application its own key combination", page: "shortcuts" },
|
||||
{ label: "App rules", detail: "Per-application window rules: float, centre, size, workspace, and no dimming", page: "tiling" },
|
||||
{ label: "Launch an application with a shortcut", detail: "Give an application its own key combination", page: "shortcuts" },
|
||||
{ label: "Application window rules", detail: "Per-application window rules: float, center, size, workspace, and no dimming", page: "tiling" },
|
||||
{ label: "Window rules", detail: "Make one application always float, open on a workspace, or skip the animations", page: "tiling" },
|
||||
{ label: "Always float a window", detail: "A per-application rule, so one application stops being tiled", page: "tiling" },
|
||||
{ label: "Gestures", detail: "Three-finger swipes as shipped, and four-finger swipes you assign yourself", page: "mouse" },
|
||||
@@ -333,10 +333,10 @@ Singleton {
|
||||
{ label: "Screen reader", detail: "Start Orca and see whether the accessibility bus is up", page: "accessibility" },
|
||||
{ label: "Orca", detail: "The screen reader: whether it is running, and starting or stopping it", page: "accessibility" },
|
||||
{ label: "Sticky keys", detail: "Why sticky, slow and bounce keys are not offered in this session", page: "accessibility" },
|
||||
// The colour filter is a compositor shader rather than a switch, so it
|
||||
// The color filter is a compositor shader rather than a switch, so it
|
||||
// is findable by the condition rather than only by the word "filter".
|
||||
{ label: "Color filter", detail: "A whole-screen filter the compositor renders: grayscale, or one for each kind of colour blindness", page: "accessibility" },
|
||||
{ label: "Grayscale", detail: "Drain the colour out of the whole screen", page: "accessibility" },
|
||||
{ label: "Color filter", detail: "A whole-screen filter the compositor renders: grayscale, or one for each kind of color blindness", page: "accessibility" },
|
||||
{ label: "Grayscale", detail: "Drain the color out of the whole screen", page: "accessibility" },
|
||||
{ label: "Color blindness", detail: "Protanopia, deuteranopia and tritanopia filters applied to the whole screen", page: "accessibility" },
|
||||
{ label: "Dictation", detail: "Speech to text with Super+D, typed where the cursor is", page: "dictation" },
|
||||
{ label: "Speech to text", detail: "Set up the local speech server and model", page: "dictation" },
|
||||
@@ -354,8 +354,8 @@ Singleton {
|
||||
{ label: "Rotation", detail: "Turn a display a quarter, half, or three-quarter turn", page: "displays" },
|
||||
{ label: "HDR", detail: "High dynamic range for a display that supports it", page: "displays" },
|
||||
{ label: "Color profile", detail: "Automatic, sRGB, wide gamut, or HDR per display", page: "displays" },
|
||||
{ label: "Bit depth", detail: "8-bit or 10-bit colour, per display", page: "displays" },
|
||||
{ label: "10-bit", detail: "Deeper colour with less gradient banding", page: "displays" },
|
||||
{ label: "Bit depth", detail: "8-bit or 10-bit color, per display", page: "displays" },
|
||||
{ label: "10-bit", detail: "Deeper color with less gradient banding", page: "displays" },
|
||||
{ label: "SDR brightness", detail: "How bright ordinary content sits inside HDR", page: "displays" },
|
||||
{ label: "Mirror displays", detail: "Show the same picture on a second display", page: "displays" },
|
||||
{ label: "Variable refresh rate", detail: "Override the gaming policy for one display", page: "displays" },
|
||||
@@ -372,7 +372,7 @@ Singleton {
|
||||
{ label: "Tokyo Night", detail: "Moon and Day, the shipped defaults", page: "appearance", section: "themes" },
|
||||
{ label: "Video wallpaper", detail: "A looping video as the desktop background", page: "appearance", section: "background" },
|
||||
{ label: "Advanced accent", detail: "Adjust primary and secondary hue, saturation, and value", page: "appearance", section: "editor" },
|
||||
{ label: "Pick colour from screen", detail: "Sample an accent colour with hyprpicker", page: "appearance" }
|
||||
{ label: "Pick color from screen", detail: "Sample an accent color with hyprpicker", page: "appearance" }
|
||||
]
|
||||
|
||||
function pageFor(group: string): string {
|
||||
|
||||
@@ -112,7 +112,7 @@ Singleton {
|
||||
// node, and the node is gone -- so the stored name is all there is. These
|
||||
// names are structured, though, and the structure carries the useful part:
|
||||
// the Bluetooth address, the AirPlay speaker's hostname, the USB device's
|
||||
// product string. Anything this does not recognise is tidied rather than
|
||||
// product string. Anything this does not recognize is tidied rather than
|
||||
// guessed at, because a wrong name is worse than an ugly one.
|
||||
function label(name: string): string {
|
||||
const raw = String(name ?? "").trim();
|
||||
|
||||
Reference in New Issue
Block a user