a tmux abstraction for the working developer
- fuzzy-find everything: vim's ctrlp
plugin makes vim awesome.
oakthreebrings similar functionality to tmux so that you never have to manage panes again. - portable: All of
oakthreeis written in bash to keep dependencies minimal and functionality consistent. - fast: Since
oakthreeuses fzf, your development speed is no longer bottlenecked by how quickly you can switch tmux windows. It saves you the mental bandwidth of having to remember where all of your panes are. - comfort:
oakthreecomes with a key binding (prefixG) that centers whatever you're looking at in the center of your screen. No more looking slightly to the left all day.
tmux is wonderful. However, I found that I fell into the same pattern of
usage: I would jump to a directory, open vim, and open a shell. Sometimes I
would add another shell for long-running daemons, but ultimately I stuck to the
same few windows. What oakthree does is makes this pattern more intentional.
It hides all of the cruft like panes, windows, and status bars that come along
with tmux and gives you a rigid, fast, and consistent set of functionality out
of the box.
oakthree starts with just a single shell window. When you find a directory in
which you'd like to start working, make a new oakthree project with the
keybinding below. This opens a window with your $EDITOR and an accompanying
$SHELL that you can switch between easily.
Everywhere:
- tmux prefix+K: Open a fuzzy-finder for your open projects.
- tmux prefix+L: Open a fuzzy-finder for your open shells.
- tmux prefix+J: Open a new shell in this window's directory.
- tmux prefix+Ctrl+L: Switch between the most recent shell and the most recent project.
- tmux prefix+G: Center or uncenter the current window.
Just in projects:
- [no prefix] Ctrl+L: Switch between a project's editor and its shell.
Install tpm and
fzf. Add the following to your .tmux.conf:
set -g @plugin 'cfoust/tmux-oakthree'
Restart tmux and tpm will install oakthree automagically.
NOTE: oakthree is a replacement for tmux's default bindings and
environment. It switches to a new binding table and as a result none of your
other bindings will be preserved. This is by design; the goal of the project is
to offer an approachable and fast abstraction over the power of tmux. If you
rely heavily on making your own windows and panes programmatically, oakthree
is probably not for you.