<?xml version="1.0"?>
<wayfire>
	<plugin name="workarounds">
		<_short>Workarounds</_short>
		<_long>Some hacks that might be required to make things work.</_long>
		<category>Utility</category>
		<option name="app_id_mode" type="string">
			<_short>Application ID mode</_short>
			<_long>Specifies the application ID mode.</_long>
			<default>stock</default>
			<desc>
				<value>stock</value>
				<_name>Stock</_name>
			</desc>
			<desc>
				<value>gtk-shell</value>
				<_name>GTK Shell</_name>
			</desc>
			<desc>
				<value>full</value>
				<_name>Full</_name>
			</desc>
		</option>
		<option name="all_dialogs_modal" type="bool">
			<_short>Make all dialogs modal</_short>
			<_long>If false, the main window can be focused even if it has a dialog. The dialog is nevertheless kept on top of the main window. Kwin defaults to false.</_long>
			<default>true</default>
		</option>
		<option name="dynamic_repaint_delay" type="bool">
			<_short>Allow dynamic repaint delay</_short>
			<_long>If true, allows Wayfire to dynamically recalculate its max_render_time, i.e allow render time higher than max_render_time.</_long>
			<default>false</default>
		</option>
		<option name="use_external_output_configuration" type="bool">
			<_short>Use external output configuration instead of Wayfire's own.</_short>
			<_long>If true, Wayfire will not handle any configuration options for outputs in the config file once an
			external daemon like https://github.com/emersion/kanshi sets the output configuration via the wlr-output-management protocol.
			Exceptions are made for options not available via wlr-output-management, like output mirroring and custom modelines.</_long>
			<default>false</default>
		</option>
		<option name="remove_output_limits" type="bool">
			<_short>Allow views to overlap between multiple outputs.</_short>
			<_long>Allow views to overlap between multiple outputs. Many of the core plugins will not behave properly with this option set!</_long>
			<default>false</default>
		</option>
		<option name="force_preferred_decoration_mode" type="bool">
			<_short>Force xdg-decoration clients to use the compositor-preferred decoration mode.</_short>
			<_long>Force xdg-decoration clients to use the compositor-preferred decoration mode regardless of the client's preference.</_long>
			<default>false</default>
		</option>
		<option name="enable_so_unloading" type="bool">
			<_short>Enable calling dlclose() when a plugin is unloaded</_short>
			<_long>Enable calling dlclose() when a plugin is unloaded. Note that this may not work well with all plugins.</_long>
			<default>false</default>
		</option>
		<option name="discard_command_output" type="bool">
			<_short>Discard output from commands invoked by Wayfire.</_short>
			<_long>Discard output from commands invoked by Wayfire, so that they don't end up in the logs.</_long>
			<default>true</default>
		</option>
		<option name="enable_input_method_v2" type="bool">
			<_short>Enable support for the newer input-method-v2 protocol.</_short>
			<_long>Enable support for the newer input-method-v2 protocol. Note that the input-method-v1 protocol works better in many cases.</_long>
			<default>false</default>
		</option>
		<option name="enable_opaque_region_damage_optimizations" type="bool">
			<_short>Enable certain damage optimizations which are based on a surfaces' opaque regions.</_short>
			<_long>Enable certain damage optimizations which are based on a surfaces' opaque regions. In some cases, this optimization might give unexpected results (i.e background app stops updating) even though this is fine according to Wayland's protocol.</_long>
			<default>false</default>
		</option>
		<option name="force_frame_sync" type="bool">
			<_short>Force frame synchronization.</_short>
			<_long>This option can be used to workaround driver bugs that cause rendering artifacts, though can cause more resource usage. Leave disabled if unsure.</_long>
			<default>false</default>
		</option>
		<option name="max_buffer_size" type="int">
			<_short>Maximum buffer size</_short>
			<_long>Maximum size in pixels of graphics buffers used for rendering. Needs to be set lower on some systems to avoid crashes and other issues.</_long>
			<default>16384</default>
		</option>
		<option name="disable_primary_selection" type="bool">
			<_short>Disable primary selection</_short>
			<_long>Disable primary selection (middle-click copy/paste).</_long>
			<default>false</default>
		</option>
		<option name="focus_main_surface_instead_of_popup" type="bool">
			<_short>Focus main surface instead of popup menus</_short>
			<_long>Focus the main surface instead of popup menus. Works around some bugs in Qt-based apps related to copy-paste.</_long>
			<default>false</default>
		</option>
		<option name="keep_last_toplevel_activated" type="bool">
			<_short>Keep last focused toplevel activated</_short>
			<_long>When a layer-shell view grabs keyboard focus, keep the last focused toplevel view as activated.</_long>
			<default>true</default>
		</option>
		<option name="auto_reload_config" type="bool">
			<_short>Auto-reload Config</_short>
			<_long>Automatically reload the config file when it's modified.</_long>
			<default>true</default>
		</option>
		<option name="config_reload_delay" type="int">
			<_short>Config reload delay</_short>
			<_long>Delay in milliseconds after a config file change before reloading.</_long>
			<default>20</default>
			<min>0</min>
			<max>500</max>
		</option>
	</plugin>
</wayfire>
