diff --git a/include/Cubed/tools/system_window_manager.hpp b/include/Cubed/tools/system_window_manager.hpp index a573504..7251ac3 100644 --- a/include/Cubed/tools/system_window_manager.hpp +++ b/include/Cubed/tools/system_window_manager.hpp @@ -5,40 +5,23 @@ #include #include namespace Cubed { -enum class WindowManager { WINDOWS, UNKNOWN, NIRI, SWAY, HYPRLAND, KDE, GNOME }; namespace Tools { -inline WindowManager detect_wm() { +inline std::string detect_wm() { #ifdef _WIN32 - return WindowManager::WINDOWS; + return "Windows"; #endif #ifdef __linux__ const char* desktop = getenv("XDG_CURRENT_DESKTOP"); - - if (!desktop) - return WindowManager::UNKNOWN; - Logger::info("XDG_CURRENT_DESKTOP {}", desktop); - std::string wm(desktop); - - if (wm.find("niri") != std::string::npos) - return WindowManager::NIRI; - - if (wm.find("sway") != std::string::npos) - return WindowManager::SWAY; - - if (wm.find("Hyprland") != std::string::npos) - return WindowManager::HYPRLAND; - - if (wm.find("KDE") != std::string::npos) - return WindowManager::KDE; - - if (wm.find("GNOME") != std::string::npos) - return WindowManager::GNOME; - + if (!desktop) { + return "Unknown"; + } + Logger::info("XDG_CURRENT_DESKTOP: {}", desktop); + return std::string(desktop); #endif - return WindowManager::UNKNOWN; + return "Unknown"; } } // namespace Tools diff --git a/src/debug_collector.cpp b/src/debug_collector.cpp index ef251d6..9ed43a5 100644 --- a/src/debug_collector.cpp +++ b/src/debug_collector.cpp @@ -1,6 +1,7 @@ #include "Cubed/debug_collector.hpp" #include "Cubed/tools/system_info.hpp" +#include "Cubed/tools/system_window_manager.hpp" #include "version.hpp" #include @@ -72,7 +73,12 @@ void DebugCollector::init(int width, int height) { } else { os_text.set_text("OS: Unknown"); } - + { + std::string wm{"WM: "}; + wm.append(Tools::detect_wm()); + auto& wm_label = m_widget.add_child