Tmux integration for ranger
To install this plugin, clone the respository into ranger's plugins folder, or install it with pip:
pip install ranger-tmux
# Then run this to install the package as a ranger plugin:
python -m ranger_tmux install
- Open files from ranger in a new tmux window or pane
- Make your terminal track ranger's directory
- Make ranger track your terminal's directory
- Set tmux window title to show ranger is running
- Drop down file-manager in your tmux session
- Easily split a ranger pane to launch a shell in the current folder
This plugin enables syncing of the current working directory between ranger and other tmux panes in the same window.
The pane to be used for syncing or tracking is determined in the following order:
- A marked pane;
- The currently selected pane;
- The last selected pane;
- The next pane.
Ranger will only sync its working directory to another pane if the process running in another pane does not have any child processes. This prevents ranger typing cd
commands if you have launched a text editor from the shell in the other pane.
When installing the plugin, you will be asked if you want to install a key-binding in ~/.tmux.conf
for drop-down ranger. This allows you to toggle ranger in a drop-down tmux pane in the current window. This can be run manually by running python -m ranger_tmux.drop
in a tmux session.
The key binding can be installed by running python -m ranger_tmux --tmux install
, or by running the :install_tmux_dropdown_shortcut
command in ranger (or typing the xh
shortcut). The default key-binding installed is prefix, backspace
, but this can be changed by editing the lines added to ~/.tmux.conf
.
Key Sequence | Command |
---|---|
xc |
Change the current working directory in the other pane to the directory in ranger |
xd |
Change ranger's current directory to the directory of the other pane |
xs |
Toggle syncing of ranger's current directory to the other pane |
xt |
Toggle tracking of the other pane's working directory to tmux |
xw |
Toggle opening files in a new tmux window |
xi |
Toggle setting the tmux window's title to "ranger" when ranger is running |
xe |
Open the selected file with rifle in a new tmux window |
x| |
Split ranger's current tmux pane vertially |
x- |
Split ranger's current tmux pane horizontally |
xh |
Adds the dropdown shortcut to ~/.tmux.conf |
This plugin adds several settings to ranger:
Setting | Type | Default | Meaning |
---|---|---|---|
tmux_cwd_sync |
bool | False | When True, ranger's current directory is synced to the other pane |
tmux_cwd_sync_now_focus |
bool | False | When True, the other pane will be focused after manually syncing it with ranger |
tmux_cwd_track |
bool | False | When True, ranger's current directory tracks the other pane |
tmux_cwd_track_interval |
float | 0.5 | Time between checks of the directory of the other pane when tracking |
tmux_open_in_window |
bool | True | When True, files opened with ranger will open in a new tmux window |
tmux_set_title |
bool | True | When True, the tmux window will be renamed to "ranger" when ranger is running |
tmux_dropdown_percent |
int | 60 | The height of the pane created when the drop-down tmux key-binding is installed and used |
tmux_dropdown_animate |
bool | True | When True, dropped-down ranger will grow / shrink when summoned |
tmux_dropdown_duration |
float | 100 | Drop-down animation time in miliseconds |
The default values can be modified by setting them in ~/.config/ranger/rc.conf
, e.g.:
set tmux_cwd_sync true
set tmux_cwd_track true
set tmux_set_title true
set tmux_open_in_window true
set tmux_dropdown_percent 60