Jump to content

Recommended Posts

Tmux Workflow for Alfred app
Alfred workflow to manage tmux sessions, integrated with iTerm2. It can list current sessions, connect to them, kill them or create a new one. The connect or create action actually opens iTerm2 and connects to the session. Additionally, in all the open actions (new session or connect to session) it can cd to the current Finder's or Path Finder's directory.
Please note: the workflow only handles tmux sessions. It doesn't handle windows, panes, or any other tmux command.

Dependencies

  • iTerm2 installed
  • tmux installed in /usr/local/bin/tmux; easily installed with homebrew doing brew install tmux

Usage
Write the tmux keyword in Alfred to trigger the workflow. 

tmux-main-menu.png
The initial menu options are:

  • An initial not actionable menu item indicating to keep writing after the keyword to search/filter or create a new session.
  • Option to connect to a default tmux session. It's a session named "default" that will always appear in the menu, and if it doesn't exists it will be automatically created.

You can start typing right away after the keyword for search or create a session, or optionally add a space after the keyword for readability; the space is ignored. You'll see the filtered results (bash/zsh included), and a last option to created a new tmux session with the entered name, if non existent.
tmux-create-session.png
tmux-search-sessions.png
If you want to kill a session, action it with ⌥ down. If failure, for example trying to kill the bash/zsh option, you'll hear a classic error sound.
If you want to open the current Finder's or Path Finder's folder, action the current or new session with ⌘down. This command is very fast for new tmux sessions but adds a delay of 1 second for existent tmux sessions, since I cannot find a way to wait for tmux session to load, except by waiting long enough. Still, opening current Finder's path in already existing sessions shouldn't be that common.

Installation
For OS X 10.9 Mavericks, Download the alfred-tmux.alfredworkflow and import to Alfred 2.
For Previous OS X Versions, Download the alfred-tmux.alfredworkflow and import to Alfred 2.

 

Source Code

Clone or Fork the Workflow: https://github.com/ramiroaraujo/alfred-tmux-workflow

Changelog

  • 2014-02-05 - Released

Share this post


Link to post

Very nice workflow :)

 

Perhaps one nice addition would be to add support for wrapper scripts like tmx (here's my version: https://github.com/WoLpH/dotfiles/blob/master/bin/tmx) which automatically launches a new tmux session and activates your environment.

 

Currently I'm just using it from the shell with this little zsh completion script to save me some typing:

#compdef tmx

local active_sessions all_sessions

_active_sessions() {
    if [ -n "$(tmux ls 2>/dev/null)" ]; then
        active_sessions=($(tmux ls | awk -F ':' '{print $1}' | tr '\n' ' '))
    fi
}

_all_sessions() {
    [ -d ~/workspace ] && all_sessions=($(ls -1 ~/workspace | sed -e 's/\.sparseimage.*//' | grep -v '\.' | grep -iE '[a-z0-9]*'))
}

_active_sessions
_wanted active_sessions expl 'Active sessions' compadd -a active_sessions

_all_sessions
_wanted all_sessions expl 'All sessions' compadd -a all_sessions

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...