gh-pages
sayanarijit 3 years ago
parent 0746a2c3e9
commit 48ac1d53c1

@ -155,10 +155,39 @@ using the following lookup order:</p>
<p>The first one found will be loaded by xplr and the lookup will stop.</p>
<p>The loaded config can be further extended using the <code>-C</code> or <code>--extra-config</code>
command-line option.</p>
<blockquote>
<p><strong>NEED HELP:</strong> Auto generate rest of the docs from <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua">src/init.lua</a>
using <a href="https://github.com/sayanarijit/xplr/blob/main/docs/script/generate.py">docs/script/generate.py</a>.</p>
</blockquote>
<h2 id="config"><a class="header" href="#config">Config</a></h2>
<p>The xplr configuration, exposed via <code>xplr.config</code> Lua API contains the
following sections.</p>
<p>See:</p>
<ul>
<li><a href="https://xplr.dev/en/general-config">xplr.config.general</a></li>
<li><a href="https://xplr.dev/en/node_types">xplr.config.node_types</a></li>
<li><a href="https://xplr.dev/en/layouts">xplr.config.layouts</a></li>
<li><a href="https://xplr.dev/en/modes">xplr.config.modes</a></li>
</ul>
<h2 id="function"><a class="header" href="#function">Function</a></h2>
<p>While <code>xplr.config</code> defines all the static parts of the configuration,
<code>xplr.fn</code> defines all the dynamic parts using functions.</p>
<p>See: <a href="https://xplr.dev/en/lua-function-calls">Lua Function Calls</a></p>
<h3 id="builtin-functions"><a class="header" href="#builtin-functions">Builtin Functions</a></h3>
<p>As always, <code>xplr.fn.builtin</code> is where the built-in functions are defined
that can be overwritten.</p>
<h4 id="xplrfnbuiltinfmt_general_table_row_cols_0"><a class="header" href="#xplrfnbuiltinfmt_general_table_row_cols_0">xplr.fn.builtin.fmt_general_table_row_cols_0</a></h4>
<p>Renders the first column in the table</p>
<h4 id="xplrfnbuiltinfmt_general_table_row_cols_1"><a class="header" href="#xplrfnbuiltinfmt_general_table_row_cols_1">xplr.fn.builtin.fmt_general_table_row_cols_1</a></h4>
<p>Renders the second column in the table</p>
<h4 id="xplrfnbuiltinfmt_general_table_row_cols_2"><a class="header" href="#xplrfnbuiltinfmt_general_table_row_cols_2">xplr.fn.builtin.fmt_general_table_row_cols_2</a></h4>
<p>Renders the third column in the table</p>
<h4 id="xplrfnbuiltinfmt_general_table_row_cols_3"><a class="header" href="#xplrfnbuiltinfmt_general_table_row_cols_3">xplr.fn.builtin.fmt_general_table_row_cols_3</a></h4>
<p>Renders the fourth column in the table</p>
<h4 id="xplrfnbuiltinfmt_general_table_row_cols_4"><a class="header" href="#xplrfnbuiltinfmt_general_table_row_cols_4">xplr.fn.builtin.fmt_general_table_row_cols_4</a></h4>
<p>Renders the fifth column in the table</p>
<h3 id="custom-functions"><a class="header" href="#custom-functions">Custom Functions</a></h3>
<p>This is where the custom functions can be added.</p>
<p>There is currently no restriction on what kind of functions can be defined
in <code>xplr.fn.custom</code>.</p>
<p>You can also use nested tables such as
<code>xplr.fn.custom.my_plugin.my_function</code> to define custom functions.</p>
</main>

