#pragma once #include "common.hpp" #include namespace ZShell::config { class Performance : public settings::ObjectNode { CONFIG_NODE(Performance, settings::ObjectNode) CONFIG_PROPERTY(bool, enabled, true) CONFIG_PROPERTY(bool, showBattery, false) CONFIG_PROPERTY(bool, showCpu, true) CONFIG_PROPERTY(bool, showGpu, true) CONFIG_PROPERTY(bool, showMemory, true) CONFIG_PROPERTY(bool, showNetwork, true) CONFIG_PROPERTY(bool, showStorage, true) CONFIG_PROPERTY(bool, showVram, true) }; class ProcessColumnEntry : public settings::ObjectNode { CONFIG_NODE(ProcessColumnEntry, settings::ObjectNode) CONFIG_PROPERTY(QString, id, {}) CONFIG_PROPERTY(double, width, 0) }; CONFIG_LIST_TYPE(ProcessColumnEntry, ProcessColumnList) class Dashboard : public settings::ObjectNode { CONFIG_NODE(Dashboard, settings::ObjectNode) CONFIG_PROPERTY(bool, enabled, true) CONFIG_PROPERTY(bool, showOnHover, true) CONFIG_PROPERTY(int, dragThreshold, 50) CONFIG_PROPERTY(int, mediaUpdateInterval, 2000) CONFIG_PROPERTY(bool, showWeather, true) CONFIG_PROPERTY(bool, showDashboard, true) CONFIG_PROPERTY(bool, showMedia, true) CONFIG_PROPERTY(bool, showProcesses, false) CONFIG_SUBOBJECT(Performance, performance) CONFIG_PROPERTY(int, resourceUpdateInterval, 1000) CONFIG_LIST( ProcessColumnList, processColumns, DEFAULT_ARG({ settings::vmap({{"id", "command"}}), settings::vmap({{"id", "pid"}}), settings::vmap({{"id", "cpuUsage"}}), settings::vmap({{"id", "memoryUsage"}}), })) }; } // namespace ZShell::config