./sysutils/xplr, Hackable, minimal, fast TUI file explorer

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 0.21.3, Package name: xplr-0.21.3, Maintainer: pin

Hackable, minimal, fast TUI file explorer, stealing ideas from nnn and fzf.

Though xplr strives to be fast and minimalist, its speciality is its
Once you read the documentation, you should be able to configure the key
bindings, different run modes, and also the way it looks by modifying one
single configuration file.

Master sites:

Filesize: 446.041 KB

Version history: (Expand)

CVS history: (Expand)

   2023-08-08 22:01:44 by pin | Files touched by this commit (4) | Package updated
Log message:
sysutils/xplr: update to 0.21.3

Changes & fixes

    Fixed "Illegal format character q" error seen on non GNU \ 
(including macOS and BSD) systems (thanks to @lcook).
    Fixed a UI issue causing lower priority styles being fully ignored (thanks \ 
to @duganchen).
    Press f1 to see the global help menu from any mode, without leaving the mode.
    Current mode help menu will be displayed on top of the global help menu.
    Added build targets (including direct download links) for Apple Silicon, \ 
aarch64 Linux, Android, arm Linux (thanks to @khvzak, author of mlua, for his \ 
    Added hook: on_selection_change.
    Documentation improvements.
   2023-05-22 19:42:56 by pin | Files touched by this commit (1) | Package updated
Log message:
sysutils/xplr: clean-up after update
   2023-05-22 14:51:35 by pin | Files touched by this commit (4) | Package updated
Log message:
sysutils/xplr: update 0.21.2

Changes & fixes
 - Added CustomLayout, a new custom panel type to allow nesting other layouts
   inside a static or dynamic layout. This will allow switching between
   different layouts dynamically, without having to switch modes.
 - $LS_COLORS will have lesser priority than xplr.config.node_types.*.style.
 - Now, there's no default color set in xplr.config.node_types.*.style, so xplr
   will default to $LS_COLORS.
 - xplr -m now uses jf to render and pass messages. This allows for a more
   flexible template syntax.
 - xplr will now ask before delete.
 - For copy, move or symlink operations, xplr will ask what to do if a file
   with the same name exists.
 - CLI help menu improvements
 - Several fixes and improvements in documentation. Thanks to @kianmeng and
   @hensg for contributing.
   2023-03-28 22:28:51 by pin | Files touched by this commit (4) | Package updated
Log message:
sysutils/xplr: update to 0.21.1

- SelectAll and ToggleSelectAll (i.e. ctrl-a) in a new directory will extend,
  instead of replace, the existing selected paths.
- Fixed a UI bug causing random characters to turn bold.
   2023-03-20 07:52:23 by pin | Files touched by this commit (4) | Package updated
Log message:
sysutils/xplr: update to 0.21.0

Changes & fixes

  - IMPORTANT FIX: Fixed panic on permission denial on macOS.
  - BREAKING: Some UI plugins might stop rendering colors. Wait for them to
  - 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:
  - Improved the builtin search operation using the following new messages:
  - Builtin fuzzy search will now support skim's search syntax.
  - Default search algorithm: xplr.config.general.search.algorithm = \ 
  - 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.
  - 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:
  - 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:
  - Improved working with file permissions using the following utility
  - Type :p to edit file permissions interactively.
  - More utility function for QOL improvement:
  - 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.
   2023-01-23 22:11:33 by pin | Files touched by this commit (4) | Package updated
Log message:
sysutils/xplr: update to 0.20.2

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.
   2022-12-05 12:25:24 by pin | Files touched by this commit (4) | Package updated
Log message:
sysutils/xplr: update to 0.20.1

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
 - (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.
   2022-10-29 22:34:43 by pin | Files touched by this commit (4) | Package updated
Log message:
sysutils/xplr: update to 0.20.0

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
 - 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.