From 958c3f5a2ea8b6c54f289b00a731680dd3341145 Mon Sep 17 00:00:00 2001 From: SASANO Takayoshi Date: Tue, 12 May 2026 23:44:12 +0900 Subject: [PATCH] feat: add search evdev.xml path for NetBSD/OpenBSD --- src/lib/deskflow/unix/AppUtilUnix.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/lib/deskflow/unix/AppUtilUnix.cpp b/src/lib/deskflow/unix/AppUtilUnix.cpp index d426e042b..053c2aaf8 100644 --- a/src/lib/deskflow/unix/AppUtilUnix.cpp +++ b/src/lib/deskflow/unix/AppUtilUnix.cpp @@ -46,9 +46,15 @@ std::vector AppUtilUnix::getKeyboardLayoutList() #if WINAPI_XWINDOWS // Check /usr/local first used on bsd and some systems - m_evdev = "/usr/local/share/X11/xkb/rules/evdev.xml"; - if (!std::filesystem::exists(m_evdev)) - m_evdev = "/usr/share/X11/xkb/rules/evdev.xml"; + std::vector evdev_candidate = { + "/usr/share/X11/xkb/rules/evdev.xml", // Linux + "/usr/local/share/X11/xkb/rules/evdev.xml", // FreeBSD, DragonFlyBSD + "/usr/X11R7/lib/X11/xkb/rules/evdev.xml", // NetBSD + "/usr/X11R6/share/X11/xkb/rules/evdev.xml", // OpenBSD + }; + + for (auto it = evdev_candidate.begin(); it != evdev_candidate.end() && !std::filesystem::exists(m_evdev = *it); it++) + ; layoutLangCodes = X11LayoutsParser::getX11LanguageList(m_evdev); #elif defined(Q_OS_MAC)