#pragma once #include #include #include #include #include #include #include using IntValue = Config::Values::CIntValue; using BoolValue = Config::Values::CBoolValue; using ColorValue = Config::Values::CColorValue; // Accepts the same syntax as Hyprland's own general:col.* values - a single // color, or several plus an optional trailing angle ("... 45deg"). using GradientValue = Config::Values::CGradientValue; using StringValue = Config::Values::CStringValue; // Hyprland's raw color ints (and CHyprColor(uint64_t)) are AARRGGBB, but // literals are easier to read/write as the more common RRGGBBAA. Convert so // config defaults can be written in that order. constexpr uint64_t RGBAToARGB(uint64_t rgba) { const uint64_t r = (rgba >> 24) & 0xFF; const uint64_t g = (rgba >> 16) & 0xFF; const uint64_t b = (rgba >> 8) & 0xFF; const uint64_t a = rgba & 0xFF; return (a << 24) | (r << 16) | (g << 8) | b; }