texas creates a shell session synchronized with a ranger
session. Whenever one's current directory changes, so does the
other. It was created as an alternative to a Midnight Commander
feature known as ShowCommandLine (which is bound to
ctrl-o).
TL;DR: Run ./install.sh. You don't need to read any further if
you're not interested what does it actually do.
Currently there is no support for the plugin managers such as
antigen due to a bit tricky
loading process. If you use them, be sure to load texas after
loading the plugins managed by the manager. I've encountered some
strange hard to track issues otherwise.
INSTALLATION DETAILS
The installation is comprised of two steps: installing a ranger
plugin and installing a shell plugin. Both are mandatory.
An unattended installation may be performed like this:
$ yes | ./install.sh
Step 1: Install ranger plugin
Copy texas.py to ~/.config/ranger/plugins.
Step 2: Install shell plugin
bash
Source the texas.bash file by adding the line source /path/to/texas.bash to your .bashrc.
zsh
First copy the file texas.zsh to your $fpath and rename it to just
texas (remove the .zsh suffix). After that, source the
texas_init.zsh file by adding the line source /path/to/texas_init.zsh to your .zshrc.
texas uses tmux internally. Although knowledge of how to use
tmux is not necessary, the user will certainly benefit from it.
Startup
texas may be started either from inside an existing tmux session
or from a regular shell session. In the first case, it will use the
current tmux window and in the second case it will create a new
tmux session in a separate tmux daemon automatically named
"texas".
If you launch texas from an existing tmux session, you may quit
ranger and the shell should still be running just as before
launching texas.
If you launch texas outside of an existing tmux session, ranger
and the shell are bound together: closing one will close the other and
in that regard they may be considered as a single application. If you
open any more tmux windows (which texas by all means does not
discourage), they will not be closed. Only ranger and the
associated shell will close leaving all the other tmux windows
intact.
Switching windows
If you run texas in a new tmux session (see the previous
paragraph), you may use ctrl-o to switch between windows,
like in Midnight Commander. The regular tmux keys for switching
windows will work too (please refer to the tmux manual).
ctrl-o has one advantage though (other than being shorter):
it will work even if you move one of the tmux panes to a separate
tmux window (for example with the :break-pane tmux command) as
it intelligently switches either to a second split or a second window.
Before v1.0 it was supported only in zsh. Since v1.0 it works in
bash too.
Since v1.1 ctrl-o is bound in tmux itself. Before that
it was handled by bash/zsh and ranger.
Since v1.2 ctrl-o is bound only when run in a new
tmux daemon to prevent contaminating the all the other tmux sessions
with this keybinding.
The followind environmental variables may be used to customize texas:
- TEXAS_CONFIG_NOSWAP — display 
rangerbelow the shell instead of on top of it (set to "1" to enable) - TEXAS_CONFIG_SIZE — customize the size of the 
rangerpane, as percentage (default: 70). - TEXAS_CONFIG_TMUX_CONFIG — an additional 
tmuxconfig to source after startingtexas. Only used in a dedicatedtmuxsession, i.e. whentexasis started from outside of an already runningtmux. - TEXAS_CONFIG_SWITCH_KEY — a 
tmuxkey to be bound in a dedicatedtmuxsession for the pane switching (default: C-o) - TEXAS_CONFIG_HORIZONTAL - start tmux with 
-hflag thus making split horizontal instead of vertical (default). Set to "1" to enable. 
rangertmuxbashorzsh
If used with bash, each time ranger changes its current directory
a new prompt line will be shown in bash. It will erase the contents
of the command line and may be seen as ugly.
In tmux 2.1 with TEXAS_CONFIG_NOSWAP=0 the wrong pane is being
focused. It can be fixed by manually adding -d to the tmux swap-pane call. I've detected this behavior only in tmux 2.1. In
both 2.0 and 2.2 -d causes the exactly opposite effect, so it
seems to be a bug in tmux 2.1.
ranger(1), tmux(1)
Wojciech 'vifon' Siewierski < wojciech dot siewierski at onet dot pl >
Copyright (C) 2015-2016 Wojciech Siewierski
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.