summaryrefslogtreecommitdiff
path: root/src/helpers
diff options
context:
space:
mode:
authorxDarksome <dev@darkso.me>2022-06-26 19:20:20 +0300
committerGitHub <noreply@github.com>2022-06-26 19:20:20 +0300
commit504f76112aec3625f2d67f9289a48a01bc90cb50 (patch)
treef3a4c5176a2d8f1954a7632b542f829e994c8529 /src/helpers
parentbe460ea9547691eb136bf8b600b67b778af47e3f (diff)
parentf1a5cb4979f312f56967888c2b1b6d2aa535bb9e (diff)
Merge branch 'hyprwm:main' into main
Diffstat (limited to 'src/helpers')
-rw-r--r--src/helpers/MiscFunctions.cpp32
-rw-r--r--src/helpers/MiscFunctions.hpp2
-rw-r--r--src/helpers/Timer.cpp17
-rw-r--r--src/helpers/Timer.hpp15
-rw-r--r--src/helpers/WLClasses.hpp2
5 files changed, 68 insertions, 0 deletions
diff --git a/src/helpers/MiscFunctions.cpp b/src/helpers/MiscFunctions.cpp
index 55b0ec83..ce9dd788 100644
--- a/src/helpers/MiscFunctions.cpp
+++ b/src/helpers/MiscFunctions.cpp
@@ -2,6 +2,7 @@
#include "../defines.hpp"
#include <algorithm>
#include "../Compositor.hpp"
+#include <sys/utsname.h>
void addWLSignal(wl_signal* pSignal, wl_listener* pListener, void* pOwner, std::string ownerString) {
ASSERT(pSignal);
@@ -232,4 +233,35 @@ float vecToRectDistanceSquared(const Vector2D& vec, const Vector2D& p1, const Ve
const float DX = std::max((double)0, std::max(p1.x - vec.x, vec.x - p2.x));
const float DY = std::max((double)0, std::max(p1.y - vec.y, vec.y - p2.y));
return DX * DX + DY * DY;
+}
+
+// Execute a shell command and get the output
+std::string execAndGet(const char* cmd) {
+ std::array<char, 128> buffer;
+ std::string result;
+ const std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose);
+ if (!pipe) {
+ Debug::log(ERR, "execAndGet: failed in pipe");
+ return "";
+ }
+ while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) {
+ result += buffer.data();
+ }
+ return result;
+}
+
+void logSystemInfo() {
+ struct utsname unameInfo;
+
+ uname(&unameInfo);
+
+ Debug::log(LOG, "System name: %s", unameInfo.sysname);
+ Debug::log(LOG, "Node name: %s", unameInfo.nodename);
+ Debug::log(LOG, "Release: %s", unameInfo.release);
+ Debug::log(LOG, "Version: %s", unameInfo.version);
+
+ // log etc
+ Debug::log(LOG, "os-release:");
+
+ Debug::log(NONE, "%s", execAndGet("cat /etc/os-release").c_str());
} \ No newline at end of file
diff --git a/src/helpers/MiscFunctions.hpp b/src/helpers/MiscFunctions.hpp
index eed3670d..8470eb81 100644
--- a/src/helpers/MiscFunctions.hpp
+++ b/src/helpers/MiscFunctions.hpp
@@ -11,5 +11,7 @@ bool isNumber(const std::string&);
bool isDirection(const std::string&);
int getWorkspaceIDFromString(const std::string&, std::string&);
float vecToRectDistanceSquared(const Vector2D& vec, const Vector2D& p1, const Vector2D& p2);
+void logSystemInfo();
+std::string execAndGet(const char*);
float getPlusMinusKeywordResult(std::string in, float relative); \ No newline at end of file
diff --git a/src/helpers/Timer.cpp b/src/helpers/Timer.cpp
new file mode 100644
index 00000000..33162d30
--- /dev/null
+++ b/src/helpers/Timer.cpp
@@ -0,0 +1,17 @@
+#include "Timer.hpp"
+
+void CTimer::reset() {
+ m_tpLastReset = std::chrono::system_clock::now();
+}
+
+std::chrono::system_clock::duration CTimer::getDuration() {
+ return std::chrono::system_clock::now() - m_tpLastReset;
+}
+
+int CTimer::getMillis() {
+ return std::chrono::duration_cast<std::chrono::milliseconds>(getDuration()).count();
+}
+
+float CTimer::getSeconds() {
+ return std::chrono::duration_cast<std::chrono::milliseconds>(getDuration()).count() / 1000.f;
+} \ No newline at end of file
diff --git a/src/helpers/Timer.hpp b/src/helpers/Timer.hpp
new file mode 100644
index 00000000..2e8d6adc
--- /dev/null
+++ b/src/helpers/Timer.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "../defines.hpp"
+
+class CTimer {
+public:
+ void reset();
+ float getSeconds();
+ int getMillis();
+
+private:
+ std::chrono::system_clock::time_point m_tpLastReset;
+
+ std::chrono::system_clock::duration getDuration();
+}; \ No newline at end of file
diff --git a/src/helpers/WLClasses.hpp b/src/helpers/WLClasses.hpp
index 2a2d3c93..d6282224 100644
--- a/src/helpers/WLClasses.hpp
+++ b/src/helpers/WLClasses.hpp
@@ -71,6 +71,8 @@ struct SKeyboard {
bool active = false;
+ xkb_rule_names currentRules;
+
// For the list lookup
bool operator==(const SKeyboard& rhs) {
return keyboard == rhs.keyboard;