https://dev.gnupg.org/T6161
https://bugs.gentoo.org/819939
https://bugs.gentoo.org/837719
--- a/configure.ac
+++ b/configure.ac
@@ -508,8 +508,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],
@@ -519,18 +523,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],
@@ -540,7 +546,7 @@ if test "$have_w32_system" != "yes"; then
 			have_kf5waylandclient=no
 		]
 	)
-fi
+])
 
 dnl
 dnl Check for Qt5 pinentry program.
--- a/m4/qt.m4
+++ b/m4/qt.m4
@@ -33,6 +33,10 @@ AC_DEFUN([FIND_QT],
                 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_qt_cpp11="no";
 
@@ -63,20 +67,22 @@ AC_DEFUN([FIND_QT],
       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_QT_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
+        [have_qt5_x11extras="no"]
+     )
+    ])
+
+    AS_IF([test "$have_qt5_x11extras" = "yes"], [
         PINENTRY_QT_CFLAGS="$LIBX11_CFLAGS $PINENTRY_QT_CFLAGS $PINENTRY_QT_X11_EXTRAS_CFLAGS"
         PINENTRY_QT_LIBS="$LIBX11_LIBS $PINENTRY_QT_LIBS $PINENTRY_QT_X11_EXTRAS_LIBS"
-      fi
-    fi
+    ], [
+        AC_MSG_WARN([pinentry-qt will be built without Caps Lock warning on X11])
+    ])
 
     AC_CHECK_TOOL(MOC, moc)
     AC_MSG_CHECKING([moc version])
