aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/debug/HyprCtl.cpp11
-rw-r--r--src/debug/HyprCtl.hpp3
-rw-r--r--src/main.cpp5
3 files changed, 15 insertions, 4 deletions
diff --git a/src/debug/HyprCtl.cpp b/src/debug/HyprCtl.cpp
index 178e9ba8..0229a803 100644
--- a/src/debug/HyprCtl.cpp
+++ b/src/debug/HyprCtl.cpp
@@ -943,11 +943,14 @@ std::string systemInfoRequest(eHyprCtlOutputFormat format, std::string request)
result += "os-release: " + execAndGet("cat /etc/os-release") + "\n\n";
result += "plugins:\n";
- for (auto const& pl : g_pPluginSystem->getAllPlugins()) {
- result += std::format(" {} by {} ver {}\n", pl->name, pl->author, pl->version);
- }
+ if (g_pPluginSystem) {
+ for (auto const& pl : g_pPluginSystem->getAllPlugins()) {
+ result += std::format(" {} by {} ver {}\n", pl->name, pl->author, pl->version);
+ }
+ } else
+ result += "\tunknown: not runtime\n";
- if (g_pHyprCtl->m_sCurrentRequestParams.sysInfoConfig) {
+ if (g_pHyprCtl && g_pHyprCtl->m_sCurrentRequestParams.sysInfoConfig) {
result += "\n======Config-Start======\n";
result += g_pConfigManager->getConfigString();
result += "\n======Config-End========\n";
diff --git a/src/debug/HyprCtl.hpp b/src/debug/HyprCtl.hpp
index cbacd7cb..d68bf14f 100644
--- a/src/debug/HyprCtl.hpp
+++ b/src/debug/HyprCtl.hpp
@@ -5,6 +5,9 @@
#include "../helpers/MiscFunctions.hpp"
#include <functional>
+// exposed for main.cpp
+std::string systemInfoRequest(eHyprCtlOutputFormat format, std::string request);
+
class CHyprCtl {
public:
CHyprCtl();
diff --git a/src/main.cpp b/src/main.cpp
index ba6fe505..279e1ce1 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -3,6 +3,7 @@
#include "Compositor.hpp"
#include "config/ConfigManager.hpp"
#include "init/initHelpers.hpp"
+#include "debug/HyprCtl.hpp"
#include <hyprutils/string/String.hpp>
using namespace Hyprutils::String;
@@ -133,6 +134,10 @@ int main(int argc, char** argv) {
std::cout << result;
return 0;
+ } else if (it->compare("--systeminfo") == 0) {
+ const auto SYSINFO = systemInfoRequest(eHyprCtlOutputFormat::FORMAT_NORMAL, "");
+ std::cout << SYSINFO << "\n";
+ return 0;
} else {
std::cerr << "[ ERROR ] Unknown option '" << it->c_str() << "'!\n";
help();