summaryrefslogtreecommitdiff
path: root/src/helpers/Monitor.cpp
diff options
context:
space:
mode:
authorJacob Birkett <jacob@birkett.dev>2024-02-15 07:22:20 -0700
committerGitHub <noreply@github.com>2024-02-15 14:22:20 +0000
commita8dae8f5e198327e5de8508d860234089f31e272 (patch)
treededd70312674fd4c6b963130dfc20340f62bb5c3 /src/helpers/Monitor.cpp
parenta42b984f51a00e88a13a45e1b5e9e3d4ec470254 (diff)
socket2: `monitoraddedv2` IPC event for monitor description and id (#4646)
* add monitor szShortDescription without DRM node name * change hyprctl to use szShortDescription * add monitoraddedv2 event * add monitor ID as first param of monitoraddedv2
Diffstat (limited to 'src/helpers/Monitor.cpp')
-rw-r--r--src/helpers/Monitor.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp
index cb69318f..08ccb05d 100644
--- a/src/helpers/Monitor.cpp
+++ b/src/helpers/Monitor.cpp
@@ -1,5 +1,7 @@
#include "Monitor.hpp"
+#include "MiscFunctions.hpp"
+
#include "../Compositor.hpp"
int ratHandler(void* data) {
@@ -54,6 +56,10 @@ void CMonitor::onConnect(bool noRule) {
// remove comma character from description. This allow monitor specific rules to work on monitor with comma on their description
szDescription.erase(std::remove(szDescription.begin(), szDescription.end(), ','), szDescription.end());
+ // field is backwards-compatible with intended usage of `szDescription` but excludes the parenthesized DRM node name suffix
+ szShortDescription =
+ removeBeginEndSpacesTabs(std::format("{} {} {}", output->make ? output->make : "", output->model ? output->model : "", output->serial ? output->serial : ""));
+
if (!wlr_backend_is_drm(output->backend))
createdByUser = true; // should be true. WL, X11 and Headless backends should be addable / removable
@@ -163,6 +169,7 @@ void CMonitor::onConnect(bool noRule) {
//
g_pEventManager->postEvent(SHyprIPCEvent{"monitoradded", szName});
+ g_pEventManager->postEvent(SHyprIPCEvent{"monitoraddedv2", std::format("{},{},{}", ID, szName, szShortDescription)});
EMIT_HOOK_EVENT("monitorAdded", this);
if (!g_pCompositor->m_pLastMonitor) // set the last monitor if it isnt set yet