summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2025-08-14 17:13:15 +0200
committervaxerski <vaxry@vaxry.net>2025-08-14 17:13:23 +0200
commit60d769a89908c29e19100059985db15a7b6bab6a (patch)
tree229917a04ef34954bca5c816d21502bc98922d8e /src/Compositor.cpp
parentbeee22a95ed9044950e5486f22edd813e00ffa2c (diff)
internal: unify VT getting
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 8f9a64ec..7b6a9e08 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -3213,3 +3213,24 @@ void CCompositor::ensurePersistentWorkspacesPresent(const std::vector<SWorkspace
}
}
}
+
+std::optional<unsigned int> CCompositor::getVTNr() {
+ if (!m_aqBackend->hasSession())
+ return std::nullopt;
+
+ unsigned int ttynum = 0;
+ Hyprutils::OS::CFileDescriptor fd{open("/dev/tty", O_RDONLY | O_NOCTTY)};
+ if (fd.isValid()) {
+#if defined(VT_GETSTATE)
+ struct vt_stat st;
+ if (!ioctl(fd.get(), VT_GETSTATE, &st))
+ ttynum = st.v_active;
+#elif defined(VT_GETACTIVE)
+ int vt;
+ if (!ioctl(fd.get(), VT_GETACTIVE, &vt))
+ ttynum = vt;
+#endif
+ }
+
+ return ttynum;
+}