# Awesome Hacks Here's a list of cool xplr hacks, i.e. snippets of code that you can just copy and paste into your [configuration file][1], that are too small or niche for a full fledge [plugins][2]. Do you have something cool to share? [Edit this file][3] or [share them here][4] or [let us know][5]. ### Spawn multiple sessions in different tabs (iTerm2) Creating a new session that starts with iTerm2.
Expand for details - Author: [@lmburns][9] - Requires: iTerm2 - Tested on: MacOS ```lua xplr.config.modes.builtin.default.key_bindings.on_key["ctrl-n"] = { help = "new session", messages = { { BashExecSilently = [[ osascript < ### Bookmark Bookmark files using `m` and fuzzy search bookmarks using backtick.
Expand for details [![xplr-bookmark.gif][7]][6] - Author: [@sayanarijit][8] - Requires: fzf - Tested on: Linux ```lua xplr.config.modes.builtin.default.key_bindings.on_key.m = { help = "bookmark", messages = { { BashExecSilently = [===[ PTH="${XPLR_FOCUS_PATH:?}" if echo "${PTH:?}" >> "${XPLR_SESSION_PATH:?}/bookmarks"; then echo "LogSuccess: ${PTH:?} added to bookmarks" >> "${XPLR_PIPE_MSG_IN:?}" else echo "LogError: Failed to bookmark ${PTH:?}" >> "${XPLR_PIPE_MSG_IN:?}" fi ]===], }, }, } xplr.config.modes.builtin.default.key_bindings.on_key["`"] = { help = "go to bookmark", messages = { { BashExec = [===[ PTH=$(cat "${XPLR_SESSION_PATH:?}/bookmarks" | fzf --no-sort) if [ "$PTH" ]; then echo FocusPath: "'"${PTH:?}"'" >> "${XPLR_PIPE_MSG_IN:?}" fi ]===], }, }, } ```
### Persistent, multi-session bookmark A bookmark mode that allows for a bookmark file to be used throughout multiples sessions. It is set to the environment variable `$XPLR_BOOKMARK_FILE`. A bookmark can be added, deleted, or jumped to.
Expand for details - Author: [@lmburns][9] - Requires: fzf, sd - Tested on: MacOS ```lua -- Bookmark: mode binding xplr.config.modes.custom.bookmark = { name = "bookmark", key_bindings = { on_key = { m = { help = "bookmark dir", messages = { { BashExecSilently = [[ PTH="${XPLR_FOCUS_PATH:?}" if [ -d "${PTH}" ]; then PTH="${PTH}" elif [ -f "${PTH}" ]; then PTH="$(dirname "${PTH}")" fi if echo "${PTH:?}" >> "${XPLR_BOOKMARK_FILE:?}"; then echo "LogSuccess: ${PTH:?} added to bookmarks" >> "${XPLR_PIPE_MSG_IN:?}" else echo "LogError: Failed to bookmark ${PTH:?}" >> "${XPLR_PIPE_MSG_IN:?}" fi ]] }, }, }, g = { help = "go to bookmark", messages = { { BashExec = [===[ PTH=$(cat "${XPLR_BOOKMARK_FILE:?}" | fzf --no-sort) if [ "$PTH" ]; then echo FocusPath: "'"${PTH:?}"'" >> "${XPLR_PIPE_MSG_IN:?}" fi ]===] }, }, }, d = { help = "delete bookmark", messages = { { BashExec = [[ PTH=$(cat "${XPLR_BOOKMARK_FILE:?}" | fzf --no-sort) sd "$PTH\n" "" "${XPLR_BOOKMARK_FILE:?}" ]] }, }, }, esc = { help = "cancel", messages = { "PopMode", }, }, }, }, } ```
### Another bookmark manager type thing, taken from [wfxr's zsh plugin][13]. Another bookmark manager type thing, taken from [wfxr's zsh plugin][13] which has colored output with fzf.
Expand for details - Author: [@lmburns][9] - Requires: fzf, exa - Tested on: MacOS ```lua xplr.config.modes.builtin.go_to.key_bindings.on_key.b = { help = "bookmark jump", messages = { "PopMode", { BashExec = [===[ field='\(\S\+\s*\)' esc=$(printf '\033') N="${esc}[0m" R="${esc}[31m" G="${esc}[32m" Y="${esc}[33m" B="${esc}[34m" pattern="s#^${field}${field}${field}${field}#$Y\1$R\2$N\3$B\4$N#" PTH=$(sed 's#: # -> #' "$PATHMARKS_FILE"| nl| column -t \ | gsed "${pattern}" \ | fzf --ansi \ --height '40%' \ --preview="echo {}|sed 's#.*-> ##'| xargs exa --color=always" \ --preview-window="right:50%" \ | sed 's#.*-> ##') if [ "$PTH" ]; then echo ChangeDirectory: "'"${PTH:?}"'" >> "${XPLR_PIPE_MSG_IN:?}" fi ]===] }, } } ```
### Fuzzy search history Fuzzy search the last visited directories.
Expand for details - Author: [@sayanarijit][8] - Requires: fzf - Tested on: Linux ```lua xplr.config.modes.builtin.go_to.key_bindings.on_key.h = { help = "history", messages = { "PopMode", { BashExec = [===[ PTH=$(cat "${XPLR_PIPE_HISTORY_OUT:?}" | sort -u | fzf --no-sort) if [ "$PTH" ]; then echo ChangeDirectory: "'"${PTH:?}"'" >> "${XPLR_PIPE_MSG_IN:?}" fi ]===], }, }, } ```
### Batch rename Batch rename the selected or visible files and directories in $PWD.
Expand for details [![xplr-rename.gif][11]][10] - Author: [@sayanarijit][8] - Requires: [pipe-rename][12] - Tested on: Linux ```lua xplr.config.modes.builtin.default.key_bindings.on_key.R = { help = "batch rename", messages = { { BashExec = [===[ SELECTION=$(cat "${XPLR_PIPE_SELECTION_OUT:?}") NODES=${SELECTION:-$(cat "${XPLR_PIPE_DIRECTORY_NODES_OUT:?}")} if [ "$NODES" ]; then echo -e "$NODES" | renamer echo ExplorePwdAsync >> "${XPLR_PIPE_MSG_IN:?}" fi ]===], }, }, } ```
### Serve $PWD Serve $PWD using a static web server via LAN.
Expand for details - Author: [@sayanarijit][8] - Requires: [sfz][14], fzf - Tested on: Linux ```lua xplr.config.modes.builtin.default.key_bindings.on_key.S = { help = "serve $PWD", messages = { { BashExec = [===[ IP=$(ip addr | grep -w inet | cut -d/ -f1 | grep -Eo '[0-9]{1,3}\.[0-9]{ 1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | fzf --prompt 'Select IP > ') echo "IP: ${IP:?}" read -p "Port (default 5000): " PORT echo sfz --all --cors --no-ignore --bind ${IP:?} --port ${PORT:-5000} . & sleep 1 && read -p '[press enter to exit]' kill -9 %1 ]===], }, }, } ```
## Also See: - [Awesome Plugins][15] - [Awesome Integrations][16] [1]: configuration.md [2]: plugin.md [3]: https://github.com/sayanarijit/xplr/edit/main/docs/en/src/awesome-hacks.md [4]: https://github.com/sayanarijit/xplr/discussions/categories/show-and-tell [5]: community.md [6]: https://gifyu.com/image/rGSR [7]: https://s4.gifyu.com/images/xplr-bookmark.gif [8]: https://github.com/sayanarijit [9]: https://github.com/lmburns [10]: https://gifyu.com/image/rGbo [11]: https://s4.gifyu.com/images/xplr-rename.gif [12]: https://github.com/marcusbuffett/pipe-rename [13]: https://github.com/wfxr/formarks [14]: https://github.com/weihanglo/sfz [15]: awesome-plugins.md [16]: awesome-integrations.md