* feat: add gamer-mode plugin Live CPU, RAM, swap, GPU, VRAM, load and network readings in the bar and a panel, plus a one-click mode that suspends background resource hogs and restores exactly what it suspended. * chore: rebuild the thumbnail with the upstream generator Produced by assets.noctalia.dev/plugins/thumbnail-generator.html with the title, the Gaming tag, the panel screenshot and the Red accent, rather than composed by hand at the same dimensions. * fix(gamer-mode): write the session before suspending anything Enable suspended targets first and dropped the writeSnapshot return, so a failed write left processes frozen and units stopped with no record to restore them from, while the service published gamer mode as off and switched the power profile. The snapshot now lands on disk first, and a failed write aborts the enable with the machine untouched and an error notification. Writing first can record a target whose suspend command then failed. That direction is safe: thawing is unconditional and SIGCONT to a running process is a no-op, and a stop target restarts only after a live probe says it is still down.
112 lines
3.4 KiB
JSON
112 lines
3.4 KiB
JSON
{
|
|
"widget": {
|
|
"tooltip_loading": "Gamer Mode: loading metrics..."
|
|
},
|
|
"settings": {
|
|
"glyph": {
|
|
"label": "Bar icon",
|
|
"description": "Glyph shown on the bar."
|
|
},
|
|
"click_action": {
|
|
"label": "Left-click action",
|
|
"description": "What left-clicking the bar icon does. Right-click always toggles gamer mode.",
|
|
"options": {
|
|
"open_panel": "Open panel",
|
|
"toggle": "Toggle gamer mode"
|
|
}
|
|
},
|
|
"poll_interval": {
|
|
"label": "Poll interval",
|
|
"description": "Seconds between metric updates.",
|
|
"options": {
|
|
"2": "2s",
|
|
"3": "3s",
|
|
"5": "5s"
|
|
}
|
|
},
|
|
"profile": {
|
|
"label": "Gamer mode profile",
|
|
"description": "How aggressive the suspend list is.",
|
|
"options": {
|
|
"light": "Light",
|
|
"heavy": "Heavy"
|
|
}
|
|
},
|
|
"auto_performance": {
|
|
"label": "Auto performance profile",
|
|
"description": "Switch power profile to performance while gamer mode is on."
|
|
},
|
|
"show_temps": {
|
|
"label": "Show temperatures",
|
|
"description": "Include CPU/GPU temperatures in tooltip and panel."
|
|
},
|
|
"targets": {
|
|
"label": "Suspend targets (JSON)",
|
|
"description": "Advanced: JSON array of {match, kind, profiles}. Kind: process, user-service, system-service, container."
|
|
}
|
|
},
|
|
"panel": {
|
|
"close": "Close",
|
|
"disable": "Disable",
|
|
"enable": "Enable",
|
|
"frozen": "frozen",
|
|
"gpu_unsupported": "GPU metrics unsupported",
|
|
"load": "Load",
|
|
"metrics_unavailable": "System metrics unavailable",
|
|
"mode_profile": "Suspend profile",
|
|
"network": "Net",
|
|
"nothing_suspended": "Nothing suspended",
|
|
"performance": "Performance",
|
|
"power": {
|
|
"power-saver": "Power saver",
|
|
"balanced": "Balanced",
|
|
"performance": "Performance"
|
|
},
|
|
"power_profile": "Power profile",
|
|
"power_unavailable": "powerprofilesctl unavailable",
|
|
"profiles": {
|
|
"light": "Light",
|
|
"heavy": "Heavy"
|
|
},
|
|
"settings": "Settings",
|
|
"state_off": "Off",
|
|
"state_on": "Running",
|
|
"stopped": "stopped",
|
|
"suspended": "Suspended",
|
|
"title": "gamer-mode",
|
|
"working": "Working..."
|
|
},
|
|
"notify": {
|
|
"enabled_title": "Gamer mode enabled",
|
|
"disabled_title": "Gamer mode disabled",
|
|
"suspended_count": {
|
|
"one": "Suspended 1 target.",
|
|
"other": "Suspended {count} targets."
|
|
},
|
|
"restored_count": {
|
|
"one": "Restored 1 target.",
|
|
"other": "Restored {count} targets."
|
|
},
|
|
"nothing_suspended": "No background targets were running.",
|
|
"nothing_restored": "Nothing needed restarting.",
|
|
"session_failed_title": "Gamer mode could not start",
|
|
"session_failed": "The session file could not be written, so nothing was suspended."
|
|
},
|
|
"cleanup": {
|
|
"title": "Maintenance",
|
|
"shaders": "Clear shader caches",
|
|
"shaders_confirm": "Delete {size}?",
|
|
"pagecache": "Drop page cache",
|
|
"swap": "Reclaim swap",
|
|
"running": "Working...",
|
|
"shaders_done": "Cleared {size} of shader cache.",
|
|
"shaders_none": "No shader caches found.",
|
|
"pagecache_done": "Page cache dropped.",
|
|
"swap_done": "Swap reclaimed into RAM.",
|
|
"swap_empty": "Nothing is swapped out.",
|
|
"swap_unknown": "Swap usage could not be read.",
|
|
"swap_no_room": "Not enough free RAM to hold what is swapped out.",
|
|
"failed": "That did not work. See the log."
|
|
}
|
|
}
|