diff --git a/en/css/general.css b/en/css/general.css index 63317b3..ef2ba50 100644 --- a/en/css/general.css +++ b/en/css/general.css @@ -12,6 +12,7 @@ html { color: var(--fg); background-color: var(--bg); text-size-adjust: none; + -webkit-text-size-adjust: none; } body { diff --git a/en/install.html b/en/install.html index c91d5e9..8d59b94 100644 --- a/en/install.html +++ b/en/install.html @@ -165,11 +165,18 @@ available.
xplr can be installed from one of the following community maintained repositories:
+snap install xplr
+
+nix-env -f https://github.com/NixOS/nixpkgs/tarball/master -iA xplr
+
sudo pacman -S xplr
-Binary version:
paru -S xplr-bin
@@ -177,17 +184,13 @@ repositories:
paru -S xplr-git
nix-env -f https://github.com/NixOS/nixpkgs/tarball/master -iA xplr
-
+sudo port selfupdate
sudo port install xplr
-Stable branch:
brew install xplr
@@ -195,7 +198,7 @@ sudo port install xplr
brew install --head xplr
pkg install xplr
Or
@@ -203,7 +206,7 @@ sudo port install xplr make install cleanpkgin install xplr
Or
@@ -230,7 +233,7 @@ tar xzvf xplr-$platform.tar.gz # Place in $PATH sudo mv xplr /usr/local/bin/ -Prerequisites:
Please note that xplr isn't heavily tested on Termux, hence things might diff --git a/en/message.html b/en/message.html index 52510bb..ec196a6 100644 --- a/en/message.html +++ b/en/message.html @@ -264,7 +264,7 @@ the input buffer.
"FollowSymlink"
YAML:
FollowSymlink
Follow the symlink under focus to its actual location.
-{ UpdateInputBuffer = Input Opertaion }
+{ UpdateInputBuffer = Input Opertaion }
YAML:
BufferInput: Input Operation
Update the input buffer using cursor based operations.
YAML Example:
@@ -459,27 +459,27 @@ stderr will be piped to null. So it's non-interactive.UpdateInputBuffer: GoToPreviousWord
"ClearSelection"
YAML:
ClearSelection
Clear the selection.
-{ AddNodeFilter = { filter = Filter, input = "string" }
+{ AddNodeFilter = { filter = Filter, input = "string" }
YAML:
AddNodeFilter: { filter = Filter, input = string }
Add a filter to exclude nodes while exploring directories.
YAML Example:
AddNodeFilter: { filter: RelativePathDoesStartWith, input: foo }
Lua Example:
-{ AddNodeFilter = { filter = "RelativePathDoesStartWith", input = "foo" } }
{ RemoveNodeFilter = { filter = Filter, input = "string" }
+{ RemoveNodeFilter = { filter = Filter, input = "string" }
YAML:
RemoveNodeFilter: { filter = Filter, input = string
Remove an existing filter.
YAML Example:
RemoveNodeFilter: { filter: RelativePathDoesStartWith, input: foo }
Lua Example:
-{ RemoveNodeFilter: { filter: "RelativePathDoesStartWith", input: "foo" } }
{ ToggleNodeFilter = { filter = Filter, input = "string" }
+{ ToggleNodeFilter = { filter = Filter, input = "string" }
YAML:
ToggleNodeFilter: { filter = Filter, input = string }
Remove a filter if it exists, else, add a it.
YAML Example:
ToggleNodeFilter: { filter: RelativePathDoesStartWith, input: foo }
Lua Example:
-{ ToggleNodeFilter = { filter = "RelativePathDoesStartWith", input = "foo" } }
{ AddNodeFilterFromInput = Filter }
+{ AddNodeFilterFromInput = Filter }
YAML:
AddNodeFilterFromInput: Filter
Add a node filter reading the input from the buffer.
YAML Example:
AddNodeFilterFromInput: RelativePathDoesStartWith
Lua Example:
-{ AddNodeFilterFromInput = "RelativePathDoesStartWith" }
{ RemoveNodeFilterFromInput = Filter }
+{ RemoveNodeFilterFromInput = Filter }
YAML:
RemoveNodeFilterFromInput: Filter
Remove a node filter reading the input from the buffer.
YAML Example:
@@ -493,22 +493,22 @@ stderr will be piped to null. So it's non-interactive.RemoveNodeFilterFromInput: RelativePathDoesStartWith
"ClearNodeFilters"
YAML:
ClearNodeFilters
Clear all the node filters.
-{ AddNodeSorter = { sorter = Sorter, reverse = bool } }
+{ AddNodeSorter = { sorter = Sorter, reverse = bool } }
YAML:
AddNodeSorter: { sorter: Sorter, reverse = bool }
Add a sorter to sort nodes while exploring directories.
YAML Example:
AddNodeSorter: { sorter: ByRelativePath, reverse: false }
YAML Example:
-{ AddNodeSorter = { sorter = "ByRelativePath", reverse = false } }
{ RemoveNodeSorter = Sorter }
+{ RemoveNodeSorter = Sorter }
YAML:
RemoveNodeSorter: Sorter
Remove an existing sorter.
YAML Example:
RemoveNodeSorter: ByRelativePath
Lua Example:
-{ RemoveNodeSorter = "ByRelativePath" }
{ ReverseNodeSorter = Sorter }
+{ ReverseNodeSorter = Sorter }
YAML:
ReverseNodeSorter: Sorter
Reverse a node sorter.
YAML Example:
ReverseNodeSorter: ByRelativePath
Lua Example:
-{ ReverseNodeSorter = "ByRelativePath" }
{ ToggleNodeSorter = { sorter = Sorter, reverse = bool } }
+{ ToggleNodeSorter = { sorter = Sorter, reverse = bool } }
YAML:
ToggleNodeSorter: { sorter: Sorter, reverse = bool }
Remove a sorter if it exists, else, add a it.
YAML Example:
diff --git a/en/print.html b/en/print.html index e121a8d..ab8d8f0 100644 --- a/en/print.html +++ b/en/print.html @@ -275,11 +275,18 @@ available.ToggleSorterSorter: {sorter: ByRelativePath, reverse: false }
xplr can be installed from one of the following community maintained repositories:
+Cross-platform
+Snap
++snap install xplr +
Nixpkgs
+nix-env -f https://github.com/NixOS/nixpkgs/tarball/master -iA xplr +
Arch Linux
-Official Community Repo
+Official Community Repo
-sudo pacman -S xplr
AUR
+AUR
Binary version:
@@ -287,17 +294,13 @@ repositories:paru -S xplr-bin
paru -S xplr-git
Void Linux
-void-templates by shubham
-Nix(OS)
-Nixpkgs
-+nix-env -f https://github.com/NixOS/nixpkgs/tarball/master -iA xplr -
void-templates by shubham
macOS
-MacPorts
+MacPorts
-sudo port selfupdate sudo port install xplr
Homebrew
+Homebrew
Stable branch:
@@ -305,7 +308,7 @@ sudo port install xplrbrew install xplr
brew install --head xplr
FreeBSD
-ports
+ports
pkg install xplr
Or
@@ -313,7 +316,7 @@ sudo port install xplr make install cleanNetBSD
-pkgsrc
+pkgsrc
pkgin install xplr
Or
@@ -340,7 +343,7 @@ tar xzvf xplr-$platform.tar.gz # Place in $PATH sudo mv xplr /usr/local/bin/ -From crates.io
+From crates.io
Prerequisites:
-
- Rust toolchain,
@@ -370,7 +373,7 @@ cargo build --locked --release --bin xplr sudo cp target/release/xplr /usr/local/bin/Android
-Termux
+Termux
Please note that xplr isn't heavily tested on Termux, hence things might @@ -1369,7 +1372,7 @@ the input buffer.
"FollowSymlink"
YAML:
FollowSymlink
Follow the symlink under focus to its actual location.
-{ UpdateInputBuffer = Input Opertaion }
+{ UpdateInputBuffer = Input Opertaion }
YAML:
BufferInput: Input Operation
Update the input buffer using cursor based operations.
YAML Example:
@@ -1564,27 +1567,27 @@ stderr will be piped to null. So it's non-interactive.UpdateInputBuffer: GoToPreviousWord
"ClearSelection"
YAML:
ClearSelection
Clear the selection.
-{ AddNodeFilter = { filter = Filter, input = "string" }
+{ AddNodeFilter = { filter = Filter, input = "string" }
YAML:
AddNodeFilter: { filter = Filter, input = string }
Add a filter to exclude nodes while exploring directories.
YAML Example:
AddNodeFilter: { filter: RelativePathDoesStartWith, input: foo }
Lua Example:
-{ AddNodeFilter = { filter = "RelativePathDoesStartWith", input = "foo" } }
{ RemoveNodeFilter = { filter = Filter, input = "string" }
+{ RemoveNodeFilter = { filter = Filter, input = "string" }
YAML:
RemoveNodeFilter: { filter = Filter, input = string
Remove an existing filter.
YAML Example:
RemoveNodeFilter: { filter: RelativePathDoesStartWith, input: foo }
Lua Example:
-{ RemoveNodeFilter: { filter: "RelativePathDoesStartWith", input: "foo" } }
{ ToggleNodeFilter = { filter = Filter, input = "string" }
+{ ToggleNodeFilter = { filter = Filter, input = "string" }
YAML:
ToggleNodeFilter: { filter = Filter, input = string }
Remove a filter if it exists, else, add a it.
YAML Example:
ToggleNodeFilter: { filter: RelativePathDoesStartWith, input: foo }
Lua Example:
-{ ToggleNodeFilter = { filter = "RelativePathDoesStartWith", input = "foo" } }
{ AddNodeFilterFromInput = Filter }
+{ AddNodeFilterFromInput = Filter }
YAML:
AddNodeFilterFromInput: Filter
Add a node filter reading the input from the buffer.
YAML Example:
AddNodeFilterFromInput: RelativePathDoesStartWith
Lua Example:
-{ AddNodeFilterFromInput = "RelativePathDoesStartWith" }
{ RemoveNodeFilterFromInput = Filter }
+{ RemoveNodeFilterFromInput = Filter }
YAML:
RemoveNodeFilterFromInput: Filter
Remove a node filter reading the input from the buffer.
YAML Example:
@@ -1598,22 +1601,22 @@ stderr will be piped to null. So it's non-interactive.RemoveNodeFilterFromInput: RelativePathDoesStartWith
"ClearNodeFilters"
YAML:
ClearNodeFilters
Clear all the node filters.
-{ AddNodeSorter = { sorter = Sorter, reverse = bool } }
+{ AddNodeSorter = { sorter = Sorter, reverse = bool } }
YAML:
AddNodeSorter: { sorter: Sorter, reverse = bool }
Add a sorter to sort nodes while exploring directories.
YAML Example:
AddNodeSorter: { sorter: ByRelativePath, reverse: false }
YAML Example:
-{ AddNodeSorter = { sorter = "ByRelativePath", reverse = false } }
{ RemoveNodeSorter = Sorter }
+{ RemoveNodeSorter = Sorter }
YAML:
RemoveNodeSorter: Sorter
Remove an existing sorter.
YAML Example:
RemoveNodeSorter: ByRelativePath
Lua Example:
-{ RemoveNodeSorter = "ByRelativePath" }
{ ReverseNodeSorter = Sorter }
+{ ReverseNodeSorter = Sorter }
YAML:
ReverseNodeSorter: Sorter
Reverse a node sorter.
YAML Example:
ReverseNodeSorter: ByRelativePath
Lua Example:
-{ ReverseNodeSorter = "ByRelativePath" }
{ ToggleNodeSorter = { sorter = Sorter, reverse = bool } }
+{ ToggleNodeSorter = { sorter = Sorter, reverse = bool } }
YAML:
ToggleNodeSorter: { sorter: Sorter, reverse = bool }
Remove a sorter if it exists, else, add a it.
YAML Example:
@@ -3036,7 +3039,7 @@ e.g.ToggleSorterSorter: {sorter: ByRelativePath, reverse: false }
app-1.0.0
withconfig-1.1.0
. But vice versa is fi compatibility.Instructions
-v0.15.2 -> v0.16.4
+v0.15.2 -> v0.16.4
- Deprecated
@@ -3061,7 +3064,7 @@ needing to define a function. However, theconfig.general.cursor
. The default terminal cursor will be used for the time being.app
context won't be avaLike this project so far? Please consider contributing.
-v0.14.7 -> v0.15.2
+v0.14.7 -> v0.15.2
-
- Deprecated
@@ -3076,7 +3079,7 @@ different modes without resetting the input buffer. mode.config
field fromCallLua
argument. Use the globally availablexplr.config
instead.- Library users please refer to the latest API docs and examples.
v0.13.7 -> v0.14.7
+v0.13.7 -> v0.14.7
-
- macOS users need to place their config file (
@@ -3094,18 +3097,18 @@ related data.init.lua
) in$HOME/.config/xplr/
or/etc/xplr/
.- Since version
v0.14.6
, the-C
or--extra-config
CLI argument is available.v0.12.1 -> v0.13.7
+v0.12.1 -> v0.13.7
-
- Lua functions called using
CallLua
andCallLuaSilently
messages will receiveCallLuaArg
object as the function argument (instead of theApp
object).- Each
node_types
config will inherit defaults from matching less specifignode_types
config and overwrite them.- Since version
v0.13.2
, you don't need to use/sendRefresh
anymore. It will be auto-handled by xplr.v0.11.1 -> v0.12.1
+v0.11.1 -> v0.12.1
-
xplr.config.node_types.mime_essence
has split into type and subtype. Hence, instead ofxplr.config.node_types.mime_essence["text/plain"] = ..
usexplr.config.node_types.mime_essence["text"] = { plain = .. }
.- You can also define
xplr.config.node_types.mime_essence["text"]["*"]
that will match all text types (text/*
).v0.10.2 -> v0.11.1
+v0.10.2 -> v0.11.1
-
remaps:
has been removed to avoid confusion. Use lua assignments instead. For e.g. @@ -3113,19 +3116,19 @@ For e.g.v0.9.1 -> v0.10.2
+v0.9.1 -> v0.10.2
-
config.yml
has been fully replaced withinit.lua
. If you have a lot of customization in yourconfig.yml
, xplr-yml2lua can help you with migrating it toinit.lua
.Handlebars
templates has been replaced with Lua functions. You can either remove the customizations or overwrite the functions accordingly.- Added new messages
CallLua
andCallLuaSilently
to call lua functions. The app state will be passed as input to the functions, and the returned messages will be handled by xplr.CallLua
andCallLuaSilently
are more flexible (and probably faster) alternatives toCall
,CallSilently
,BashExec
andBashExecSilently
. e.g.v0.9.0 -> v0.9.1
+v0.9.0 -> v0.9.1
-
- You can now set
remaps: {key: null}
to un-map a key.gx
will open the item under focus.- New key map
:sx
will open the selected items.v0.8.0 -> v0.9.0
+v0.8.0 -> v0.9.0
Your previous config should mostly work fine. However, in case you are using
SwitchMode
heavily in your custom config, follow along.-
- Introduced new message
@@ -3134,24 +3137,24 @@ For e.g.PopMode
. You might want to use this message instead ofSwitchMode*
when returning back to the previous mode.- Introduced new message
LogWarning
, similar to otherLog*
messages.- Creating files and directories has been optimized for batch creation.
v0.7.2 -> v0.8.0
+v0.7.2 -> v0.8.0
If you have made changes to the config file,
-
- Replace message
Explore
withExplorePwd
orExplorePwdAsync
or probablyExploreParentsAsync
.- Pipe
$XPLR_PIPE_FOCUS_OUT
has been removed. Use$XPLR_FOCUS_PATH
env var instead.- You might want to review your path escaping logics. For e.g. use
echo FocusPath: "'"$PWD"'" >> $PIPE
instead ofecho "FocusPath: $PWD" >> $PIPE
.v0.7.0 -> v0.7.2
+v0.7.0 -> v0.7.2
-
- Just update the
version
in your config file.- For version >=
v0.7.1
, you might want to free up or remap thetab
key insearch
mode to enable easy selection during search.v0.6.0 -> v0.7.0
+v0.6.0 -> v0.7.0
If you haven't made any changes in the config file, you should be fine just updating the version number. Else,
-
- You can make the
Table: ...
,InputAndLogs: ...
layout values null and define the common properties in thegeneral.panel_ui
instead.v0.5.13 -> v0.6.0
+v0.5.13 -> v0.6.0
If you haven't made any changes in the config file, you should be fine just updating the version number. Else,
- Rename
@@ -3159,14 +3162,14 @@ For e.g.add_modifier: {bits: 1}
toadd_modifiers: [Bold]
,sub_modifier: {bits: 1}
tosub_modifiers: [Bold]
and so on.- You might want to free up or remap the
ctrl-w
key binding indefault
mode to enable layout switching.Optionally, checkout this new theme to learn more about what's new.
-v0.5.0 -> v0.5.13
+v0.5.0 -> v0.5.13
-
- Just update the
version
in your config file.- For versions >=
v0.5.8
, you can set$OPENER
env var to declare a global GUI file opener (to open files using keysgx
).- You might also want to update other mappings to handle files with names starting with
-
(hiphen). For example, instead ofrm ${filename}
userm -- ${filename}
. Same goes forcp
,mv
,cat
,touch
etc.- For version >=
v0.5.13
, you might want to use the more specificSwitchModeBuiltin
andSwitchModeCustom
messages instead of the generalSwitchMode
message.v0.4.3 -> v0.5.0
+v0.4.3 -> v0.5.0
If you haven't have any changes in the config file, you should be fine just updating the version number.
Else do the following
@@ -3178,11 +3181,11 @@ For e.g.
-- You might want to use the new UI variables.
- Update your config version to
v0.5.0
.v0.4.2 -> v0.4.3
+v0.4.2 -> v0.4.3
If you have customized
-general.table.row.cols
, you might want to update it to use the new variables with better symlink support.v0.4.1 -> v0.4.2
+v0.4.1 -> v0.4.2
In case you have mapped the keys
-q
,ctrl-i
andctrl-o
, you may want to revisit the default mode key bindings and remap accordingly to use the new functionalities.v0.3.13 -> v0.4.1
+v0.3.13 -> v0.4.1
A lot has changed (apologies). But I promise from now on, upgrading will be much less painful (thanks to @maximbaz's valuable inputs and code reviews).
So, to start with the upgrade, let's remove everything from your config file except the
version
field and your custom modifications. Ifversion
is the only thing remaining, update it tov0.4.1
and you are done.Else, do the following
@@ -3195,7 +3198,7 @@ For e.g.- Split
modes
intomodes.builtin
andmodes.custom
(see here). Migrate your custom modes tomodes.custom
. And copy only the changes in the in-built modes inmodes.builtin
.- Finally, update the
version
tov0.4.1
.v0.3.8 -> v0.3.13
+v0.3.8 -> v0.3.13
Your current config should work fine. However, you might want to replace some
Call
andBashExec
messages withCallSilently
andBashExecSilently
to remove the flickering of the screen.If you haven't made any changes to the configuration, you can delete and regenerate it.
Else, do the following
@@ -3204,7 +3207,7 @@ For e.g.- Search for
Call
andBashExec
in the new config.- Compare and probably replace the associated actions in your current config
Your current config should work fine. However, you might want to replace some ResetNodeFilters
messages with RemoveNodeFilter
and RemoveNodeFilterFromInput
to get a better search and filter experience.
If you haven't made any changes to the configuration, you can delete and regenerate it.
Else, do the following
@@ -3213,7 +3216,7 @@ For e.g.RemoveNodeFilterFromInput
in the new config.If you haven't made any changes to the configuration, you can delete and regenerate it.
Else do the following:
app-1.0.0
with config-1.1.0
. But vice versa is fi
compatibility.
config.general.cursor
. The default terminal cursor will be used
for the time being.app
context won't be ava
Like this project so far? Please consider contributing.
-config
field from CallLua
argument. Use the globally available
xplr.config
instead.init.lua
) in
$HOME/.config/xplr/
or /etc/xplr/
.v0.14.6
, the -C
or --extra-config
CLI argument is
available.CallLua
and CallLuaSilently
messages will receive CallLuaArg
object as the function argument (instead of the App
object).node_types
config will inherit defaults from matching less specifig node_types
config and overwrite them.v0.13.2
, you don't need to use/send Refresh
anymore. It will be auto-handled by xplr.xplr.config.node_types.mime_essence
has split into type and subtype. Hence, instead of xplr.config.node_types.mime_essence["text/plain"] = ..
use xplr.config.node_types.mime_essence["text"] = { plain = .. }
.xplr.config.node_types.mime_essence["text"]["*"]
that will match all text types (text/*
).remaps:
has been removed to avoid confusion. Use lua assignments instead.
For e.g.
@@ -254,19 +254,19 @@ For e.g.
config.yml
has been fully replaced with init.lua
. If you have a lot of customization in your config.yml
, xplr-yml2lua can help you with migrating it to init.lua
.Handlebars
templates has been replaced with Lua functions. You can either remove the customizations or overwrite the functions accordingly.CallLua
and CallLuaSilently
to call lua functions. The app state will be passed as input to the functions, and the returned messages will be handled by xplr. CallLua
and CallLuaSilently
are more flexible (and probably faster) alternatives to Call
, CallSilently
, BashExec
and BashExecSilently
. e.g.remaps: {key: null}
to un-map a key.gx
will open the item under focus.:sx
will open the selected items.Your previous config should mostly work fine. However, in case you are using SwitchMode
heavily in your custom config, follow along.
PopMode
. You might want to use this message instead of SwitchMode*
when returning back to the previous mode.LogWarning
, similar to other Log*
messages.If you have made changes to the config file,
Explore
with ExplorePwd
or ExplorePwdAsync
or probably ExploreParentsAsync
.$XPLR_PIPE_FOCUS_OUT
has been removed. Use $XPLR_FOCUS_PATH
env var instead.echo FocusPath: "'"$PWD"'" >> $PIPE
instead of echo "FocusPath: $PWD" >> $PIPE
.version
in your config file.v0.7.1
, you might want to free up or remap the tab
key in search
mode to enable easy selection during search.If you haven't made any changes in the config file, you should be fine just updating the version number. Else,
Table: ...
, InputAndLogs: ...
layout values null and define the common properties in the general.panel_ui
instead.If you haven't made any changes in the config file, you should be fine just updating the version number. Else,
add_modifier: {bits: 1}
to add_modifiers: [Bold]
, sub_modifier: {bits: 1}
to sub_modifiers: [Bold]
and so on.ctrl-w
key binding in default
mode to enable layout switching.Optionally, checkout this new theme to learn more about what's new.
-version
in your config file.v0.5.8
, you can set $OPENER
env var to declare a global GUI file opener (to open files using keys gx
).-
(hiphen). For example, instead of rm ${filename}
use rm -- ${filename}
. Same goes for cp
, mv
, cat
, touch
etc.v0.5.13
, you might want to use the more specific SwitchModeBuiltin
and SwitchModeCustom
messages instead of the general SwitchMode
message.If you haven't have any changes in the config file, you should be fine just updating the version number.
Else do the following
v0.5.0
.If you have customized general.table.row.cols
, you might want to update it to use the new variables with better symlink support.
In case you have mapped the keys q
, ctrl-i
and ctrl-o
, you may want to revisit the default mode key bindings and remap accordingly to use the new functionalities.
A lot has changed (apologies). But I promise from now on, upgrading will be much less painful (thanks to @maximbaz's valuable inputs and code reviews).
So, to start with the upgrade, let's remove everything from your config file except the version
field and your custom modifications. If version
is the only thing remaining, update it to v0.4.1
and you are done.
Else, do the following
@@ -336,7 +336,7 @@ For e.g.modes
into modes.builtin
and modes.custom
(see here). Migrate your custom modes to modes.custom
. And copy only the changes in the in-built modes in modes.builtin
.version
to v0.4.1
.Your current config should work fine. However, you might want to replace some Call
and BashExec
messages with CallSilently
and BashExecSilently
to remove the flickering of the screen.
If you haven't made any changes to the configuration, you can delete and regenerate it.
Else, do the following
@@ -345,7 +345,7 @@ For e.g.Call
and BashExec
in the new config.Your current config should work fine. However, you might want to replace some ResetNodeFilters
messages with RemoveNodeFilter
and RemoveNodeFilterFromInput
to get a better search and filter experience.
If you haven't made any changes to the configuration, you can delete and regenerate it.
Else, do the following
@@ -354,7 +354,7 @@ For e.g.RemoveNodeFilterFromInput
in the new config.If you haven't made any changes to the configuration, you can delete and regenerate it.
Else do the following: