#pragma once #include "common.hpp" #include #include #include namespace ZShell::config { class BarEntry : public ListEntry { CONFIG_NODE(BarEntry, ListEntry) }; class Popouts : public settings::ObjectNode { CONFIG_NODE(Popouts, settings::ObjectNode) CONFIG_PROPERTY(bool, statusIcons, true) CONFIG_PROPERTY(bool, tray, true) }; class Tray : public settings::ObjectNode { CONFIG_NODE(Tray, settings::ObjectNode) CONFIG_PROPERTY(bool, recolorIcons, false) CONFIG_PROPERTY(bool, showOnHover, true) CONFIG_PROPERTY(int, trayIconSize, 24) CONFIG_LIST( EntryList, statusIcons, DEFAULT_ARG({ LIST_ENTRY(audio, true), LIST_ENTRY(microphone, true), LIST_ENTRY(bluetooth, false), LIST_ENTRY(network, false), LIST_ENTRY(wifi, false), LIST_ENTRY(power, true), })) }; class Bar : public settings::ObjectNode { CONFIG_NODE(Bar, settings::ObjectNode) CONFIG_PROPERTY(bool, autoHide, false) CONFIG_PROPERTY(int, border, 4) CONFIG_PROPERTY(bool, fullscreenReveal, true) CONFIG_PROPERTY(int, height, 24) CONFIG_PROPERTY(bool, hideWhenNotif, true) CONFIG_SUBOBJECT(Popouts, popouts) CONFIG_PROPERTY(int, revealDelay, 100) CONFIG_PROPERTY(int, rounding, 14) CONFIG_PROPERTY(int, smoothing, 32) CONFIG_PROPERTY(QString, position, QStringLiteral("top")) CONFIG_SUBOBJECT(Tray, tray) CONFIG_LIST( EntryList, entries, DEFAULT_ARG({ LIST_ENTRY(workspaces, true), LIST_ENTRY(audio, true), LIST_ENTRY(media, true), LIST_ENTRY(resources, true), LIST_ENTRY(updates, true), LIST_ENTRY(dash, false), LIST_ENTRY(spacer, true), LIST_ENTRY(activeWindow, true), LIST_ENTRY(spacer, true), LIST_ENTRY(nightlight, true), LIST_ENTRY(tray, true), LIST_ENTRY(statusIcons, true), LIST_ENTRY(network, false), LIST_ENTRY(upower, true), LIST_ENTRY(clock, true), LIST_ENTRY(notifBell, true), }), .identityKey = QStringLiteral("id")) }; } // namespace ZShell::config