Skip to content

Releases: sayanarijit/xplr

v0.21.0

19 Mar 19:43
e0d683b

Choose a tag to compare

Changes & fixes

  • IMPORTANT FIX: Fixed panic on permission denial on macOS.
  • BREAKING: Some UI plugins might stop rendering colors. Wait for them to update.
  • BREAKING: xplr.config.general.sort_and_filter_ui.search_identifier has been
    renamed to xplr.config.general.sort_and_filter_ui.search_identifiers.
  • BREAKING: Resolved Node API will not contain the permissions field anymore.
    Use the utility function xplr.util.node to get its permissions.
  • Layout CustomContent has been undocumented. It will stay for compatibility,
    but you should prefer using the following new layouts, because they support
    custom title:
    • Static
    • Dynamic
  • Improved the builtin search operation using the following new messages:
    • Search
    • SearchFromInput
    • SearchFuzzyUnordered
    • SearchFuzzyUnorderedFromInput
    • SearchRegex
    • SearchRegexFromInput
    • SearchRegexUnordered
    • SearchRegexUnorderedFromInput
    • ToggleSearchAlgorithm
    • EnableSearchOrder
    • DisableSearchOrder
    • ToggleSearchOrder
  • Builtin fuzzy search will now support skim's search syntax.
  • Default search algorithm: xplr.config.general.search.algorithm = "Fuzzy".
  • Default search ordering: xplr.config.general.search.unordered = false.
  • Improved selection operations:
    • BREAKING: Selection list will be retained after each operation unless the
      paths are renamed, moved, deleted, or cleared manually (ctrl-u).
    • :sl to list selection in a $PAGER.
    • :ss to create softlink of the selected items.
    • :sh to create hardlink of the selected items.
    • :se to edit selection list in your $EDITOR.
    • Better conflict handling: add suffix rather than overriding/skipping.
  • Navigate between the selected paths using the following messages:
    • FocusPreviousSelection (ctrl-p)
    • FocusNextSelection (ctrl-n)
  • Added support for LS_COLORS, along with the following utility functions for
    applying better styling/theming.
    • xplr.util.lscolor
    • xplr.util.paint
    • xplr.util.textwrap
    • xplr.util.style_mix
  • By default colors will only be applied to the file name column in the table.
  • File paths will be properly quoted.
  • Column Renderer Argument will contain additional fields:
    • style
    • permissions
  • Selection list will display the paths in shorthand format, based on the
    current location.
  • Use the following config to specify how the paths in selection list should be
    rendered:
    • xplr.config.general.selection.item.format
    • xplr.config.general.selection.item.style
  • Improved working with file permissions using the following utility functions:
    • xplr.util.permissions_rwx
    • xplr.util.permissions_octal
  • Type :p to edit file permissions interactively.
  • More utility function for QOL improvement:
    • xplr.util.layout_replace
    • xplr.util.relative_to
    • xplr.util.shorthand
    • xplr.util.clone
    • xplr.util.exists
    • xplr.util.is_dir
    • xplr.util.is_file
    • xplr.util.is_symlink
    • xplr.util.is_absolute
    • xplr.util.path_split
    • xplr.util.node
    • xplr.util.node_type
    • xplr.util.shell_escape
  • Fixed mime type detection for executables: application/x-executable.
  • Added workaround for compatibility with macOS legacy coreutils.
  • Fixed history navigation for non-existent paths.
  • Optimized navigation with long list of selected items.
  • Minor improvements in batch operations.
  • Minor improvements in logging.

Thanks to @noahmayr for contributing to a major part of this release.

v0.20.2

13 Jan 07:47

Choose a tag to compare

Changes & fixes

  • Updated UI to be more light theme and NO_COLOR friendly.
  • Fixed creating files inside multiple subdirectories (e.g. foo/bar/test.txt) (thanks to @soryeigeton for reporting and help debugging).
  • Added new hooks (contribution by @emsquid).
    • on_mode_switch
    • on_layout_switch
  • Minor documentation fixes and updates (contribution by @BoolPurist).
  • Dependency updates.

v0.20.1

04 Dec 09:52

Choose a tag to compare

