Route the Applications page and add its settings
Wires the schema entries and routing the codex agent needs for default applications, weather, vitals refresh, notification timing, and capture, so its pages can be written against keys that already exist. Capture directories and encoder arguments are enums rather than free text. Both are handed to a recorder process, and a settings page has no reason to expose an arbitrary string there. ApplicationsPage.qml is a placeholder so the page id can be routed, registered, and searchable before the real page lands. It is owned by the other agent and expected to be replaced wholesale. Claude-Session: https://claude.ai/code/session_01BRvzt4H8XXLPVH5MyYdk9L
This commit is contained in:
@@ -378,6 +378,93 @@ Singleton {
|
||||
detail: "Scales interface text everywhere; 1.00 is the design size"
|
||||
},
|
||||
|
||||
// ── Weather ─────────────────────────────────────────────────────────
|
||||
{
|
||||
key: "temperatureUnit", type: "enum", def: "fahrenheit", group: "weather",
|
||||
label: "Temperature unit",
|
||||
detail: "Choose Fahrenheit or Celsius for the weather card",
|
||||
options: [
|
||||
{ value: "fahrenheit", label: "Fahrenheit" },
|
||||
{ value: "celsius", label: "Celsius" }
|
||||
]
|
||||
},
|
||||
{
|
||||
key: "weatherRefreshMinutes", type: "int", def: 20, min: 5, max: 120, step: 5,
|
||||
unit: "min", group: "weather",
|
||||
label: "Weather refresh",
|
||||
detail: "How often Panama updates the current conditions"
|
||||
},
|
||||
|
||||
// ── Vitals refresh ──────────────────────────────────────────────────
|
||||
{
|
||||
key: "vitalsIntervalMs", type: "int", def: 2000, min: 500, max: 10000, step: 500,
|
||||
unit: "ms", group: "vitals",
|
||||
label: "Vitals refresh",
|
||||
detail: "How often processor, memory, and graphics usage update"
|
||||
},
|
||||
|
||||
// ── Notifications ───────────────────────────────────────────────────
|
||||
{
|
||||
key: "notificationTimeoutMs", type: "int", def: 5000, min: 1000, max: 30000, step: 500,
|
||||
unit: "ms", group: "notifications",
|
||||
label: "Notification duration",
|
||||
detail: "How long ordinary notification banners remain visible"
|
||||
},
|
||||
{
|
||||
key: "notificationTimeoutCriticalMs", type: "int", def: 0, min: 0, max: 60000, step: 1000,
|
||||
unit: "ms", group: "notifications",
|
||||
label: "Critical notification duration",
|
||||
detail: "Zero keeps critical notification banners visible until dismissed"
|
||||
},
|
||||
{
|
||||
key: "notificationHistoryLimit", type: "int", def: 100, min: 10, max: 500, step: 10,
|
||||
group: "notifications",
|
||||
label: "Notification history",
|
||||
detail: "Maximum notifications retained in the notification center"
|
||||
},
|
||||
{
|
||||
key: "maxVisibleToasts", type: "int", def: 4, min: 1, max: 8, step: 1,
|
||||
group: "notifications",
|
||||
label: "Visible banners",
|
||||
detail: "Maximum notification banners shown at once"
|
||||
},
|
||||
|
||||
// ── Capture ─────────────────────────────────────────────────────────
|
||||
// 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.
|
||||
{
|
||||
key: "screenshotDir", type: "enum", def: "Pictures/Screenshots", group: "capture",
|
||||
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" }
|
||||
]
|
||||
},
|
||||
{
|
||||
key: "recordingDir", type: "enum", def: "Videos/Recordings", group: "capture",
|
||||
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" }
|
||||
]
|
||||
},
|
||||
{
|
||||
key: "recorderArgs", type: "enum", def: "-c h264_vaapi -d /dev/dri/renderD128",
|
||||
group: "capture",
|
||||
label: "Recording encoder",
|
||||
detail: "Hardware encoding keeps recording off the processor while gaming",
|
||||
options: [
|
||||
{ value: "-c h264_vaapi -d /dev/dri/renderD128", label: "VAAPI H.264" },
|
||||
{ value: "-c hevc_vaapi -d /dev/dri/renderD128", label: "VAAPI HEVC" },
|
||||
{ value: "-c libx264", label: "CPU x264" }
|
||||
]
|
||||
},
|
||||
|
||||
// ── Internal ────────────────────────────────────────────────────────
|
||||
{
|
||||
key: "lastPage", type: "string", def: "home", group: "internal",
|
||||
|
||||
Reference in New Issue
Block a user