summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.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/managers/KeybindManager.cpp
parentbeee22a95ed9044950e5486f22edd813e00ffa2c (diff)
internal: unify VT getting
Diffstat (limited to 'src/managers/KeybindManager.cpp')
-rw-r--r--src/managers/KeybindManager.cpp19
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);
}