Changes & fixes

  • xplr shell will default to $SHELL, using bash as a fallback. oh-my-zsh users please add TRAPEXIT() { echoti rmkx; } in your .zshrc (see #499 for more info).
  • (experiment) xplr will now display full-screen help menu in intermediate modes. Set xplr.config.modes.builtin[mode].layout = nil to disable. e.g. xplr.config.modes.builtin.create.layout = nil
  • Added new utility functions to work with json and yaml data.
    • xplr.util.from_json()
    • xplr.util.to_json()
    • xplr.util.from_yaml()
    • xplr.util.to_yaml()
  • Added new utility function xplr.util.version() to get the currently running binary version (semantic versioning fields).
  • Fixed displaying multispace characters (Japanese, Chinese...), thanks to @Elvyria for contributing to tui-input.
  • Fixed a bug causing the creation of a new directory named .\n when creating new files containing space in the name.
  • Minor UI updates.

v0.20.0

28 Oct 21:29

Choose a tag to compare

Changes & fixes

  • BREAKING: xplr shell (:!) will default to null (\0) delimited pipes, as
    opposed to newline (\n) delimited ones (i.e. will use Call0 instead of
    Call).
  • Use new messages for safer file path handling (\0 delimited):
    • Call0
    • CallSilently0
    • BashExec0
    • BashExecSilently0
  • Use new sub-commands for safer message passing:
    • -m FORMAT [ARGUMENT]... / --pipe-msg-in FORMAT [ARGUMENT]...
    • -M FORMAT [ARGUMENT]... / --print-msg-in FORMAT [ARGUMENT]...
      Where FORMAT is a YAML string that may contain %s, %q and %%
      placeholders and ARGUMENT is the value per placeholder. See init.lua.
  • Following hooks can be defined in the config files using an optional
    return { on_* = { list, of, messages }, ... } statement at the end.
    • on_load
    • on_focus_change
    • on_directory_change
  • Use --vroot to isolate navigation of an xplr session inside a specific
    directory. Interaction still requires passing full path, and shell,
    lua functions etc still can access paths outside vroot.
  • Use the following messages to switch vroot at runtime, or the use key
    bindings available in the new builtin mode "vroot" (mapped to : v).
    • SetVroot
    • UnsetVroot
    • ToggleVroot
    • ResetVroot
  • Use $XPLR_INITIAL_PWD and Lua equivalent to implement workspace like
    features without using virtual root. Use keys gi to go to the initial
    working directory from anywhere.
  • Use the convenient xplr.util utility functions in your Lua function calls.
    See xplr.util API docs.
  • Improved CLI errors.
  • Finished documentation (finally).
  • UI updates to handle newlines in path.

Thanks to @jmcantrell for reporting and help implement fix for the critical newline-in-pathname bug.

v0.20.0-beta.3

27 Oct 17:53
7431843

Choose a tag to compare

v0.20.0-beta.3 Pre-release
Pre-release

This pre-release is for testing the "vroot" mode key bindings available via :v* keys, and the new messages ToggleVroot and UnsetVroot.

v0.20.0-beta.2

27 Oct 11:38

Choose a tag to compare

v0.20.0-beta.2 Pre-release
Pre-release

This pre-release is for testing the new vroot feature with --vroot, SetVroot, ResetVroot, and the on_* hooks defined as return { on_* = [ list, of, messages ]}

v0.20.0-beta.1

26 Oct 19:28

Choose a tag to compare

v0.20.0-beta.1 Pre-release
Pre-release

This pre-release is for testing the new return { on_load = { list, of, messages } } hook definition in config files, and also for trying the improved -m/-M API.

v0.20.0-beta.0

25 Oct 22:52

Choose a tag to compare

v0.20.0-beta.0 Pre-release
Pre-release

This pre-release is for testing the new messages Call*0, BashExec*0 and the CLI arguments xplr -m / --pipe-msg-in, xplr -M --print-msg-in.

v0.19.4

06 Oct 15:23

Choose a tag to compare

Changes & fixes

  • The builtin search will now default to skim-v2 based fuzzy matching.
  • esc while in search mode will recover the initial focus (i.e. cancel the search).
  • The following messages will be available for search based operations:
    • SearchFuzzy
    • SearchFuzzyFromInput
    • AcceptSearch
    • CancelSearch
  • Quick scrolling operations are supported using the following messages and keys:
    • ScrollUp page-up
    • ScrollDown page-down
    • ScrollUpHalf {
    • ScrollDownHalf }

Note: People who prefer the old regex based search, can use the regex-search.xplr plugin.

v0.19.3

11 Sep 02:49

Choose a tag to compare

Changes & fixes

Bug fixes for passing filters using the --on-load argument.