diff options
| author | vaxerski <vaxry@vaxry.net> | 2025-08-14 17:13:15 +0200 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2025-08-14 17:13:23 +0200 |
| commit | 60d769a89908c29e19100059985db15a7b6bab6a (patch) | |
| tree | 229917a04ef34954bca5c816d21502bc98922d8e /src/Compositor.cpp | |
| parent | beee22a95ed9044950e5486f22edd813e00ffa2c (diff) | |
internal: unify VT getting
Diffstat (limited to 'src/Compositor.cpp')
| -rw-r--r-- | src/Compositor.cpp | 21 |
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; +} |
