https://dev.gnupg.org/T6161
https://bugs.gentoo.org/819939
https://bugs.gentoo.org/837719
--- a/configure.ac
+++ b/configure.ac
@@ -514,8 +514,12 @@ fi
 dnl
 dnl Check for libX11 library
 dnl
+AC_ARG_WITH(x,
+        AS_HELP_STRING([--with-x],[use libX11]),
+        [want_x11=$withval], [want_x11=maybe])
+
 have_x11=no
-if test "$have_w32_system" != "yes"; then
+AS_IF([test "$have_w32_system" != "yes" && test "$want_x11" != "no"], [
 	PKG_CHECK_MODULES(
 		LIBX11,
 		[x11],
@@ -525,18 +529,20 @@ if test "$have_w32_system" != "yes"; then
 			have_x11=no
 		]
 	)
+])
 
-	if test "$have_x11" = "yes"; then
-		AC_DEFINE(HAVE_X11, 1,
-			[The pinentries can optionally use x11.])
-	fi
-fi
+AS_IF([test "$have_x11" = "yes"], [AC_DEFINE(HAVE_X11, 1, [The pinentries can optionally use x11.])])
 
 dnl
 dnl Check for KF5WaylandClient library
 dnl
+
+AC_ARG_ENABLE(kf5-wayland,
+	AS_HELP_STRING([--enable-kf5-wayland],[use KF5WaylandClient for capslock indication on Wayland]),
+	[want_kf5_wayland=$enableval], [want_kf5_wayland=maybe])
+
 have_kf5waylandclient=no
-if test "$have_w32_system" != "yes"; then
+AS_IF([test "$have_w32_system" != "yes" && test "$want_kf5_wayland" != "no"], [
 	PKG_CHECK_MODULES(
 		KF5WAYLANDCLIENT,
 		[KF5WaylandClient >= 5.60],
@@ -546,13 +552,18 @@ if test "$have_w32_system" != "yes"; then
 			have_kf5waylandclient=no
 		]
 	)
-fi
+])
 
 dnl
 dnl Check for KF6GuiAddons library
 dnl
+
+AC_ARG_ENABLE(kf6-wayland,
+        AS_HELP_STRING([--enable-kf6-wayland],[use KF6GuiAddons for capslock indication and KF6WindowSystem for window parenting on Wayland]),
+        [want_kf6_wayland=$enableval], [want_kf6_wayland=maybe])
+
 have_kf6guiaddons=no
-if test "$have_w32_system" != "yes"; then
+AS_IF([test "$have_w32_system" != "yes" && test "$want_kf6_wayland" != "no"], [
 	PKG_CHECK_MODULES(
 		KF6GUIADDONS,
 		[KF6GuiAddons >= 5.240],
@@ -562,7 +573,7 @@ if test "$have_w32_system" != "yes"; then
 			have_kf6guiaddons=no
 		]
 	)
-fi
+])
 
 dnl
 dnl Check for Qt5 pinentry program.
@@ -663,7 +674,8 @@ dnl
 dnl Check for KF6WindowSystem library
 dnl
 have_kf6windowsystem=no
-if test "$have_w32_system" != "yes" && test "$pinentry_qt6" = "yes"; then
+
+AS_IF([test "$have_w32_system" != "yes" && test "$want_kf6_wayland" != "no"], [
 	PKG_CHECK_MODULES(
 		KF6WINDOWSYSTEM,
 		[KF6WindowSystem >= 5.240],
@@ -673,7 +685,7 @@ if test "$have_w32_system" != "yes" && test "$pinentry_qt6" = "yes"; then
 			have_kf6windowsystem=no
 		]
 	)
-fi
+])
 
 if test "$have_kf6windowsystem" = "yes"; then
   PINENTRY_QT6_CFLAGS="$KF6WINDOWSYSTEM_CFLAGS $PINENTRY_QT6_CFLAGS"
--- a/m4/qt5.m4
+++ b/m4/qt5.m4
@@ -33,6 +33,10 @@ AC_DEFUN([FIND_QT5],
                 enable_pinentry_qt5=$enableval,
                 enable_pinentry_qt5="try")
 
+  AC_ARG_ENABLE(qtx11extras,
+                AS_HELP_STRING([--enable-qtx11extras],[use Qt5X11Extras for capslock indication on X11]),
+        [want_qtx11extras=$enableval], [want_qtx11extras=maybe])
+
   have_qt5_libs="no";
   require_qt5_cpp11="no";
 
@@ -63,20 +67,22 @@ AC_DEFUN([FIND_QT5],
       fi
     fi
 
-    if test "$have_x11" = "yes"; then
+    have_qt5_x11extras=no
+    AS_IF([test "$have_x11" = "yes" && test "$want_qtx11extras" != "no"], [
       PKG_CHECK_MODULES(
         PINENTRY_QT5_X11_EXTRAS,
         Qt5X11Extras >= 5.1.0,
         [have_qt5_x11extras="yes"],
-        [
-          AC_MSG_WARN([pinentry-qt will be built without Caps Lock warning on X11])
-          have_qt5_x11extras="no"
-        ])
-      if test "$have_qt5_x11extras" = "yes"; then
-        PINENTRY_QT5_CFLAGS="$LIBX11_CFLAGS $PINENTRY_QT5_CFLAGS $PINENTRY_QT5_X11_EXTRAS_CFLAGS"
-        PINENTRY_QT5_LIBS="$LIBX11_LIBS $PINENTRY_QT5_LIBS $PINENTRY_QT5_X11_EXTRAS_LIBS"
-      fi
-    fi
+        [have_qt5_x11extras="no"]
+     )
+    ])
+
+    AS_IF([test "$have_qt5_x11extras" = "yes"], [
+         PINENTRY_QT5_CFLAGS="$LIBX11_CFLAGS $PINENTRY_QT5_CFLAGS $PINENTRY_QT5_X11_EXTRAS_CFLAGS"
+         PINENTRY_QT5_LIBS="$LIBX11_LIBS $PINENTRY_QT5_LIBS $PINENTRY_QT5_X11_EXTRAS_LIBS"
+    ], [
+        AC_MSG_WARN([pinentry-qt will be built without Caps Lock warning on X11])
+    ])
 
     AC_CHECK_TOOL(MOC5, moc)
     AC_MSG_CHECKING([moc version])
