diff options
| author | xDarksome <dev@darkso.me> | 2022-06-26 19:20:20 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-26 19:20:20 +0300 |
| commit | 504f76112aec3625f2d67f9289a48a01bc90cb50 (patch) | |
| tree | f3a4c5176a2d8f1954a7632b542f829e994c8529 /src/helpers | |
| parent | be460ea9547691eb136bf8b600b67b778af47e3f (diff) | |
| parent | f1a5cb4979f312f56967888c2b1b6d2aa535bb9e (diff) | |
Merge branch 'hyprwm:main' into main
Diffstat (limited to 'src/helpers')
| -rw-r--r-- | src/helpers/MiscFunctions.cpp | 32 | ||||
| -rw-r--r-- | src/helpers/MiscFunctions.hpp | 2 | ||||
| -rw-r--r-- | src/helpers/Timer.cpp | 17 | ||||
| -rw-r--r-- | src/helpers/Timer.hpp | 15 | ||||
| -rw-r--r-- | src/helpers/WLClasses.hpp | 2 |
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; |
