My complete tmux configuration as a tmux plugin.
For an empty starting config that follows the same organization,
switch to the minimal
branch.
Note that versioned released are cut from the minimal
branch,
and changes between those releases are documented in the
CHANGELOG.
The master
branch represents my current tmux environment,
and is intended to remain unversioned.
This configuration system works as a meta-plugin:
all desired tmux plugins are loaded from plugins.conf
using
Tmux Plugin Manager.
Overall configuration then follows a normal plugin structure.
You must be in a tmux session to install.
You can install this via the command-line with either curl
$ curl -L rc.evansosenko.com/tmuxrc/install.sh | sh
or wget
$ wget rc.evansosenko.com/tmuxrc/install.sh -O - | sh
- Install Tmux Plugin Manager.
- Create
~/.config/tmux/tmux.conf
with
# rxrc/tmuxrc
if-shell "test -f $HOME/.config/tmux/plugins/tmuxrc/plugins.conf" "source $HOME/.config/tmux/plugins/tmuxrc/plugins.conf"
if-shell "test ! -f $HOME/.config/tmux/plugins/tmuxrc/plugins.conf" "set -g @tpm_plugins 'tmux-plugins/tpm rxrc/tmuxrc'"
run-shell '$HOME/.config/tmux/plugins/tpm/tpm'
- Install with
$ ~/.config/tmux/plugins/tpm/bin/install_plugins
$ ~/.config/tmux/plugins/tpm/bin/install_plugins
Updating is handled via the normal Tmux Plugin Manager install and update commands.
Alternatively, you can run the commands listed in the Manual Install section.
If found, this configuration will load ~/.config/tmux/tmuxline.zsh
which can be generated or updated using tmuxline.vim
by running :TmuxlineSnapshot! ~/.config/tmux/tmuxline.conf
from Vim inside a tmux session.
Note that any additional .tmux
configuration files added to this plugin
must have the execute bit set to load.
You can customize this configuration or manage your own in the same way.
- Clone or fork this.
If you prefer a clean start, clone the
minimal
branch: it has the same structure and development tools but with a very minimal configuration. Tagged releases are based on that branch. - Replace any instance of
rxrc/tmuxrc
with the path to your repository's location. If you do not host this on GitHub, you may need to adjust the repository path appropriately. - Customize package.json.
- Update
install.sh
on thegh-pages
branch. - Update the urls for the install script in this README.
Here is an example of a command you can use to make replacements:
$ git ls-files -z | xargs -0 sed -i 's/rxrc\/tmuxrc/username\/tmuxrc/g'
You can use Gulp to switch to development mode which will install the local development files to the plugin path.
First, follow the normal install steps if you haven't already. Then, install the development dependences via npm with
$ npm install
While in a tmux session, enter development mode with
$ npm start
Switch out of development mode with
$ npm stop
Please submit and comment on bug reports and feature requests.
To submit a patch:
- Fork it (https://github.com/rxrc/tmuxrc/fork).
- Create your feature branch (
git checkout -b my-new-feature
). - Make changes.
- Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin my-new-feature
). - Create a new Pull Request.
This tmux configuration is licensed under the MIT license.
This software is provided "as is" and without any express or implied warranties, including, without limitation, the implied warranties of merchantibility and fitness for a particular purpose.