summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
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;
+}