@ -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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & logs panel.< / p >
< p > Type: < a href = "https://xplr.dev/en/style" > Style< / a >
Defines where to show borders for the input & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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/*
[" *" ] = { meta = { icon = " a" } }
-- application/pdf
pdf = { meta = { icon = " " }, style = { fg = " Blue" } },
-- application/zip
zip = { meta = { icon = " " } },
},
}
< / 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 = " " }, style = { fg = " Blue" } }
xplr.config.node_types.extension.rs = { meta = { icon = " 🦀" } }
< / 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[" Cargo.toml" ] = { meta = { icon = " " } }
xplr.config.node_types.special[" Downloads" ] = { meta = { icon = " " }, style = { fg = " Blue" } }
< / 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 = {
" Table" ,
" HelpMenu" ,
}
}
}
< / 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 = " Nothing" -- Show a blank screen
xplr.config.general.initial_layout = " example" -- 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 = " example" ,
key_bindings = {
on_key = {
enter = {
help = " default mode" ,
messages = {
" PopMode" ,
{ SwitchModeBuiltin = " default" },
},
},
},
},
}
xplr.config.general.initial_mode = " example"
< / 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: " FocusLast" < / li >
< li > Lua: " FocusLast" < / li >
< li > YAML: < code > FocusLast< / code > < / li >
< / ul >
< h4 id = "focuspath" > < a class = "header" href = "#focuspath" > FocusPath< / a > < / h4 >