From 593535f37c390247460714ac4a3d682350cbcb61 Mon Sep 17 00:00:00 2001 From: Scott Moreau Date: Sun, 23 Nov 2025 09:34:12 -0700 Subject: [PATCH] Add wayfire.pc icon directory to the icon search path --- icons/plugins/meson.build | 112 +++++++++++++++++++------------------- meson.build | 14 ++--- src/wcm.cpp | 7 ++- 3 files changed, 69 insertions(+), 64 deletions(-) diff --git a/icons/plugins/meson.build b/icons/plugins/meson.build index 925724e..1851810 100644 --- a/icons/plugins/meson.build +++ b/icons/plugins/meson.build @@ -1,60 +1,60 @@ -install_data('plugin-alpha.svg', install_dir: icon_dir) -install_data('plugin-animate.svg', install_dir: icon_dir) -install_data('plugin-annotate.svg', install_dir: icon_dir) -install_data('plugin-autorotate-iio.svg', install_dir: icon_dir) -install_data('plugin-autostart.svg', install_dir: icon_dir) -install_data('plugin-background-view.svg', install_dir: icon_dir) -install_data('plugin-bench.svg', install_dir: icon_dir) -install_data('plugin-blur.svg', install_dir: icon_dir) -install_data('plugin-command.svg', install_dir: icon_dir) -install_data('plugin-core.svg', install_dir: icon_dir) -install_data('plugin-crosshair.svg', install_dir: icon_dir) -install_data('plugin-cube.svg', install_dir: icon_dir) -install_data('plugin-dbus_interface.svg', install_dir: icon_dir) -install_data('plugin-decoration.svg', install_dir: icon_dir) -install_data('plugin-expo.svg', install_dir: icon_dir) -install_data('plugin-extra-gestures.svg', install_dir: icon_dir) -install_data('plugin-extra-protos.svg', install_dir: icon_dir) -install_data('plugin-fast-switcher.svg', install_dir: icon_dir) -install_data('plugin-fisheye.svg', install_dir: icon_dir) -install_data('plugin-follow-focus.svg', install_dir: icon_dir) -install_data('plugin-force-fullscreen.svg', install_dir: icon_dir) -install_data('plugin-grid.svg', install_dir: icon_dir) -install_data('plugin-hinge.svg', install_dir: icon_dir) -install_data('plugin-idle.svg', install_dir: icon_dir) -install_data('plugin-input.svg', install_dir: icon_dir) -install_data('plugin-invert.svg', install_dir: icon_dir) -install_data('plugin-join-views.svg', install_dir: icon_dir) -install_data('plugin-keycolor.svg', install_dir: icon_dir) -install_data('plugin-lxqt-shell.svg', install_dir: icon_dir) -install_data('plugin-mag.svg', install_dir: icon_dir) -install_data('plugin-move.svg', install_dir: icon_dir) -install_data('plugin-obs.svg', install_dir: icon_dir) -install_data('plugin-oswitch.svg', install_dir: icon_dir) -install_data('plugin-place.svg', install_dir: icon_dir) -install_data('plugin-preserve-output.svg', install_dir: icon_dir) -install_data('plugin-resize.svg', install_dir: icon_dir) -install_data('plugin-scale.svg', install_dir: icon_dir) -install_data('plugin-scale-title-filter.svg', install_dir: icon_dir) -install_data('plugin-showrepaint.svg', install_dir: icon_dir) -install_data('plugin-simple-tile.svg', install_dir: icon_dir) -install_data('plugin-switcher.svg', install_dir: icon_dir) -install_data('plugin-view-shot.svg', install_dir: icon_dir) -install_data('plugin-vswipe.svg', install_dir: icon_dir) -install_data('plugin-vswitch.svg', install_dir: icon_dir) -install_data('plugin-water.svg', install_dir: icon_dir) -install_data('plugin-window-rules.svg', install_dir: icon_dir) -install_data('plugin-winzoom.svg', install_dir: icon_dir) -install_data('plugin-wm-actions.svg', install_dir: icon_dir) -install_data('plugin-wobbly.svg', install_dir: icon_dir) -install_data('plugin-workarounds.svg', install_dir: icon_dir) -install_data('plugin-workspace-names.svg', install_dir: icon_dir) -install_data('plugin-wrot.svg', install_dir: icon_dir) -install_data('plugin-zoom.svg', install_dir: icon_dir) +install_data('plugin-alpha.svg', install_dir: wcm_icon_dir) +install_data('plugin-animate.svg', install_dir: wcm_icon_dir) +install_data('plugin-annotate.svg', install_dir: wcm_icon_dir) +install_data('plugin-autorotate-iio.svg', install_dir: wcm_icon_dir) +install_data('plugin-autostart.svg', install_dir: wcm_icon_dir) +install_data('plugin-background-view.svg', install_dir: wcm_icon_dir) +install_data('plugin-bench.svg', install_dir: wcm_icon_dir) +install_data('plugin-blur.svg', install_dir: wcm_icon_dir) +install_data('plugin-command.svg', install_dir: wcm_icon_dir) +install_data('plugin-core.svg', install_dir: wcm_icon_dir) +install_data('plugin-crosshair.svg', install_dir: wcm_icon_dir) +install_data('plugin-cube.svg', install_dir: wcm_icon_dir) +install_data('plugin-dbus_interface.svg', install_dir: wcm_icon_dir) +install_data('plugin-decoration.svg', install_dir: wcm_icon_dir) +install_data('plugin-expo.svg', install_dir: wcm_icon_dir) +install_data('plugin-extra-gestures.svg', install_dir: wcm_icon_dir) +install_data('plugin-extra-protos.svg', install_dir: wcm_icon_dir) +install_data('plugin-fast-switcher.svg', install_dir: wcm_icon_dir) +install_data('plugin-fisheye.svg', install_dir: wcm_icon_dir) +install_data('plugin-follow-focus.svg', install_dir: wcm_icon_dir) +install_data('plugin-force-fullscreen.svg', install_dir: wcm_icon_dir) +install_data('plugin-grid.svg', install_dir: wcm_icon_dir) +install_data('plugin-hinge.svg', install_dir: wcm_icon_dir) +install_data('plugin-idle.svg', install_dir: wcm_icon_dir) +install_data('plugin-input.svg', install_dir: wcm_icon_dir) +install_data('plugin-invert.svg', install_dir: wcm_icon_dir) +install_data('plugin-join-views.svg', install_dir: wcm_icon_dir) +install_data('plugin-keycolor.svg', install_dir: wcm_icon_dir) +install_data('plugin-lxqt-shell.svg', install_dir: wcm_icon_dir) +install_data('plugin-mag.svg', install_dir: wcm_icon_dir) +install_data('plugin-move.svg', install_dir: wcm_icon_dir) +install_data('plugin-obs.svg', install_dir: wcm_icon_dir) +install_data('plugin-oswitch.svg', install_dir: wcm_icon_dir) +install_data('plugin-place.svg', install_dir: wcm_icon_dir) +install_data('plugin-preserve-output.svg', install_dir: wcm_icon_dir) +install_data('plugin-resize.svg', install_dir: wcm_icon_dir) +install_data('plugin-scale.svg', install_dir: wcm_icon_dir) +install_data('plugin-scale-title-filter.svg', install_dir: wcm_icon_dir) +install_data('plugin-showrepaint.svg', install_dir: wcm_icon_dir) +install_data('plugin-simple-tile.svg', install_dir: wcm_icon_dir) +install_data('plugin-switcher.svg', install_dir: wcm_icon_dir) +install_data('plugin-view-shot.svg', install_dir: wcm_icon_dir) +install_data('plugin-vswipe.svg', install_dir: wcm_icon_dir) +install_data('plugin-vswitch.svg', install_dir: wcm_icon_dir) +install_data('plugin-water.svg', install_dir: wcm_icon_dir) +install_data('plugin-window-rules.svg', install_dir: wcm_icon_dir) +install_data('plugin-winzoom.svg', install_dir: wcm_icon_dir) +install_data('plugin-wm-actions.svg', install_dir: wcm_icon_dir) +install_data('plugin-wobbly.svg', install_dir: wcm_icon_dir) +install_data('plugin-workarounds.svg', install_dir: wcm_icon_dir) +install_data('plugin-workspace-names.svg', install_dir: wcm_icon_dir) +install_data('plugin-wrot.svg', install_dir: wcm_icon_dir) +install_data('plugin-zoom.svg', install_dir: wcm_icon_dir) if wf_shell.found() - install_data('plugin-background.svg', install_dir: icon_dir) - install_data('plugin-dock.svg', install_dir: icon_dir) - install_data('plugin-panel.svg', install_dir: icon_dir) + install_data('plugin-background.svg', install_dir: wcm_icon_dir) + install_data('plugin-dock.svg', install_dir: wcm_icon_dir) + install_data('plugin-panel.svg', install_dir: wcm_icon_dir) endif diff --git a/meson.build b/meson.build index fbb7c31..a5fa92f 100644 --- a/meson.build +++ b/meson.build @@ -5,6 +5,8 @@ fs = import('fs') add_global_arguments('-DWAYFIRE_CONFIG_FILE="' + get_option('wayfire_config_file_path') + '"', language : 'cpp') add_global_arguments('-DWF_SHELL_CONFIG_FILE="' + get_option('wf_shell_config_file_path') + '"', language : 'cpp') +dependency('pkg-config', required : true) +evdev = dependency('libevdev') wayfire = dependency('wayfire', version: '>=0.11.0') wf_shell = dependency('wf-shell', required : get_option('wf_shell')) @@ -13,7 +15,8 @@ wayfire_sysconf_dir = wayfire.get_variable(pkgconfig: 'sysconfdir') share_dir = join_paths(get_option('prefix'), 'share') wayfire_locale_dir = join_paths(share_dir, 'locale') -icon_dir = join_paths(share_dir, 'wcm', 'icons') +wcm_icon_dir = join_paths(share_dir, 'wcm', 'icons') +wayfire_icon_dir = wayfire.get_variable(pkgconfig: 'icondir') add_global_arguments('-DWAYFIRE_METADATADIR="' + wayfire_metadata_dir + '"', language : 'cpp') add_global_arguments('-DWAYFIRE_LOCALEDIR="' + wayfire_locale_dir + '"', language : 'cpp') @@ -21,16 +24,13 @@ add_global_arguments('-DWAYFIRE_SYSCONFDIR="' + wayfire_sysconf_dir + '"', langu if wf_shell.found() wf_shell_metadata_dir = wf_shell.get_variable(pkgconfig: 'metadatadir') wf_shell_sysconf_dir = wf_shell.get_variable(pkgconfig: 'sysconfdir') - add_project_arguments('-DHAVE_WFSHELL=1', language : 'cpp') + add_global_arguments('-DHAVE_WFSHELL=1', language : 'cpp') add_global_arguments('-DWFSHELL_METADATADIR="' + wf_shell_metadata_dir + '"', language : 'cpp') add_global_arguments('-DWFSHELL_SYSCONFDIR="' + wf_shell_sysconf_dir + '"', language : 'cpp') endif -add_global_arguments('-DICONDIR="' + icon_dir + '"', language : 'cpp') - -dependency('pkg-config', required : true) -evdev = dependency('libevdev') -add_project_arguments('-DICONDIR="' + icon_dir + '"', language : 'cpp') +add_global_arguments('-DWAYFIRE_ICONDIR="' + wayfire_icon_dir + '"', language : 'cpp') +add_global_arguments('-DWCM_ICONDIR="' + wcm_icon_dir + '"', language : 'cpp') subdir('icons') subdir('proto') diff --git a/src/wcm.cpp b/src/wcm.cpp index b51d199..0d6491b 100644 --- a/src/wcm.cpp +++ b/src/wcm.cpp @@ -1870,5 +1870,10 @@ std::string WCM::find_icon(const std::string & name) } } - return ICONDIR "/" + name; + if (std::filesystem::exists(WAYFIRE_ICONDIR "/" + name)) + { + return WAYFIRE_ICONDIR "/" + name; + } + + return WCM_ICONDIR "/" + name; }