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/managers/KeybindManager.cpp | |
| parent | beee22a95ed9044950e5486f22edd813e00ffa2c (diff) | |
internal: unify VT getting
Diffstat (limited to 'src/managers/KeybindManager.cpp')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index bb1222ad..5f3aac1c 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -875,25 +875,12 @@ bool CKeybindManager::handleVT(xkb_keysym_t keysym) { if (g_pCompositor->m_aqBackend->hasSession()) { const unsigned int TTY = keysym - XKB_KEY_XF86Switch_VT_1 + 1; - // vtnr is bugged for some reason. - 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 - } + const auto CURRENT_TTY = g_pCompositor->getVTNr(); - if (ttynum == TTY) + if (!CURRENT_TTY.has_value() || *CURRENT_TTY == TTY) return true; - Debug::log(LOG, "Switching from VT {} to VT {}", ttynum, TTY); + Debug::log(LOG, "Switching from VT {} to VT {}", *CURRENT_TTY, TTY); g_pCompositor->m_aqBackend->session->switchVT(TTY); } |