@ -140,13 +140,314 @@
<div id="content" class="content">
<main>
<h1 id="general-config"><a class="header" href="#general-config">General Config</a></h1>
<p>This configuration is exposed via the <code>xplr.config.general</code> API.</p>
<p>For now, kindly refer to <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua"><strong>init.lua</strong></a></p>
<blockquote>
<p><strong>NEED HELP:</strong> Auto generate rest of the docs from <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua">src/init.lua</a>
using <a href="https://github.com/sayanarijit/xplr/blob/main/docs/script/generate.py">docs/script/generate.py</a>.</p>
</blockquote>
<h3 id="general-configuration"><a class="header" href="#general-configuration">General Configuration</a></h3>
<p>The general configuration properties are grouped together in
<code>xplr.config.general</code>.</p>
<h4 id="xplrconfiggeneraldisable_debug_error_mode"><a class="header" href="#xplrconfiggeneraldisable_debug_error_mode">xplr.config.general.disable_debug_error_mode</a></h4>
<p>Set it to <code>true</code> if you want to ignore the startup errors. You can still see
the errors in the logs.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralenable_mouse"><a class="header" href="#xplrconfiggeneralenable_mouse">xplr.config.general.enable_mouse</a></h4>
<p>Set it to <code>true</code> if you want to enable mouse scrolling.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralshow_hidden"><a class="header" href="#xplrconfiggeneralshow_hidden">xplr.config.general.show_hidden</a></h4>
<p>Set it to <code>true</code> to show hidden files by default.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralread_only"><a class="header" href="#xplrconfiggeneralread_only">xplr.config.general.read_only</a></h4>
<p>Set it to <code>true</code> to use only a subset of selected operations that forbids
executing commands or performing write operations on the file-system.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralenable_recover_mode"><a class="header" href="#xplrconfiggeneralenable_recover_mode">xplr.config.general.enable_recover_mode</a></h4>
<p>Set it to <code>true</code> if you want to enable a safety feature that will save you
from yourself when you type recklessly.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralhide_remaps_in_help_menu"><a class="header" href="#xplrconfiggeneralhide_remaps_in_help_menu">xplr.config.general.hide_remaps_in_help_menu</a></h4>
<p>Set it to <code>true</code> if you want to hide all remaps in the help menu.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralenforce_bounded_index_navigation"><a class="header" href="#xplrconfiggeneralenforce_bounded_index_navigation">xplr.config.general.enforce_bounded_index_navigation</a></h4>
<p>Set it to <code>true</code> if you want the cursor to stay in the same position when
the focus is on the first path and you navigate to the previous path
(by pressing <code>up</code>/<code>k</code>), or when the focus is on the last path and you
navigate to the next path (by pressing <code>down</code>/<code>j</code>).
The default behavior is to rotate from the last/first path.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralpromptformat"><a class="header" href="#xplrconfiggeneralpromptformat">xplr.config.general.prompt.format</a></h4>
<p>This is the shape of the prompt for the input buffer.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpromptstyle"><a class="header" href="#xplrconfiggeneralpromptstyle">xplr.config.general.prompt.style</a></h4>
<p>This is the style of the prompt for the input buffer.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggenerallogsinfoformat"><a class="header" href="#xplrconfiggenerallogsinfoformat">xplr.config.general.logs.info.format</a></h4>
<p>The string to indicate an information in logs.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggenerallogsinfostyle"><a class="header" href="#xplrconfiggenerallogsinfostyle">xplr.config.general.logs.info.style</a></h4>
<p>The style for the informations logs.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggenerallogssuccessformat"><a class="header" href="#xplrconfiggenerallogssuccessformat">xplr.config.general.logs.success.format</a></h4>
<p>The string to indicate an success in logs.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggenerallogssuccessstyle"><a class="header" href="#xplrconfiggenerallogssuccessstyle">xplr.config.general.logs.success.style</a></h4>
<p>The style for the success logs.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggenerallogswarningformat"><a class="header" href="#xplrconfiggenerallogswarningformat">xplr.config.general.logs.warning.format</a></h4>
<p>The string to indicate an warnings in logs.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggenerallogswarningstyle"><a class="header" href="#xplrconfiggenerallogswarningstyle">xplr.config.general.logs.warning.style</a></h4>
<p>The style for the warnings logs.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggenerallogserrorformat"><a class="header" href="#xplrconfiggenerallogserrorformat">xplr.config.general.logs.error.format</a></h4>
<p>The string to indicate an error in logs.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggenerallogserrorstyle"><a class="header" href="#xplrconfiggenerallogserrorstyle">xplr.config.general.logs.error.style</a></h4>
<p>The style for the error logs.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneraltableheadercols"><a class="header" href="#xplrconfiggeneraltableheadercols">xplr.config.general.table.header.cols</a></h4>
<p>Columns to display in the table header.</p>
<p>Type: nullable list of tables with the following fields:</p>
<ul>
<li>format: nullable string</li>
<li>style: <a href="https://xplr.dev/en/style">Style</a></li>
</ul>
<h4 id="xplrconfiggeneraltableheaderstyle"><a class="header" href="#xplrconfiggeneraltableheaderstyle">xplr.config.general.table.header.style</a></h4>
<p>Style of the table header.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneraltableheaderheight"><a class="header" href="#xplrconfiggeneraltableheaderheight">xplr.config.general.table.header.height</a></h4>
<p>Height of the table header.</p>
<p>Type: nullable integer</p>
<h4 id="xplrconfiggeneraltablerowcols"><a class="header" href="#xplrconfiggeneraltablerowcols">xplr.config.general.table.row.cols</a></h4>
<p>Columns to display in each row in the table.</p>
<p>Type: nullable list of tables with the following fields:</p>
<ul>
<li>format: nullable string</li>
<li>style: <a href="https://xplr.dev/en/style">Style</a></li>
</ul>
<h4 id="xplrconfiggeneraltablerowstyle"><a class="header" href="#xplrconfiggeneraltablerowstyle">xplr.config.general.table.row.style</a></h4>
<p>Default style of the table.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneraltablerowheight"><a class="header" href="#xplrconfiggeneraltablerowheight">xplr.config.general.table.row.height</a></h4>
<p>Height of the table rows.</p>
<p>Type: nullable integer</p>
<h4 id="xplrconfiggeneraltablestyle"><a class="header" href="#xplrconfiggeneraltablestyle">xplr.config.general.table.style</a></h4>
<p>Default style of the table.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneraltabletree"><a class="header" href="#xplrconfiggeneraltabletree">xplr.config.general.table.tree</a></h4>
<p>Tree to display in the table.</p>
<p>Type: nullable list of tables with the following fields:</p>
<ul>
<li>format: nullable string</li>
<li>style: <a href="https://xplr.dev/en/style">Style</a></li>
</ul>
<h4 id="xplrconfiggeneraltablecol_spacing"><a class="header" href="#xplrconfiggeneraltablecol_spacing">xplr.config.general.table.col_spacing</a></h4>
<p>Spacing between the columns in the table.</p>
<p>Type: nullable integer</p>
<h4 id="xplrconfiggeneraltablecol_widths"><a class="header" href="#xplrconfiggeneraltablecol_widths">xplr.config.general.table.col_widths</a></h4>
<p>Constraint for the column widths.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/layouts#constraint">Constraint</a></p>
<h4 id="xplrconfiggeneraldefault_uiprefix"><a class="header" href="#xplrconfiggeneraldefault_uiprefix">xplr.config.general.default_ui.prefix</a></h4>
<p>The content that is placed before the item name for each row by default.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneraldefault_uisuffix"><a class="header" href="#xplrconfiggeneraldefault_uisuffix">xplr.config.general.default_ui.suffix</a></h4>
<p>The content which is appended to each item name for each row by default.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneraldefault_uistyle"><a class="header" href="#xplrconfiggeneraldefault_uistyle">xplr.config.general.default_ui.style</a></h4>
<p>The default style of each item for each row.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralfocus_uiprefix"><a class="header" href="#xplrconfiggeneralfocus_uiprefix">xplr.config.general.focus_ui.prefix</a></h4>
<p>The string placed before the item name for a focused row.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralfocus_uisuffix"><a class="header" href="#xplrconfiggeneralfocus_uisuffix">xplr.config.general.focus_ui.suffix</a></h4>
<p>The string placed after the item name for a focused row.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralfocus_uistyle"><a class="header" href="#xplrconfiggeneralfocus_uistyle">xplr.config.general.focus_ui.style({</a></h4>
<p>Style for focused item.
Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralselection_uiprefix"><a class="header" href="#xplrconfiggeneralselection_uiprefix">xplr.config.general.selection_ui.prefix</a></h4>
<p>The string placed before the item name for a selected row.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralselection_uisuffix"><a class="header" href="#xplrconfiggeneralselection_uisuffix">xplr.config.general.selection_ui.suffix</a></h4>
<p>The string placed after the item name for a selected row.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralselection_uistyle"><a class="header" href="#xplrconfiggeneralselection_uistyle">xplr.config.general.selection_ui.style</a></h4>
<p>Style for selected rows.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralfocus_selection_uiprefix"><a class="header" href="#xplrconfiggeneralfocus_selection_uiprefix">xplr.config.general.focus_selection_ui.prefix</a></h4>
<p>The string placed before item name for a selected row that gets the focus.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralfocus_selection_uisuffix"><a class="header" href="#xplrconfiggeneralfocus_selection_uisuffix">xplr.config.general.focus_selection_ui.suffix</a></h4>
<p>The string placed after the item name for a selected row that gets the focus.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralfocus_selection_uistyle"><a class="header" href="#xplrconfiggeneralfocus_selection_uistyle">xplr.config.general.focus_selection_ui.style</a></h4>
<p>Style for a selected row that gets the focus.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralsort_and_filter_uiseparatorformat"><a class="header" href="#xplrconfiggeneralsort_and_filter_uiseparatorformat">xplr.config.general.sort_and_filter_ui.separator.format</a></h4>
<p>The shape of the separator for the Sort &amp; filter panel.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralsort_and_filter_uiseparatorstyle"><a class="header" href="#xplrconfiggeneralsort_and_filter_uiseparatorstyle">xplr.config.general.sort_and_filter_ui.separator.style</a></h4>
<p>The style of the separator for the Sort &amp; filter panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralsort_and_filter_uidefault_identifierformat"><a class="header" href="#xplrconfiggeneralsort_and_filter_uidefault_identifierformat">xplr.config.general.sort_and_filter_ui.default_identifier.format</a></h4>
<p>The content of the default identifier in Sort &amp; filter panel.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralsort_and_filter_uidefault_identifierstyle"><a class="header" href="#xplrconfiggeneralsort_and_filter_uidefault_identifierstyle">xplr.config.general.sort_and_filter_ui.default_identifier.style</a></h4>
<p>Style for the default identifier in Sort &amp; filter panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralsort_and_filter_uisort_direction_identifiersforwardformat"><a class="header" href="#xplrconfiggeneralsort_and_filter_uisort_direction_identifiersforwardformat">xplr.config.general.sort_and_filter_ui.sort_direction_identifiers.forward.format</a></h4>
<p>The shape of the forward direction indicator for sort identifiers in Sort &amp; filter panel.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralsort_and_filter_uisort_direction_identifiersforwardstyle"><a class="header" href="#xplrconfiggeneralsort_and_filter_uisort_direction_identifiersforwardstyle">xplr.config.general.sort_and_filter_ui.sort_direction_identifiers.forward.style</a></h4>
<p>Style of forward direction indicator in Sort &amp; filter panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralsort_and_filter_uisort_direction_identifiersreverseformat"><a class="header" href="#xplrconfiggeneralsort_and_filter_uisort_direction_identifiersreverseformat">xplr.config.general.sort_and_filter_ui.sort_direction_identifiers.reverse.format</a></h4>
<p>The shape of the reverse direction indicator for sort identifiers in Sort &amp; filter panel.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralsort_and_filter_uisort_direction_identifiersreversestyle"><a class="header" href="#xplrconfiggeneralsort_and_filter_uisort_direction_identifiersreversestyle">xplr.config.general.sort_and_filter_ui.sort_direction_identifiers.reverse.style</a></h4>
<p>Style of reverse direction indicator in Sort &amp; filter panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralsort_and_filter_uisorter_identifiers"><a class="header" href="#xplrconfiggeneralsort_and_filter_uisorter_identifiers">xplr.config.general.sort_and_filter_ui.sorter_identifiers</a></h4>
<p>The identifiers used to denote applied sorters in the Sort &amp; filter panel.</p>
<p>Type: nullable mapping of the following key-value pairs:</p>
<ul>
<li>key: <a href="https://xplr.dev/en/sorting#sorter">Sorter</a></li>
<li>value:
<ul>
<li>format: nullable string</li>
<li>style: [Style][https://xplr.dev/en/style]</li>
</ul>
</li>
</ul>
<h4 id="xplrconfiggeneralsort_and_filter_uifilter_identifiers"><a class="header" href="#xplrconfiggeneralsort_and_filter_uifilter_identifiers">xplr.config.general.sort_and_filter_ui.filter_identifiers</a></h4>
<p>The identifiers used to denote applied filters in the Sort &amp; filter panel.</p>
<p>Type: nullable mapping of the following key-value pairs:</p>
<ul>
<li>key: <a href="https://xplr.dev/en/filtering#filter">Filter</a></li>
<li>value:
<ul>
<li>format: nullable string</li>
<li>style: [Style][https://xplr.dev/en/style]</li>
</ul>
</li>
</ul>
<h4 id="xplrconfiggeneralpanel_uidefaulttitleformat"><a class="header" href="#xplrconfiggeneralpanel_uidefaulttitleformat">xplr.config.general.panel_ui.default.title.format</a></h4>
<p>The content for panel title by default.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uidefaulttitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uidefaulttitlestyle">xplr.config.general.panel_ui.default.title.style</a></h4>
<p>The style for panel title by default.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uidefaultstyle"><a class="header" href="#xplrconfiggeneralpanel_uidefaultstyle">xplr.config.general.panel_ui.default.style</a></h4>
<p>Style of the panels by default.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uidefaultborders"><a class="header" href="#xplrconfiggeneralpanel_uidefaultborders">xplr.config.general.panel_ui.default.borders</a></h4>
<p>Defines where to show borders for the panels by default.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uidefaultborder_type"><a class="header" href="#xplrconfiggeneralpanel_uidefaultborder_type">xplr.config.general.panel_ui.default.border_type</a></h4>
<p>Type of the borders by default.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uidefaultborder_style"><a class="header" href="#xplrconfiggeneralpanel_uidefaultborder_style">xplr.config.general.panel_ui.default.border_style</a></h4>
<p>Style of the panel borders by default.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uitabletitleformat"><a class="header" href="#xplrconfiggeneralpanel_uitabletitleformat">xplr.config.general.panel_ui.table.title.format</a></h4>
<p>The content for the table panel title.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uitabletitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uitabletitlestyle">xplr.config.general.panel_ui.table.title.style</a></h4>
<p>Style of the table panel title.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uitablestyle"><a class="header" href="#xplrconfiggeneralpanel_uitablestyle">xplr.config.general.panel_ui.table.style</a></h4>
<p>Style of the table panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uitableborders"><a class="header" href="#xplrconfiggeneralpanel_uitableborders">xplr.config.general.panel_ui.table.borders</a></h4>
<p>Defines where to show borders for the table panel.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uitableborder_type"><a class="header" href="#xplrconfiggeneralpanel_uitableborder_type">xplr.config.general.panel_ui.table.border_type</a></h4>
<p>Type of the borders for table panel.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uitableborder_style"><a class="header" href="#xplrconfiggeneralpanel_uitableborder_style">xplr.config.general.panel_ui.table.border_style</a></h4>
<p>Style of the table panel borders.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uihelp_menutitleformat"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menutitleformat">xplr.config.general.panel_ui.help_menu.title.format</a></h4>
<p>The content for the help menu panel title.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uihelp_menutitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menutitlestyle">xplr.config.general.panel_ui.help_menu.title.style</a></h4>
<p>Style of the help menu panel title.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uihelp_menustyle"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menustyle">xplr.config.general.panel_ui.help_menu.style</a></h4>
<p>Style of the help menu panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uihelp_menuborders"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menuborders">xplr.config.general.panel_ui.help_menu.borders</a></h4>
<p>Defines where to show borders for the help menu panel.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uihelp_menuborder_type"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menuborder_type">xplr.config.general.panel_ui.help_menu.border_type</a></h4>
<p>Type of the borders for help menu panel.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uihelp_menuborder_style"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menuborder_style">xplr.config.general.panel_ui.help_menu.border_style</a></h4>
<p>Style of the help menu panel borders.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logstitleformat"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logstitleformat">xplr.config.general.panel_ui.input_and_logs.title.format</a></h4>
<p>The content for the input &amp; logs panel title.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logstitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logstitlestyle">xplr.config.general.panel_ui.input_and_logs.title.style</a></h4>
<p>Style of the input &amp; logs panel title.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logsborders"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logsborders">xplr.config.general.panel_ui.input_and_logs.borders</a></h4>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logsstyle"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logsstyle">xplr.config.general.panel_ui.input_and_logs.style</a></h4>
<p>Style of the input &amp; logs panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a>
Defines where to show borders for the input &amp; logs panel.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logsborder_type"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logsborder_type">xplr.config.general.panel_ui.input_and_logs.border_type</a></h4>
<p>Type of the borders for input &amp; logs panel.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logsborder_style"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logsborder_style">xplr.config.general.panel_ui.input_and_logs.border_style</a></h4>
<p>Style of the input &amp; logs panel borders.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uiselectiontitleformat"><a class="header" href="#xplrconfiggeneralpanel_uiselectiontitleformat">xplr.config.general.panel_ui.selection.title.format</a></h4>
<p>The content for the selection panel title.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uiselectiontitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uiselectiontitlestyle">xplr.config.general.panel_ui.selection.title.style</a></h4>
<p>Style of the selection panel title.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uiselectionborders"><a class="header" href="#xplrconfiggeneralpanel_uiselectionborders">xplr.config.general.panel_ui.selection.borders</a></h4>
<h4 id="xplrconfiggeneralpanel_uiselectionstyle"><a class="header" href="#xplrconfiggeneralpanel_uiselectionstyle">xplr.config.general.panel_ui.selection.style</a></h4>
<p>Style of the selection panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a>
Defines where to show borders for the selection panel.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uiselectionborder_type"><a class="header" href="#xplrconfiggeneralpanel_uiselectionborder_type">xplr.config.general.panel_ui.selection.border_type</a></h4>
<p>Type of the borders for selection panel.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uiselectionborder_style"><a class="header" href="#xplrconfiggeneralpanel_uiselectionborder_style">xplr.config.general.panel_ui.selection.border_style</a></h4>
<p>Style of the selection panel borders.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filtertitleformat"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filtertitleformat">xplr.config.general.panel_ui.sort_and_filter.title.format</a></h4>
<p>The content for the sort &amp; filter panel title.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filtertitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filtertitlestyle">xplr.config.general.panel_ui.sort_and_filter.title.style</a></h4>
<p>Style of the sort &amp; filter panel title.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filterstyle"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filterstyle">xplr.config.general.panel_ui.sort_and_filter.style</a></h4>
<p>Style of the sort &amp; filter panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filterborders"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filterborders">xplr.config.general.panel_ui.sort_and_filter.borders</a></h4>
<p>Defines where to show borders for the sort &amp; filter panel.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filterborder_type"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filterborder_type">xplr.config.general.panel_ui.sort_and_filter.border_type</a></h4>
<p>Type of the borders for sort &amp; filter panel.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filterborder_style"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filterborder_style">xplr.config.general.panel_ui.sort_and_filter.border_style</a></h4>
<p>Style of the sort &amp; filter panel borders.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralinitial_sorting"><a class="header" href="#xplrconfiggeneralinitial_sorting">xplr.config.general.initial_sorting</a></h4>
<p>Initial group if sorters applied to the nodes list in the table.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/sorting#node-sorter-applicable">Node Sorter</a></p>
<h4 id="xplrconfiggeneralinitial_mode"><a class="header" href="#xplrconfiggeneralinitial_mode">xplr.config.general.initial_mode</a></h4>
<p>The name of one of the modes to use when xplr loads.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralinitial_layout"><a class="header" href="#xplrconfiggeneralinitial_layout">xplr.config.general.initial_layout</a></h4>
<p>The name of one of the layouts to use when xplr loads.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralstart_fifo"><a class="header" href="#xplrconfiggeneralstart_fifo">xplr.config.general.start_fifo</a></h4>
<p>Set it to a file path to start fifo when xplr loads.
Generally it is used to integrate with external tools like previewers.</p>
<p>Type: nullable string</p>
</main>

@ -140,13 +140,56 @@
<div id="content" class="content">
<main>
<h1 id="layouts"><a class="header" href="#layouts">Layouts</a></h1>
<p>This configuration is exposed via the <code>xplr.config.layouts</code> API.</p>
<p>For now, kindly refer to <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua"><strong>init.lua</strong></a></p>
<blockquote>
<p><strong>NEED HELP:</strong> Auto generate rest of the docs from <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua">src/init.lua</a>
using <a href="https://github.com/sayanarijit/xplr/blob/main/docs/script/generate.py">docs/script/generate.py</a>.</p>
</blockquote>
<h3 id="layouts"><a class="header" href="#layouts">Layouts</a></h3>
<p>xplr layouts define the structure of the UI, i.e. how many panel we see,
placement and size of the panels, how they look etc.</p>
<p>This is configuration exposed via the <code>xplr.config.layouts</code> API.</p>
<p><code>xplr.config.layouts.builtin</code> contain some built-in panels which can be
overridden, but you can't add or remove panels in it.</p>
<p>You can add new panels in <code>xplr.config.layouts.custom</code>.</p>
<h5 id="example-defining-custom-layout"><a class="header" href="#example-defining-custom-layout">Example: Defining Custom Layout</a></h5>
<p><img src="https://s6.gifyu.com/images/layout.png" alt="demo" /></p>
<pre><code class="language-lua">xplr.config.layouts.builtin.default = {
Horizontal = {
config = {
margin = 1,
horizontal_margin = 2,
vertical_margin = 3,
constraints = {
{ Percentage = 50 },
{ Percentage = 50 },
}
},
splits = {
&quot;Table&quot;,
&quot;HelpMenu&quot;,
}
}
}
</code></pre>
<h4 id="xplrconfiglayoutsbuiltindefault"><a class="header" href="#xplrconfiglayoutsbuiltindefault">xplr.config.layouts.builtin.default</a></h4>
<p>The default layout</p>
<p>Type: <a href="https://xplr.dev/en/layout">Layout</a></p>
<h4 id="xplrconfiglayoutsbuiltinno_help"><a class="header" href="#xplrconfiglayoutsbuiltinno_help">xplr.config.layouts.builtin.no_help</a></h4>
<p>The layout without help menu</p>
<p>Type: <a href="https://xplr.dev/en/layout">Layout</a></p>
<h4 id="xplrconfiglayoutsbuiltinno_selection"><a class="header" href="#xplrconfiglayoutsbuiltinno_selection">xplr.config.layouts.builtin.no_selection</a></h4>
<p>The layout without selection panel</p>
<p>Type: <a href="https://xplr.dev/en/layout">Layout</a></p>
<h4 id="xplrconfiglayoutsbuiltinno_help_no_selection"><a class="header" href="#xplrconfiglayoutsbuiltinno_help_no_selection">xplr.config.layouts.builtin.no_help_no_selection</a></h4>
<p>The layout without help menu and selection panel</p>
<p>Type: <a href="https://xplr.dev/en/layout">Layout</a></p>
<h4 id="xplrconfiglayoutscustom"><a class="header" href="#xplrconfiglayoutscustom">xplr.config.layouts.custom</a></h4>
<p>This is where you can define custom layouts</p>
<p>Type: mapping of the following key-value pairs:</p>
<ul>
<li>key: string</li>
<li>value: <a href="https://xplr.dev/en/layout">Layout</a></li>
</ul>
<p>Example:</p>
<pre><code class="language-lua">xplr.config.layouts.custom.example = &quot;Nothing&quot; -- Show a blank screen
xplr.config.general.initial_layout = &quot;example&quot; -- Load the example layout
</code></pre>
</main>

@ -272,7 +272,7 @@ read from the input buffer.</p>
<p>Focus on the last node.</p>
<p>Example:</p>
<ul>
<li>Lua: &quot;FocusLast&quot;</li>
<li>Lua: &quot;FocusLast&quot;</li>
<li>YAML: <code>FocusLast</code></li>
</ul>
<h4 id="focuspath"><a class="header" href="#focuspath">FocusPath</a></h4>

@ -140,13 +140,100 @@
<div id="content" class="content">
<main>
<h1 id="modes"><a class="header" href="#modes">Modes</a></h1>
<p>This configuration is exposed via the <code>xplr.config.modes</code> API.</p>
<p>For now, kindly refer to <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua"><strong>init.lua</strong></a></p>
<blockquote>
<p><strong>NEED HELP:</strong> Auto generate rest of the docs from <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua">src/init.lua</a>
using <a href="https://github.com/sayanarijit/xplr/blob/main/docs/script/generate.py">docs/script/generate.py</a>.</p>
</blockquote>
<h3 id="modes"><a class="header" href="#modes">Modes</a></h3>
<p>xplr is a modal file explorer. That means the users switch between different
modes, each containing a different set of key bindings to avoid clashes.
Users can switch between these modes at run-time.</p>
<p>The modes can be configured using the <code>xplr.config.modes</code> Lua API.</p>
<p><code>xplr.config.modes.builtin</code> contain some built-in modes which can be
overridden, but you can't add or remove modes in it.</p>
<h4 id="xplrconfigmodesbuiltindefault"><a class="header" href="#xplrconfigmodesbuiltindefault">xplr.config.modes.builtin.default</a></h4>
<p>The builtin default mode.
Visit the <a href="https://xplr.dev/en/default-key-bindings">Default Key Bindings</a>
to see what each mode does.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltindebug_error"><a class="header" href="#xplrconfigmodesbuiltindebug_error">xplr.config.modes.builtin.debug_error</a></h4>
<p>The builtin debug error mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinrecover"><a class="header" href="#xplrconfigmodesbuiltinrecover">xplr.config.modes.builtin.recover</a></h4>
<p>The builtin recover mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinselection_ops"><a class="header" href="#xplrconfigmodesbuiltinselection_ops">xplr.config.modes.builtin.selection_ops</a></h4>
<p>The builtin selection ops mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltincreate"><a class="header" href="#xplrconfigmodesbuiltincreate">xplr.config.modes.builtin.create</a></h4>
<p>The builtin create mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltincreate_directory"><a class="header" href="#xplrconfigmodesbuiltincreate_directory">xplr.config.modes.builtin.create_directory</a></h4>
<p>The builtin create directory mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltincreate_file"><a class="header" href="#xplrconfigmodesbuiltincreate_file">xplr.config.modes.builtin.create_file</a></h4>
<p>The builtin create file mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinnumber"><a class="header" href="#xplrconfigmodesbuiltinnumber">xplr.config.modes.builtin.number</a></h4>
<p>The builtin number mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltingo_to"><a class="header" href="#xplrconfigmodesbuiltingo_to">xplr.config.modes.builtin.go_to</a></h4>
<p>The builtin go to mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinrename"><a class="header" href="#xplrconfigmodesbuiltinrename">xplr.config.modes.builtin.rename</a></h4>
<p>The builtin rename mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinduplicate_as"><a class="header" href="#xplrconfigmodesbuiltinduplicate_as">xplr.config.modes.builtin.duplicate_as</a></h4>
<p>The builtin duplicate as mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltindelete"><a class="header" href="#xplrconfigmodesbuiltindelete">xplr.config.modes.builtin.delete</a></h4>
<p>The builtin delete mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinaction"><a class="header" href="#xplrconfigmodesbuiltinaction">xplr.config.modes.builtin.action</a></h4>
<p>The builtin action mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinquit"><a class="header" href="#xplrconfigmodesbuiltinquit">xplr.config.modes.builtin.quit</a></h4>
<p>The builtin quit mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinsearch"><a class="header" href="#xplrconfigmodesbuiltinsearch">xplr.config.modes.builtin.search</a></h4>
<p>The builtin search mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinfilter"><a class="header" href="#xplrconfigmodesbuiltinfilter">xplr.config.modes.builtin.filter</a></h4>
<p>The builtin filter mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinrelative_path_does_contain"><a class="header" href="#xplrconfigmodesbuiltinrelative_path_does_contain">xplr.config.modes.builtin.relative_path_does_contain</a></h4>
<p>The builtin relative_path_does_contain mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinrelative_path_does_not_contain"><a class="header" href="#xplrconfigmodesbuiltinrelative_path_does_not_contain">xplr.config.modes.builtin.relative_path_does_not_contain</a></h4>
<p>The builtin relative_path_does_not_contain mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinsort"><a class="header" href="#xplrconfigmodesbuiltinsort">xplr.config.modes.builtin.sort</a></h4>
<p>The builtin sort mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinswitch_layout"><a class="header" href="#xplrconfigmodesbuiltinswitch_layout">xplr.config.modes.builtin.switch_layout</a></h4>
<p>The builtin switch layout mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodescustom"><a class="header" href="#xplrconfigmodescustom">xplr.config.modes.custom</a></h4>
<p>This is where you define custom modes.</p>
<p>Type: mapping of the following key-value pairs:</p>
<ul>
<li>key: string</li>
<li>value: <a href="https://xplr.dev/en/mode">Mode</a></li>
</ul>
<p>Example:</p>
<pre><code class="language-lua">xplr.config.modes.custom.example = {
name = &quot;example&quot;,
key_bindings = {
on_key = {
enter = {
help = &quot;default mode&quot;,
messages = {
&quot;PopMode&quot;,
{ SwitchModeBuiltin = &quot;default&quot; },
},
},
},
},
}
xplr.config.general.initial_mode = &quot;example&quot;
</code></pre>
</main>

@ -140,13 +140,79 @@
<div id="content" class="content">
<main>
<h1 id="node-types"><a class="header" href="#node-types">Node Types</a></h1>
<p>This configuration is exposed via the <code>xplr.config.node_types</code> API.</p>
<p>For now, kindly refer to <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua"><strong>init.lua</strong></a></p>
<blockquote>
<p><strong>NEED HELP:</strong> Auto generate rest of the docs from <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua">src/init.lua</a>
using <a href="https://github.com/sayanarijit/xplr/blob/main/docs/script/generate.py">docs/script/generate.py</a>.</p>
</blockquote>
<h3 id="node-types"><a class="header" href="#node-types">Node Types</a></h3>
<p>This section defines how to deal with different kinds of nodes (files,
directories, symlinks etc.) based on their properties.</p>
<p>One node can fall into multiple categories. For example, a node can have the
<em>extension</em> <code>md</code>, and also be a <em>file</em>. In that case, the properties from
the more specific category i.e. <em>extension</em> will be used.</p>
<p>This can be configured using the <code>xplr.config.node_types</code> Lua API.</p>
<h4 id="xplrconfignode_typesdirectorystyle"><a class="header" href="#xplrconfignode_typesdirectorystyle">xplr.config.node_types.directory.style</a></h4>
<p>The style for the directory nodes</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfignode_typesdirectorymetaicon"><a class="header" href="#xplrconfignode_typesdirectorymetaicon">xplr.config.node_types.directory.meta.icon</a></h4>
<p>Metadata for the directory nodes</p>
<p>Type: nullable string</p>
<h4 id="xplrconfignode_typesfilestyle"><a class="header" href="#xplrconfignode_typesfilestyle">xplr.config.node_types.file.style</a></h4>
<p>The style for the file nodes</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfignode_typesfilemetaicon"><a class="header" href="#xplrconfignode_typesfilemetaicon">xplr.config.node_types.file.meta.icon</a></h4>
<p>Metadata for the file nodes</p>
<p>Type: nullable string</p>
<h4 id="xplrconfignode_typessymlinkstyle"><a class="header" href="#xplrconfignode_typessymlinkstyle">xplr.config.node_types.symlink.style</a></h4>
<p>The style for the symlink nodes</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfignode_typessymlinkmetaicon"><a class="header" href="#xplrconfignode_typessymlinkmetaicon">xplr.config.node_types.symlink.meta.icon</a></h4>
<p>Metadata for the symlink nodes</p>
<p>Type: nullable string
Metadata and style based on mime types.
It is possible to use the wildcard <code>*</code> to match all mime sub types. It will
be overwritten by the more specific sub types that are defined.</p>
<p>Type: mapping of the following key-value pairs:</p>
<ul>
<li>key: string</li>
<li>value:
<ul>
<li>key: string</li>
<li>value: <a href="https://xplr.dev/en/node-type">Node Type</a></li>
</ul>
</li>
</ul>
<p>Example:</p>
<pre><code class="language-lua">xplr.config.node_types.mime_essence = {
application = {
-- application/*
[&quot;*&quot;] = { meta = { icon = &quot;a&quot; } }
-- application/pdf
pdf = { meta = { icon = &quot;&quot; }, style = { fg = &quot;Blue&quot; } },
-- application/zip
zip = { meta = { icon = &quot;&quot;} },
},
}
</code></pre>
<h4 id="xplrconfignode_typesextension"><a class="header" href="#xplrconfignode_typesextension">xplr.config.node_types.extension</a></h4>
<p>Metadata and style based on extension.</p>
<p>Type: mapping of the following key-value pairs:</p>
<ul>
<li>key: string</li>
<li>value: <a href="https://xplr.dev/en/node-type">Node Type</a></li>
</ul>
<p>Example:</p>
<pre><code class="language-lua">xplr.config.node_types.extension.md = { meta = { icon = &quot;&quot; }, style = { fg = &quot;Blue&quot; } }
xplr.config.node_types.extension.rs = { meta = { icon = &quot;🦀&quot; } }
</code></pre>
<h4 id="xplrconfignode_typesspecial"><a class="header" href="#xplrconfignode_typesspecial">xplr.config.node_types.special</a></h4>
<p>Metadata and style based on special file names.</p>
<p>Type: mapping of the following key-value pairs:</p>
<ul>
<li>key: string</li>
<li>value: <a href="https://xplr.dev/en/node-type">Node Type</a></li>
</ul>
<p>Example:</p>
<pre><code class="language-lua">xplr.config.node_types.special[&quot;Cargo.toml&quot;] = { meta = { icon = &quot;&quot; } }
xplr.config.node_types.special[&quot;Downloads&quot;] = { meta = { icon = &quot;&quot; }, style = { fg = &quot;Blue&quot; } }
</code></pre>
</main>

@ -418,38 +418,564 @@ using the following lookup order:</p>
<p>The first one found will be loaded by xplr and the lookup will stop.</p>
<p>The loaded config can be further extended using the <code>-C</code> or <code>--extra-config</code>
command-line option.</p>
<blockquote>
<p><strong>NEED HELP:</strong> Auto generate rest of the docs from <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua">src/init.lua</a>
using <a href="https://github.com/sayanarijit/xplr/blob/main/docs/script/generate.py">docs/script/generate.py</a>.</p>
</blockquote>
<div style="break-before: page; page-break-before: always;"></div><h1 id="general-config"><a class="header" href="#general-config">General Config</a></h1>
<p>This configuration is exposed via the <code>xplr.config.general</code> API.</p>
<p>For now, kindly refer to <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua"><strong>init.lua</strong></a></p>
<blockquote>
<p><strong>NEED HELP:</strong> Auto generate rest of the docs from <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua">src/init.lua</a>
using <a href="https://github.com/sayanarijit/xplr/blob/main/docs/script/generate.py">docs/script/generate.py</a>.</p>
</blockquote>
<div style="break-before: page; page-break-before: always;"></div><h1 id="node-types"><a class="header" href="#node-types">Node Types</a></h1>
<p>This configuration is exposed via the <code>xplr.config.node_types</code> API.</p>
<p>For now, kindly refer to <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua"><strong>init.lua</strong></a></p>
<blockquote>
<p><strong>NEED HELP:</strong> Auto generate rest of the docs from <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua">src/init.lua</a>
using <a href="https://github.com/sayanarijit/xplr/blob/main/docs/script/generate.py">docs/script/generate.py</a>.</p>
</blockquote>
<div style="break-before: page; page-break-before: always;"></div><h1 id="layouts"><a class="header" href="#layouts">Layouts</a></h1>
<p>This configuration is exposed via the <code>xplr.config.layouts</code> API.</p>
<p>For now, kindly refer to <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua"><strong>init.lua</strong></a></p>
<blockquote>
<p><strong>NEED HELP:</strong> Auto generate rest of the docs from <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua">src/init.lua</a>
using <a href="https://github.com/sayanarijit/xplr/blob/main/docs/script/generate.py">docs/script/generate.py</a>.</p>
</blockquote>
<div style="break-before: page; page-break-before: always;"></div><h1 id="modes"><a class="header" href="#modes">Modes</a></h1>
<p>This configuration is exposed via the <code>xplr.config.modes</code> API.</p>
<p>For now, kindly refer to <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua"><strong>init.lua</strong></a></p>
<blockquote>
<p><strong>NEED HELP:</strong> Auto generate rest of the docs from <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua">src/init.lua</a>
using <a href="https://github.com/sayanarijit/xplr/blob/main/docs/script/generate.py">docs/script/generate.py</a>.</p>
</blockquote>
<h2 id="config"><a class="header" href="#config">Config</a></h2>
<p>The xplr configuration, exposed via <code>xplr.config</code> Lua API contains the
following sections.</p>
<p>See:</p>
<ul>
<li><a href="https://xplr.dev/en/general-config">xplr.config.general</a></li>
<li><a href="https://xplr.dev/en/node_types">xplr.config.node_types</a></li>
<li><a href="https://xplr.dev/en/layouts">xplr.config.layouts</a></li>
<li><a href="https://xplr.dev/en/modes">xplr.config.modes</a></li>
</ul>
<h2 id="function"><a class="header" href="#function">Function</a></h2>
<p>While <code>xplr.config</code> defines all the static parts of the configuration,
<code>xplr.fn</code> defines all the dynamic parts using functions.</p>
<p>See: <a href="https://xplr.dev/en/lua-function-calls">Lua Function Calls</a></p>
<h3 id="builtin-functions"><a class="header" href="#builtin-functions">Builtin Functions</a></h3>
<p>As always, <code>xplr.fn.builtin</code> is where the built-in functions are defined
that can be overwritten.</p>
<h4 id="xplrfnbuiltinfmt_general_table_row_cols_0"><a class="header" href="#xplrfnbuiltinfmt_general_table_row_cols_0">xplr.fn.builtin.fmt_general_table_row_cols_0</a></h4>
<p>Renders the first column in the table</p>
<h4 id="xplrfnbuiltinfmt_general_table_row_cols_1"><a class="header" href="#xplrfnbuiltinfmt_general_table_row_cols_1">xplr.fn.builtin.fmt_general_table_row_cols_1</a></h4>
<p>Renders the second column in the table</p>
<h4 id="xplrfnbuiltinfmt_general_table_row_cols_2"><a class="header" href="#xplrfnbuiltinfmt_general_table_row_cols_2">xplr.fn.builtin.fmt_general_table_row_cols_2</a></h4>
<p>Renders the third column in the table</p>
<h4 id="xplrfnbuiltinfmt_general_table_row_cols_3"><a class="header" href="#xplrfnbuiltinfmt_general_table_row_cols_3">xplr.fn.builtin.fmt_general_table_row_cols_3</a></h4>
<p>Renders the fourth column in the table</p>
<h4 id="xplrfnbuiltinfmt_general_table_row_cols_4"><a class="header" href="#xplrfnbuiltinfmt_general_table_row_cols_4">xplr.fn.builtin.fmt_general_table_row_cols_4</a></h4>
<p>Renders the fifth column in the table</p>
<h3 id="custom-functions"><a class="header" href="#custom-functions">Custom Functions</a></h3>
<p>This is where the custom functions can be added.</p>
<p>There is currently no restriction on what kind of functions can be defined
in <code>xplr.fn.custom</code>.</p>
<p>You can also use nested tables such as
<code>xplr.fn.custom.my_plugin.my_function</code> to define custom functions.</p>
<div style="break-before: page; page-break-before: always;"></div><h3 id="general-configuration"><a class="header" href="#general-configuration">General Configuration</a></h3>
<p>The general configuration properties are grouped together in
<code>xplr.config.general</code>.</p>
<h4 id="xplrconfiggeneraldisable_debug_error_mode"><a class="header" href="#xplrconfiggeneraldisable_debug_error_mode">xplr.config.general.disable_debug_error_mode</a></h4>
<p>Set it to <code>true</code> if you want to ignore the startup errors. You can still see
the errors in the logs.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralenable_mouse"><a class="header" href="#xplrconfiggeneralenable_mouse">xplr.config.general.enable_mouse</a></h4>
<p>Set it to <code>true</code> if you want to enable mouse scrolling.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralshow_hidden"><a class="header" href="#xplrconfiggeneralshow_hidden">xplr.config.general.show_hidden</a></h4>
<p>Set it to <code>true</code> to show hidden files by default.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralread_only"><a class="header" href="#xplrconfiggeneralread_only">xplr.config.general.read_only</a></h4>
<p>Set it to <code>true</code> to use only a subset of selected operations that forbids
executing commands or performing write operations on the file-system.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralenable_recover_mode"><a class="header" href="#xplrconfiggeneralenable_recover_mode">xplr.config.general.enable_recover_mode</a></h4>
<p>Set it to <code>true</code> if you want to enable a safety feature that will save you
from yourself when you type recklessly.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralhide_remaps_in_help_menu"><a class="header" href="#xplrconfiggeneralhide_remaps_in_help_menu">xplr.config.general.hide_remaps_in_help_menu</a></h4>
<p>Set it to <code>true</code> if you want to hide all remaps in the help menu.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralenforce_bounded_index_navigation"><a class="header" href="#xplrconfiggeneralenforce_bounded_index_navigation">xplr.config.general.enforce_bounded_index_navigation</a></h4>
<p>Set it to <code>true</code> if you want the cursor to stay in the same position when
the focus is on the first path and you navigate to the previous path
(by pressing <code>up</code>/<code>k</code>), or when the focus is on the last path and you
navigate to the next path (by pressing <code>down</code>/<code>j</code>).
The default behavior is to rotate from the last/first path.</p>
<p>Type: boolean</p>
<h4 id="xplrconfiggeneralpromptformat"><a class="header" href="#xplrconfiggeneralpromptformat">xplr.config.general.prompt.format</a></h4>
<p>This is the shape of the prompt for the input buffer.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpromptstyle"><a class="header" href="#xplrconfiggeneralpromptstyle">xplr.config.general.prompt.style</a></h4>
<p>This is the style of the prompt for the input buffer.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggenerallogsinfoformat"><a class="header" href="#xplrconfiggenerallogsinfoformat">xplr.config.general.logs.info.format</a></h4>
<p>The string to indicate an information in logs.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggenerallogsinfostyle"><a class="header" href="#xplrconfiggenerallogsinfostyle">xplr.config.general.logs.info.style</a></h4>
<p>The style for the informations logs.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggenerallogssuccessformat"><a class="header" href="#xplrconfiggenerallogssuccessformat">xplr.config.general.logs.success.format</a></h4>
<p>The string to indicate an success in logs.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggenerallogssuccessstyle"><a class="header" href="#xplrconfiggenerallogssuccessstyle">xplr.config.general.logs.success.style</a></h4>
<p>The style for the success logs.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggenerallogswarningformat"><a class="header" href="#xplrconfiggenerallogswarningformat">xplr.config.general.logs.warning.format</a></h4>
<p>The string to indicate an warnings in logs.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggenerallogswarningstyle"><a class="header" href="#xplrconfiggenerallogswarningstyle">xplr.config.general.logs.warning.style</a></h4>
<p>The style for the warnings logs.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggenerallogserrorformat"><a class="header" href="#xplrconfiggenerallogserrorformat">xplr.config.general.logs.error.format</a></h4>
<p>The string to indicate an error in logs.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggenerallogserrorstyle"><a class="header" href="#xplrconfiggenerallogserrorstyle">xplr.config.general.logs.error.style</a></h4>
<p>The style for the error logs.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneraltableheadercols"><a class="header" href="#xplrconfiggeneraltableheadercols">xplr.config.general.table.header.cols</a></h4>
<p>Columns to display in the table header.</p>
<p>Type: nullable list of tables with the following fields:</p>
<ul>
<li>format: nullable string</li>
<li>style: <a href="https://xplr.dev/en/style">Style</a></li>
</ul>
<h4 id="xplrconfiggeneraltableheaderstyle"><a class="header" href="#xplrconfiggeneraltableheaderstyle">xplr.config.general.table.header.style</a></h4>
<p>Style of the table header.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneraltableheaderheight"><a class="header" href="#xplrconfiggeneraltableheaderheight">xplr.config.general.table.header.height</a></h4>
<p>Height of the table header.</p>
<p>Type: nullable integer</p>
<h4 id="xplrconfiggeneraltablerowcols"><a class="header" href="#xplrconfiggeneraltablerowcols">xplr.config.general.table.row.cols</a></h4>
<p>Columns to display in each row in the table.</p>
<p>Type: nullable list of tables with the following fields:</p>
<ul>
<li>format: nullable string</li>
<li>style: <a href="https://xplr.dev/en/style">Style</a></li>
</ul>
<h4 id="xplrconfiggeneraltablerowstyle"><a class="header" href="#xplrconfiggeneraltablerowstyle">xplr.config.general.table.row.style</a></h4>
<p>Default style of the table.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneraltablerowheight"><a class="header" href="#xplrconfiggeneraltablerowheight">xplr.config.general.table.row.height</a></h4>
<p>Height of the table rows.</p>
<p>Type: nullable integer</p>
<h4 id="xplrconfiggeneraltablestyle"><a class="header" href="#xplrconfiggeneraltablestyle">xplr.config.general.table.style</a></h4>
<p>Default style of the table.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneraltabletree"><a class="header" href="#xplrconfiggeneraltabletree">xplr.config.general.table.tree</a></h4>
<p>Tree to display in the table.</p>
<p>Type: nullable list of tables with the following fields:</p>
<ul>
<li>format: nullable string</li>
<li>style: <a href="https://xplr.dev/en/style">Style</a></li>
</ul>
<h4 id="xplrconfiggeneraltablecol_spacing"><a class="header" href="#xplrconfiggeneraltablecol_spacing">xplr.config.general.table.col_spacing</a></h4>
<p>Spacing between the columns in the table.</p>
<p>Type: nullable integer</p>
<h4 id="xplrconfiggeneraltablecol_widths"><a class="header" href="#xplrconfiggeneraltablecol_widths">xplr.config.general.table.col_widths</a></h4>
<p>Constraint for the column widths.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/layouts#constraint">Constraint</a></p>
<h4 id="xplrconfiggeneraldefault_uiprefix"><a class="header" href="#xplrconfiggeneraldefault_uiprefix">xplr.config.general.default_ui.prefix</a></h4>
<p>The content that is placed before the item name for each row by default.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneraldefault_uisuffix"><a class="header" href="#xplrconfiggeneraldefault_uisuffix">xplr.config.general.default_ui.suffix</a></h4>
<p>The content which is appended to each item name for each row by default.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneraldefault_uistyle"><a class="header" href="#xplrconfiggeneraldefault_uistyle">xplr.config.general.default_ui.style</a></h4>
<p>The default style of each item for each row.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralfocus_uiprefix"><a class="header" href="#xplrconfiggeneralfocus_uiprefix">xplr.config.general.focus_ui.prefix</a></h4>
<p>The string placed before the item name for a focused row.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralfocus_uisuffix"><a class="header" href="#xplrconfiggeneralfocus_uisuffix">xplr.config.general.focus_ui.suffix</a></h4>
<p>The string placed after the item name for a focused row.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralfocus_uistyle"><a class="header" href="#xplrconfiggeneralfocus_uistyle">xplr.config.general.focus_ui.style({</a></h4>
<p>Style for focused item.
Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralselection_uiprefix"><a class="header" href="#xplrconfiggeneralselection_uiprefix">xplr.config.general.selection_ui.prefix</a></h4>
<p>The string placed before the item name for a selected row.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralselection_uisuffix"><a class="header" href="#xplrconfiggeneralselection_uisuffix">xplr.config.general.selection_ui.suffix</a></h4>
<p>The string placed after the item name for a selected row.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralselection_uistyle"><a class="header" href="#xplrconfiggeneralselection_uistyle">xplr.config.general.selection_ui.style</a></h4>
<p>Style for selected rows.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralfocus_selection_uiprefix"><a class="header" href="#xplrconfiggeneralfocus_selection_uiprefix">xplr.config.general.focus_selection_ui.prefix</a></h4>
<p>The string placed before item name for a selected row that gets the focus.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralfocus_selection_uisuffix"><a class="header" href="#xplrconfiggeneralfocus_selection_uisuffix">xplr.config.general.focus_selection_ui.suffix</a></h4>
<p>The string placed after the item name for a selected row that gets the focus.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralfocus_selection_uistyle"><a class="header" href="#xplrconfiggeneralfocus_selection_uistyle">xplr.config.general.focus_selection_ui.style</a></h4>
<p>Style for a selected row that gets the focus.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralsort_and_filter_uiseparatorformat"><a class="header" href="#xplrconfiggeneralsort_and_filter_uiseparatorformat">xplr.config.general.sort_and_filter_ui.separator.format</a></h4>
<p>The shape of the separator for the Sort &amp; filter panel.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralsort_and_filter_uiseparatorstyle"><a class="header" href="#xplrconfiggeneralsort_and_filter_uiseparatorstyle">xplr.config.general.sort_and_filter_ui.separator.style</a></h4>
<p>The style of the separator for the Sort &amp; filter panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralsort_and_filter_uidefault_identifierformat"><a class="header" href="#xplrconfiggeneralsort_and_filter_uidefault_identifierformat">xplr.config.general.sort_and_filter_ui.default_identifier.format</a></h4>
<p>The content of the default identifier in Sort &amp; filter panel.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralsort_and_filter_uidefault_identifierstyle"><a class="header" href="#xplrconfiggeneralsort_and_filter_uidefault_identifierstyle">xplr.config.general.sort_and_filter_ui.default_identifier.style</a></h4>
<p>Style for the default identifier in Sort &amp; filter panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralsort_and_filter_uisort_direction_identifiersforwardformat"><a class="header" href="#xplrconfiggeneralsort_and_filter_uisort_direction_identifiersforwardformat">xplr.config.general.sort_and_filter_ui.sort_direction_identifiers.forward.format</a></h4>
<p>The shape of the forward direction indicator for sort identifiers in Sort &amp; filter panel.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralsort_and_filter_uisort_direction_identifiersforwardstyle"><a class="header" href="#xplrconfiggeneralsort_and_filter_uisort_direction_identifiersforwardstyle">xplr.config.general.sort_and_filter_ui.sort_direction_identifiers.forward.style</a></h4>
<p>Style of forward direction indicator in Sort &amp; filter panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralsort_and_filter_uisort_direction_identifiersreverseformat"><a class="header" href="#xplrconfiggeneralsort_and_filter_uisort_direction_identifiersreverseformat">xplr.config.general.sort_and_filter_ui.sort_direction_identifiers.reverse.format</a></h4>
<p>The shape of the reverse direction indicator for sort identifiers in Sort &amp; filter panel.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralsort_and_filter_uisort_direction_identifiersreversestyle"><a class="header" href="#xplrconfiggeneralsort_and_filter_uisort_direction_identifiersreversestyle">xplr.config.general.sort_and_filter_ui.sort_direction_identifiers.reverse.style</a></h4>
<p>Style of reverse direction indicator in Sort &amp; filter panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralsort_and_filter_uisorter_identifiers"><a class="header" href="#xplrconfiggeneralsort_and_filter_uisorter_identifiers">xplr.config.general.sort_and_filter_ui.sorter_identifiers</a></h4>
<p>The identifiers used to denote applied sorters in the Sort &amp; filter panel.</p>
<p>Type: nullable mapping of the following key-value pairs:</p>
<ul>
<li>key: <a href="https://xplr.dev/en/sorting#sorter">Sorter</a></li>
<li>value:
<ul>
<li>format: nullable string</li>
<li>style: [Style][https://xplr.dev/en/style]</li>
</ul>
</li>
</ul>
<h4 id="xplrconfiggeneralsort_and_filter_uifilter_identifiers"><a class="header" href="#xplrconfiggeneralsort_and_filter_uifilter_identifiers">xplr.config.general.sort_and_filter_ui.filter_identifiers</a></h4>
<p>The identifiers used to denote applied filters in the Sort &amp; filter panel.</p>
<p>Type: nullable mapping of the following key-value pairs:</p>
<ul>
<li>key: <a href="https://xplr.dev/en/filtering#filter">Filter</a></li>
<li>value:
<ul>
<li>format: nullable string</li>
<li>style: [Style][https://xplr.dev/en/style]</li>
</ul>
</li>
</ul>
<h4 id="xplrconfiggeneralpanel_uidefaulttitleformat"><a class="header" href="#xplrconfiggeneralpanel_uidefaulttitleformat">xplr.config.general.panel_ui.default.title.format</a></h4>
<p>The content for panel title by default.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uidefaulttitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uidefaulttitlestyle">xplr.config.general.panel_ui.default.title.style</a></h4>
<p>The style for panel title by default.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uidefaultstyle"><a class="header" href="#xplrconfiggeneralpanel_uidefaultstyle">xplr.config.general.panel_ui.default.style</a></h4>
<p>Style of the panels by default.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uidefaultborders"><a class="header" href="#xplrconfiggeneralpanel_uidefaultborders">xplr.config.general.panel_ui.default.borders</a></h4>
<p>Defines where to show borders for the panels by default.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uidefaultborder_type"><a class="header" href="#xplrconfiggeneralpanel_uidefaultborder_type">xplr.config.general.panel_ui.default.border_type</a></h4>
<p>Type of the borders by default.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uidefaultborder_style"><a class="header" href="#xplrconfiggeneralpanel_uidefaultborder_style">xplr.config.general.panel_ui.default.border_style</a></h4>
<p>Style of the panel borders by default.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uitabletitleformat"><a class="header" href="#xplrconfiggeneralpanel_uitabletitleformat">xplr.config.general.panel_ui.table.title.format</a></h4>
<p>The content for the table panel title.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uitabletitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uitabletitlestyle">xplr.config.general.panel_ui.table.title.style</a></h4>
<p>Style of the table panel title.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uitablestyle"><a class="header" href="#xplrconfiggeneralpanel_uitablestyle">xplr.config.general.panel_ui.table.style</a></h4>
<p>Style of the table panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uitableborders"><a class="header" href="#xplrconfiggeneralpanel_uitableborders">xplr.config.general.panel_ui.table.borders</a></h4>
<p>Defines where to show borders for the table panel.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uitableborder_type"><a class="header" href="#xplrconfiggeneralpanel_uitableborder_type">xplr.config.general.panel_ui.table.border_type</a></h4>
<p>Type of the borders for table panel.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uitableborder_style"><a class="header" href="#xplrconfiggeneralpanel_uitableborder_style">xplr.config.general.panel_ui.table.border_style</a></h4>
<p>Style of the table panel borders.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uihelp_menutitleformat"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menutitleformat">xplr.config.general.panel_ui.help_menu.title.format</a></h4>
<p>The content for the help menu panel title.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uihelp_menutitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menutitlestyle">xplr.config.general.panel_ui.help_menu.title.style</a></h4>
<p>Style of the help menu panel title.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uihelp_menustyle"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menustyle">xplr.config.general.panel_ui.help_menu.style</a></h4>
<p>Style of the help menu panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uihelp_menuborders"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menuborders">xplr.config.general.panel_ui.help_menu.borders</a></h4>
<p>Defines where to show borders for the help menu panel.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uihelp_menuborder_type"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menuborder_type">xplr.config.general.panel_ui.help_menu.border_type</a></h4>
<p>Type of the borders for help menu panel.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uihelp_menuborder_style"><a class="header" href="#xplrconfiggeneralpanel_uihelp_menuborder_style">xplr.config.general.panel_ui.help_menu.border_style</a></h4>
<p>Style of the help menu panel borders.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logstitleformat"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logstitleformat">xplr.config.general.panel_ui.input_and_logs.title.format</a></h4>
<p>The content for the input &amp; logs panel title.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logstitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logstitlestyle">xplr.config.general.panel_ui.input_and_logs.title.style</a></h4>
<p>Style of the input &amp; logs panel title.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logsborders"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logsborders">xplr.config.general.panel_ui.input_and_logs.borders</a></h4>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logsstyle"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logsstyle">xplr.config.general.panel_ui.input_and_logs.style</a></h4>
<p>Style of the input &amp; logs panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a>
Defines where to show borders for the input &amp; logs panel.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logsborder_type"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logsborder_type">xplr.config.general.panel_ui.input_and_logs.border_type</a></h4>
<p>Type of the borders for input &amp; logs panel.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uiinput_and_logsborder_style"><a class="header" href="#xplrconfiggeneralpanel_uiinput_and_logsborder_style">xplr.config.general.panel_ui.input_and_logs.border_style</a></h4>
<p>Style of the input &amp; logs panel borders.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uiselectiontitleformat"><a class="header" href="#xplrconfiggeneralpanel_uiselectiontitleformat">xplr.config.general.panel_ui.selection.title.format</a></h4>
<p>The content for the selection panel title.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uiselectiontitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uiselectiontitlestyle">xplr.config.general.panel_ui.selection.title.style</a></h4>
<p>Style of the selection panel title.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uiselectionborders"><a class="header" href="#xplrconfiggeneralpanel_uiselectionborders">xplr.config.general.panel_ui.selection.borders</a></h4>
<h4 id="xplrconfiggeneralpanel_uiselectionstyle"><a class="header" href="#xplrconfiggeneralpanel_uiselectionstyle">xplr.config.general.panel_ui.selection.style</a></h4>
<p>Style of the selection panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a>
Defines where to show borders for the selection panel.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uiselectionborder_type"><a class="header" href="#xplrconfiggeneralpanel_uiselectionborder_type">xplr.config.general.panel_ui.selection.border_type</a></h4>
<p>Type of the borders for selection panel.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uiselectionborder_style"><a class="header" href="#xplrconfiggeneralpanel_uiselectionborder_style">xplr.config.general.panel_ui.selection.border_style</a></h4>
<p>Style of the selection panel borders.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filtertitleformat"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filtertitleformat">xplr.config.general.panel_ui.sort_and_filter.title.format</a></h4>
<p>The content for the sort &amp; filter panel title.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filtertitlestyle"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filtertitlestyle">xplr.config.general.panel_ui.sort_and_filter.title.style</a></h4>
<p>Style of the sort &amp; filter panel title.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filterstyle"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filterstyle">xplr.config.general.panel_ui.sort_and_filter.style</a></h4>
<p>Style of the sort &amp; filter panel.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filterborders"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filterborders">xplr.config.general.panel_ui.sort_and_filter.borders</a></h4>
<p>Defines where to show borders for the sort &amp; filter panel.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/borders#border">Border</a></p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filterborder_type"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filterborder_type">xplr.config.general.panel_ui.sort_and_filter.border_type</a></h4>
<p>Type of the borders for sort &amp; filter panel.</p>
<p>Type: nullable <a href="https://xplr.dev/en/borders#border-type">Border Type</a></p>
<h4 id="xplrconfiggeneralpanel_uisort_and_filterborder_style"><a class="header" href="#xplrconfiggeneralpanel_uisort_and_filterborder_style">xplr.config.general.panel_ui.sort_and_filter.border_style</a></h4>
<p>Style of the sort &amp; filter panel borders.</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfiggeneralinitial_sorting"><a class="header" href="#xplrconfiggeneralinitial_sorting">xplr.config.general.initial_sorting</a></h4>
<p>Initial group if sorters applied to the nodes list in the table.</p>
<p>Type: nullable list of <a href="https://xplr.dev/en/sorting#node-sorter-applicable">Node Sorter</a></p>
<h4 id="xplrconfiggeneralinitial_mode"><a class="header" href="#xplrconfiggeneralinitial_mode">xplr.config.general.initial_mode</a></h4>
<p>The name of one of the modes to use when xplr loads.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralinitial_layout"><a class="header" href="#xplrconfiggeneralinitial_layout">xplr.config.general.initial_layout</a></h4>
<p>The name of one of the layouts to use when xplr loads.</p>
<p>Type: nullable string</p>
<h4 id="xplrconfiggeneralstart_fifo"><a class="header" href="#xplrconfiggeneralstart_fifo">xplr.config.general.start_fifo</a></h4>
<p>Set it to a file path to start fifo when xplr loads.
Generally it is used to integrate with external tools like previewers.</p>
<p>Type: nullable string</p>
<div style="break-before: page; page-break-before: always;"></div><h3 id="node-types"><a class="header" href="#node-types">Node Types</a></h3>
<p>This section defines how to deal with different kinds of nodes (files,
directories, symlinks etc.) based on their properties.</p>
<p>One node can fall into multiple categories. For example, a node can have the
<em>extension</em> <code>md</code>, and also be a <em>file</em>. In that case, the properties from
the more specific category i.e. <em>extension</em> will be used.</p>
<p>This can be configured using the <code>xplr.config.node_types</code> Lua API.</p>
<h4 id="xplrconfignode_typesdirectorystyle"><a class="header" href="#xplrconfignode_typesdirectorystyle">xplr.config.node_types.directory.style</a></h4>
<p>The style for the directory nodes</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfignode_typesdirectorymetaicon"><a class="header" href="#xplrconfignode_typesdirectorymetaicon">xplr.config.node_types.directory.meta.icon</a></h4>
<p>Metadata for the directory nodes</p>
<p>Type: nullable string</p>
<h4 id="xplrconfignode_typesfilestyle"><a class="header" href="#xplrconfignode_typesfilestyle">xplr.config.node_types.file.style</a></h4>
<p>The style for the file nodes</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfignode_typesfilemetaicon"><a class="header" href="#xplrconfignode_typesfilemetaicon">xplr.config.node_types.file.meta.icon</a></h4>
<p>Metadata for the file nodes</p>
<p>Type: nullable string</p>
<h4 id="xplrconfignode_typessymlinkstyle"><a class="header" href="#xplrconfignode_typessymlinkstyle">xplr.config.node_types.symlink.style</a></h4>
<p>The style for the symlink nodes</p>
<p>Type: <a href="https://xplr.dev/en/style">Style</a></p>
<h4 id="xplrconfignode_typessymlinkmetaicon"><a class="header" href="#xplrconfignode_typessymlinkmetaicon">xplr.config.node_types.symlink.meta.icon</a></h4>
<p>Metadata for the symlink nodes</p>
<p>Type: nullable string
Metadata and style based on mime types.
It is possible to use the wildcard <code>*</code> to match all mime sub types. It will
be overwritten by the more specific sub types that are defined.</p>
<p>Type: mapping of the following key-value pairs:</p>
<ul>
<li>key: string</li>
<li>value:
<ul>
<li>key: string</li>
<li>value: <a href="https://xplr.dev/en/node-type">Node Type</a></li>
</ul>
</li>
</ul>
<p>Example:</p>
<pre><code class="language-lua">xplr.config.node_types.mime_essence = {
application = {
-- application/*
[&quot;*&quot;] = { meta = { icon = &quot;a&quot; } }
-- application/pdf
pdf = { meta = { icon = &quot;&quot; }, style = { fg = &quot;Blue&quot; } },
-- application/zip
zip = { meta = { icon = &quot;&quot;} },
},
}
</code></pre>
<h4 id="xplrconfignode_typesextension"><a class="header" href="#xplrconfignode_typesextension">xplr.config.node_types.extension</a></h4>
<p>Metadata and style based on extension.</p>
<p>Type: mapping of the following key-value pairs:</p>
<ul>
<li>key: string</li>
<li>value: <a href="https://xplr.dev/en/node-type">Node Type</a></li>
</ul>
<p>Example:</p>
<pre><code class="language-lua">xplr.config.node_types.extension.md = { meta = { icon = &quot;&quot; }, style = { fg = &quot;Blue&quot; } }
xplr.config.node_types.extension.rs = { meta = { icon = &quot;🦀&quot; } }
</code></pre>
<h4 id="xplrconfignode_typesspecial"><a class="header" href="#xplrconfignode_typesspecial">xplr.config.node_types.special</a></h4>
<p>Metadata and style based on special file names.</p>
<p>Type: mapping of the following key-value pairs:</p>
<ul>
<li>key: string</li>
<li>value: <a href="https://xplr.dev/en/node-type">Node Type</a></li>
</ul>
<p>Example:</p>
<pre><code class="language-lua">xplr.config.node_types.special[&quot;Cargo.toml&quot;] = { meta = { icon = &quot;&quot; } }
xplr.config.node_types.special[&quot;Downloads&quot;] = { meta = { icon = &quot;&quot; }, style = { fg = &quot;Blue&quot; } }
</code></pre>
<div style="break-before: page; page-break-before: always;"></div><h3 id="layouts"><a class="header" href="#layouts">Layouts</a></h3>
<p>xplr layouts define the structure of the UI, i.e. how many panel we see,
placement and size of the panels, how they look etc.</p>
<p>This is configuration exposed via the <code>xplr.config.layouts</code> API.</p>
<p><code>xplr.config.layouts.builtin</code> contain some built-in panels which can be
overridden, but you can't add or remove panels in it.</p>
<p>You can add new panels in <code>xplr.config.layouts.custom</code>.</p>
<h5 id="example-defining-custom-layout"><a class="header" href="#example-defining-custom-layout">Example: Defining Custom Layout</a></h5>
<p><img src="https://s6.gifyu.com/images/layout.png" alt="demo" /></p>
<pre><code class="language-lua">xplr.config.layouts.builtin.default = {
Horizontal = {
config = {
margin = 1,
horizontal_margin = 2,
vertical_margin = 3,
constraints = {
{ Percentage = 50 },
{ Percentage = 50 },
}
},
splits = {
&quot;Table&quot;,
&quot;HelpMenu&quot;,
}
}
}
</code></pre>
<h4 id="xplrconfiglayoutsbuiltindefault"><a class="header" href="#xplrconfiglayoutsbuiltindefault">xplr.config.layouts.builtin.default</a></h4>
<p>The default layout</p>
<p>Type: <a href="https://xplr.dev/en/layout">Layout</a></p>
<h4 id="xplrconfiglayoutsbuiltinno_help"><a class="header" href="#xplrconfiglayoutsbuiltinno_help">xplr.config.layouts.builtin.no_help</a></h4>
<p>The layout without help menu</p>
<p>Type: <a href="https://xplr.dev/en/layout">Layout</a></p>
<h4 id="xplrconfiglayoutsbuiltinno_selection"><a class="header" href="#xplrconfiglayoutsbuiltinno_selection">xplr.config.layouts.builtin.no_selection</a></h4>
<p>The layout without selection panel</p>
<p>Type: <a href="https://xplr.dev/en/layout">Layout</a></p>
<h4 id="xplrconfiglayoutsbuiltinno_help_no_selection"><a class="header" href="#xplrconfiglayoutsbuiltinno_help_no_selection">xplr.config.layouts.builtin.no_help_no_selection</a></h4>
<p>The layout without help menu and selection panel</p>
<p>Type: <a href="https://xplr.dev/en/layout">Layout</a></p>
<h4 id="xplrconfiglayoutscustom"><a class="header" href="#xplrconfiglayoutscustom">xplr.config.layouts.custom</a></h4>
<p>This is where you can define custom layouts</p>
<p>Type: mapping of the following key-value pairs:</p>
<ul>
<li>key: string</li>
<li>value: <a href="https://xplr.dev/en/layout">Layout</a></li>
</ul>
<p>Example:</p>
<pre><code class="language-lua">xplr.config.layouts.custom.example = &quot;Nothing&quot; -- Show a blank screen
xplr.config.general.initial_layout = &quot;example&quot; -- Load the example layout
</code></pre>
<div style="break-before: page; page-break-before: always;"></div><h3 id="modes"><a class="header" href="#modes">Modes</a></h3>
<p>xplr is a modal file explorer. That means the users switch between different
modes, each containing a different set of key bindings to avoid clashes.
Users can switch between these modes at run-time.</p>
<p>The modes can be configured using the <code>xplr.config.modes</code> Lua API.</p>
<p><code>xplr.config.modes.builtin</code> contain some built-in modes which can be
overridden, but you can't add or remove modes in it.</p>
<h4 id="xplrconfigmodesbuiltindefault"><a class="header" href="#xplrconfigmodesbuiltindefault">xplr.config.modes.builtin.default</a></h4>
<p>The builtin default mode.
Visit the <a href="https://xplr.dev/en/default-key-bindings">Default Key Bindings</a>
to see what each mode does.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltindebug_error"><a class="header" href="#xplrconfigmodesbuiltindebug_error">xplr.config.modes.builtin.debug_error</a></h4>
<p>The builtin debug error mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinrecover"><a class="header" href="#xplrconfigmodesbuiltinrecover">xplr.config.modes.builtin.recover</a></h4>
<p>The builtin recover mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinselection_ops"><a class="header" href="#xplrconfigmodesbuiltinselection_ops">xplr.config.modes.builtin.selection_ops</a></h4>
<p>The builtin selection ops mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltincreate"><a class="header" href="#xplrconfigmodesbuiltincreate">xplr.config.modes.builtin.create</a></h4>
<p>The builtin create mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltincreate_directory"><a class="header" href="#xplrconfigmodesbuiltincreate_directory">xplr.config.modes.builtin.create_directory</a></h4>
<p>The builtin create directory mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltincreate_file"><a class="header" href="#xplrconfigmodesbuiltincreate_file">xplr.config.modes.builtin.create_file</a></h4>
<p>The builtin create file mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinnumber"><a class="header" href="#xplrconfigmodesbuiltinnumber">xplr.config.modes.builtin.number</a></h4>
<p>The builtin number mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltingo_to"><a class="header" href="#xplrconfigmodesbuiltingo_to">xplr.config.modes.builtin.go_to</a></h4>
<p>The builtin go to mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinrename"><a class="header" href="#xplrconfigmodesbuiltinrename">xplr.config.modes.builtin.rename</a></h4>
<p>The builtin rename mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinduplicate_as"><a class="header" href="#xplrconfigmodesbuiltinduplicate_as">xplr.config.modes.builtin.duplicate_as</a></h4>
<p>The builtin duplicate as mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltindelete"><a class="header" href="#xplrconfigmodesbuiltindelete">xplr.config.modes.builtin.delete</a></h4>
<p>The builtin delete mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinaction"><a class="header" href="#xplrconfigmodesbuiltinaction">xplr.config.modes.builtin.action</a></h4>
<p>The builtin action mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinquit"><a class="header" href="#xplrconfigmodesbuiltinquit">xplr.config.modes.builtin.quit</a></h4>
<p>The builtin quit mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinsearch"><a class="header" href="#xplrconfigmodesbuiltinsearch">xplr.config.modes.builtin.search</a></h4>
<p>The builtin search mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinfilter"><a class="header" href="#xplrconfigmodesbuiltinfilter">xplr.config.modes.builtin.filter</a></h4>
<p>The builtin filter mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinrelative_path_does_contain"><a class="header" href="#xplrconfigmodesbuiltinrelative_path_does_contain">xplr.config.modes.builtin.relative_path_does_contain</a></h4>
<p>The builtin relative_path_does_contain mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinrelative_path_does_not_contain"><a class="header" href="#xplrconfigmodesbuiltinrelative_path_does_not_contain">xplr.config.modes.builtin.relative_path_does_not_contain</a></h4>
<p>The builtin relative_path_does_not_contain mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinsort"><a class="header" href="#xplrconfigmodesbuiltinsort">xplr.config.modes.builtin.sort</a></h4>
<p>The builtin sort mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodesbuiltinswitch_layout"><a class="header" href="#xplrconfigmodesbuiltinswitch_layout">xplr.config.modes.builtin.switch_layout</a></h4>
<p>The builtin switch layout mode.</p>
<p>Type: <a href="https://xplr.dev/en/mode">Mode</a></p>
<h4 id="xplrconfigmodescustom"><a class="header" href="#xplrconfigmodescustom">xplr.config.modes.custom</a></h4>
<p>This is where you define custom modes.</p>
<p>Type: mapping of the following key-value pairs:</p>
<ul>
<li>key: string</li>
<li>value: <a href="https://xplr.dev/en/mode">Mode</a></li>
</ul>
<p>Example:</p>
<pre><code class="language-lua">xplr.config.modes.custom.example = {
name = &quot;example&quot;,
key_bindings = {
on_key = {
enter = {
help = &quot;default mode&quot;,
messages = {
&quot;PopMode&quot;,
{ SwitchModeBuiltin = &quot;default&quot; },
},
},
},
},
}
xplr.config.general.initial_mode = &quot;example&quot;
</code></pre>
<div style="break-before: page; page-break-before: always;"></div><h1 id="concept-1"><a class="header" href="#concept-1">Concept</a></h1>
<p>These are the concepts that make xplr probably the most hackable terminal file
explorer.</p>
@ -938,7 +1464,7 @@ metadata is set for the <a href="node_types.html#directory">directory</a>, <a hr
<li><a href="node_types.html">xplr.config.node_types</a></li>
</ul>
<div style="break-before: page; page-break-before: always;"></div><h1 id="layout"><a class="header" href="#layout">Layout</a></h1>
<h4 id="example-defining-custom-layout"><a class="header" href="#example-defining-custom-layout">Example: Defining Custom Layout</a></h4>
<h4 id="example-defining-custom-layout-1"><a class="header" href="#example-defining-custom-layout-1">Example: Defining Custom Layout</a></h4>
<p><a href="https://gifyu.com/image/1X38"><img src="https://s6.gifyu.com/images/layout.png" alt="layout.png" /></a></p>
<pre><code class="language-lua">xplr.config.layouts.builtin.default = {
Horizontal = {
@ -1436,7 +1962,7 @@ read from the input buffer.</p>
<p>Focus on the last node.</p>
<p>Example:</p>
<ul>
<li>Lua: &quot;FocusLast&quot;</li>
<li>Lua: &quot;FocusLast&quot;</li>
<li>YAML: <code>FocusLast</code></li>
</ul>
<h4 id="focuspath"><a class="header" href="#focuspath">FocusPath</a></h4>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save