Files
z-bar-qt/Plugins/ZShell/Config/general.hpp
T

104 lines
2.9 KiB
C++

#pragma once
#include "common.hpp"
#include <QStandardPaths>
#include <QStringList>
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