#pragma once #include "common.hpp" #include #include namespace ZShell::config { class BatteryThresholdEntry : public settings::ObjectNode { CONFIG_NODE(BatteryThresholdEntry, settings::ObjectNode) CONFIG_PROPERTY(QString, icon, {}) CONFIG_PROPERTY(QString, message, {}) CONFIG_PROPERTY(QString, name, {}) CONFIG_PROPERTY(int, perc, {}) }; CONFIG_LIST_TYPE(BatteryThresholdEntry, BatteryThresholdList) class IdleTimeoutEntry : public settings::ObjectNode { CONFIG_NODE(IdleTimeoutEntry, settings::ObjectNode) CONFIG_PROPERTY(QString, idleAction, {}) CONFIG_PROPERTY(QString, name, {}) CONFIG_PROPERTY(int, timeout, {}) }; CONFIG_LIST_TYPE(IdleTimeoutEntry, IdleTimeoutList) class Apps : public settings::ObjectNode { CONFIG_NODE(Apps, settings::ObjectNode) CONFIG_PROPERTY(QStringList, archiver, {QStringLiteral("ark")}) CONFIG_PROPERTY(QStringList, audio, {QStringLiteral("pavucontrol")}) CONFIG_PROPERTY(QStringList, document, {QStringLiteral("libreoffice")}) CONFIG_PROPERTY(QStringList, editor, {QStringLiteral("kate")}) CONFIG_PROPERTY(QStringList, explorer, {QStringLiteral("dolphin")}) CONFIG_PROPERTY(QStringList, image, {QStringLiteral("imv")}) CONFIG_PROPERTY(QStringList, playback, {QStringLiteral("vlc")}) CONFIG_PROPERTY(QStringList, terminal, {QStringLiteral("wezterm")}) }; class Battery : public settings::ObjectNode { CONFIG_NODE(Battery, settings::ObjectNode) CONFIG_PROPERTY(int, critPerc, 5) CONFIG_LIST( BatteryThresholdList, popupThresholds, DEFAULT_ARG({ settings::vmap( {{"icon", "battery_android_frame_2"}, {"message", "Battery low"}, {"name", "Low battery"}, {"perc", 20}}), settings::vmap( {{"icon", "battery_android_frame_2"}, {"message", "Battery lower"}, {"name", "Low battery"}, {"perc", 15}}), settings::vmap( {{"icon", "battery_android_frame_2"}, {"message", "Battery lowest"}, {"name", "Low battery"}, {"perc", 10}}), })) }; class Idle : public settings::ObjectNode { CONFIG_NODE(Idle, settings::ObjectNode) CONFIG_LIST( IdleTimeoutList, timeouts, DEFAULT_ARG({ settings::vmap( {{"idleAction", QStringLiteral("lock")}, {"name", QStringLiteral("Lock")}, {"timeout", 180}}), })) }; class General : public settings::ObjectNode { CONFIG_NODE(General, settings::ObjectNode) CONFIG_SUBOBJECT(Apps, apps) CONFIG_SUBOBJECT(Battery, battery) CONFIG_PROPERTY(QString, dateFormat, QStringLiteral("ddd d MMM - hh:mm:ss")) CONFIG_PROPERTY(bool, desktopIcons, true) CONFIG_SUBOBJECT(Idle, idle) CONFIG_PROPERTY( QString, lyricsDir, QStandardPaths::writableLocation(QStandardPaths::MusicLocation) + QStringLiteral("/Lyrics/")) CONFIG_PROPERTY(QString, logo, QString()) CONFIG_PROPERTY(bool, showOverFullscreen, true) CONFIG_PROPERTY( QString, wallpaperPath, QStringLiteral("/mnt/IronWolf/SDImages/SWWW_Wals/")) }; } // namespace ZShell::config