diff options
author | Jeremy Huddleston Sequoia <jeremyhu@apple.com> | 2022-11-24 10:58:26 -0800 |
---|---|---|
committer | Jeremy Huddleston Sequoia <jeremyhu@apple.com> | 2022-11-24 11:38:42 -0800 |
commit | 3dee0aac2c0ed4538880b65ee528e4633d103592 (patch) | |
tree | 948bb16165c04cba75742409593863a5b5a2b308 | |
parent | 5d302c378d9d21b34db2434425b766ac4f05de89 (diff) | |
download | xserver-3dee0aac2c0ed4538880b65ee528e4633d103592.tar.gz |
xquartz: Move default applications list outside of the main executable
This will allow side-wide customization.
Fixes: https://github.com/XQuartz/XQuartz/issues/274
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
(cherry picked from commit e654de80ed560c480efc072d876808b1d78da052)
-rw-r--r-- | hw/xquartz/Makefile.am | 2 | ||||
-rw-r--r-- | hw/xquartz/NSUserDefaults+XQuartzDefaults.m | 9 | ||||
-rw-r--r-- | hw/xquartz/defaults.plist | 17 | ||||
-rw-r--r-- | hw/xquartz/meson.build | 6 | ||||
-rw-r--r-- | hw/xquartz/pbproxy/Makefile.am | 2 | ||||
-rw-r--r-- | hw/xquartz/pbproxy/meson.build | 5 |
6 files changed, 34 insertions, 7 deletions
diff --git a/hw/xquartz/Makefile.am b/hw/xquartz/Makefile.am index 9c9311917..9db38c403 100644 --- a/hw/xquartz/Makefile.am +++ b/hw/xquartz/Makefile.am @@ -2,6 +2,7 @@ noinst_LTLIBRARIES = libXquartz.la AM_CFLAGS = $(DIX_CFLAGS) AM_OBJCFLAGS = $(DIX_CFLAGS) AM_CPPFLAGS = \ + -DXQUARTZ_DATA_DIR=\"$(datadir)/X11/XQuartz\" \ -DXSERVER_VERSION=\"$(VERSION)\" \ -DBUNDLE_ID_PREFIX=\"$(BUNDLE_ID_PREFIX)\" \ -DUSE_NEW_CLUT \ @@ -44,6 +45,7 @@ EXTRA_DIST = \ darwin.h \ darwinfb.h \ darwinEvents.h \ + defaults.plist \ keysym2ucs.h \ quartz.h \ quartzKeyboard.h \ diff --git a/hw/xquartz/NSUserDefaults+XQuartzDefaults.m b/hw/xquartz/NSUserDefaults+XQuartzDefaults.m index bd5dd2305..ecc192197 100644 --- a/hw/xquartz/NSUserDefaults+XQuartzDefaults.m +++ b/hw/xquartz/NSUserDefaults+XQuartzDefaults.m @@ -96,10 +96,6 @@ NSString * const XQuartzPrefKeySyncPrimaryOnSelect = @"sync_primary_on_select"; defaults = [[[NSUserDefaults alloc] initWithSuiteName:defaultsDomain] retain]; } - NSArray * const defaultAppsMenu = @[ - @[NSLocalizedString(@"Terminal", @"Terminal"), @"xterm", @"n"], - ]; - NSString *defaultWindowItemModifiers = @"command"; NSString * const defaultWindowItemModifiersLocalized = NSLocalizedString(@"window item modifiers", @"window item modifiers"); if (![defaultWindowItemModifiersLocalized isEqualToString:@"window item modifiers"]) { @@ -107,7 +103,6 @@ NSString * const XQuartzPrefKeySyncPrimaryOnSelect = @"sync_primary_on_select"; } NSDictionary<NSString *, id> * const defaultDefaultsDict = @{ - XQuartzPrefKeyAppsMenu : defaultAppsMenu, XQuartzPrefKeyFakeButtons : @(NO), // XQuartzPrefKeyFakeButton2 nil default // XQuartzPrefKeyFakeButton3 nil default @@ -141,6 +136,10 @@ NSString * const XQuartzPrefKeySyncPrimaryOnSelect = @"sync_primary_on_select"; }; [defaults registerDefaults:defaultDefaultsDict]; + + NSString * const systemDefaultsPlistPath = [@(XQUARTZ_DATA_DIR) stringByAppendingPathComponent:@"defaults.plist"]; + NSDictionary <NSString *, id> * const systemDefaultsDict = [NSDictionary dictionaryWithContentsOfFile:systemDefaultsPlistPath]; + [defaults registerDefaults:systemDefaultsDict]; }); return defaults; diff --git a/hw/xquartz/defaults.plist b/hw/xquartz/defaults.plist new file mode 100644 index 000000000..957b1e0c7 --- /dev/null +++ b/hw/xquartz/defaults.plist @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> + +<!-- This file contains system-wide defaults for XQuartz --> + +<plist version="1.0"> +<dict> + <key>apps_menu</key> + <array> + <array> + <string>Terminal</string> + <string>xterm</string> + <string>n</string> + </array> + </array> +</dict> +</plist> diff --git a/hw/xquartz/meson.build b/hw/xquartz/meson.build index 14f48e06e..83e79eae8 100644 --- a/hw/xquartz/meson.build +++ b/hw/xquartz/meson.build @@ -23,6 +23,7 @@ endif bundle_id_def = '-DBUNDLE_ID_PREFIX="@0@"'.format(bundle_id_prefix) bundle_root = join_paths(apple_applications_dir, apple_application_name + '.app') +xquartz_data_dir = join_paths(get_option('prefix'), get_option('datadir'),'X11', 'XQuartz') # using sparkle update framework? build_sparkle = xquartz_sparkle_feed_url != '' and xquartz_sparkle_public_edkey != '' @@ -60,6 +61,7 @@ libxquartz_defs = [ '-DUSE_NEW_CLUT', '-DXFree86Server', '-DXQUARTZ', + '-DXQUARTZ_DATA_DIR="@0@"'.format(xquartz_data_dir), '-DXSERVER_VERSION="@0@"'.format(meson.project_version()), bundle_id_def, sparkle_defs, @@ -93,3 +95,7 @@ xquartz_man = configure_file( configuration: manpage_config, ) install_man(xquartz_man) + +install_data('defaults.plist', + install_dir: xquartz_data_dir, + install_mode: 'rw-r--r--') diff --git a/hw/xquartz/pbproxy/Makefile.am b/hw/xquartz/pbproxy/Makefile.am index 3314855d7..b26b8e273 100644 --- a/hw/xquartz/pbproxy/Makefile.am +++ b/hw/xquartz/pbproxy/Makefile.am @@ -1,4 +1,4 @@ -AM_CPPFLAGS=-I.. +AM_CPPFLAGS=-I.. -DXQUARTZ_DATA_DIR=\"$(datadir)/X11/XQuartz\" AM_CFLAGS=$(XPBPROXY_CFLAGS) AM_OBJCFLAGS=$(XPBPROXY_CFLAGS) diff --git a/hw/xquartz/pbproxy/meson.build b/hw/xquartz/pbproxy/meson.build index eebb9fd70..206cbdca3 100644 --- a/hw/xquartz/pbproxy/meson.build +++ b/hw/xquartz/pbproxy/meson.build @@ -1,6 +1,9 @@ build_standalone_pbproxy = get_option('xpbproxy') -pbproxy_defs = [bundle_id_def] +pbproxy_defs = [ + '-DXQUARTZ_DATA_DIR="@0@"'.format(xquartz_data_dir), + bundle_id_def +] if build_standalone_pbproxy pbproxy_defs += ['-DSTANDALONE_XPBPROXY'] endif |