--- -	2025-08-06 02:43:33
+++ xorg-server/Portfile	2025-10-23 11:02:52
@@ -83,6 +83,14 @@
 # doesn't complain about subdirectory *.in replacement files usage.
 patchfiles-append 2001-enable-automake-subdir-objects.patch
 
+# LSUIPresentationMode -> UIPresentationMode mapping became wonky at
+# some point. Use NSPresentation* directly to set a kiosk mode which auto
+# shows/hides menubar, dock, etc. At some point after Monterey
+# NSApp.mainMenu.menuBarHeight reported the height of the menubar should
+# it appear even if it was hidden.
+# https://github.com/XQuartz/XQuartz/issues/430
+patchfiles-append kiosk.diff
+
 patch.pre_args-replace  -p0 -p1
 
 use_autoreconf yes
@@ -99,10 +107,10 @@
 }
 
 platform macosx {
-    if {${os.major} < 15} {
+    if {${os.major} < 22} {
         known_fail  yes
         pre-fetch {
-            ui_error "$name requires macOS 10.11 or later. Please use the xorg-server-legacy port instead."
+            ui_error "$name requires macOS 13 or later. Please use the xorg-server-legacy port instead."
             error "unsupported OS version"
         }
     }
--- -	2025-10-23 14:16:18
+++ xorg-server/files/kiosk.diff	2025-10-22 17:05:05
@@ -0,0 +1,29 @@
+--- -	2021-04-23 04:21:24
++++ XQuartz-xorg-server-93a0f39/hw/xquartz/bundle/Info.plist.cpp	2025-10-22 16:47:20
+@@ -38,6 +38,10 @@
+ #endif
+ 	<key>LSApplicationCategoryType</key>
+ 		<string>public.app-category.utilities</string>
++	<key>UIPresentationMode</key>
++		<string>Suppressed</string>
++	<key>UIPresentationOptions</key>
++		<integer>3077</integer>
+ 	<key>NSHumanReadableCopyright</key>
+ 		<string>© 2003-2021 Apple Inc.
+ © 2003 XFree86 Project, Inc.
+--- -	2021-04-23 04:21:24
++++ XQuartz-xorg-server-93a0f39/hw/xquartz/X11Application.m	2025-10-22 16:50:13
+@@ -1151,13 +1151,6 @@
+          */
+         QuartzModeBundleInit();
+ 
+-        /* Calculate the height of the menubar so we can avoid it. */
+-        aquaMenuBarHeight = NSApp.mainMenu.menuBarHeight;
+-        if (!aquaMenuBarHeight) {
+-            NSScreen* primaryScreen = NSScreen.screens[0];
+-            aquaMenuBarHeight = NSHeight(primaryScreen.frame) - NSMaxY(primaryScreen.visibleFrame);
+-        }
+-
+         eventTranslationQueue = dispatch_queue_create(BUNDLE_ID_PREFIX ".X11.NSEventsToX11EventsQueue", NULL);
+         assert(eventTranslationQueue != NULL);
+ 
