diff --git a/interpreter.sh b/interpreter.sh new file mode 100755 index 0000000..3a9013c --- /dev/null +++ b/interpreter.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +set -e + +interpreters=() + +add() { + local interp=$1 + if command -v $interp &> /dev/null; then + interpreters+=($(where $interp)) + fi +} + +add ipython +add python +add cling +add lua +add luajit +add node + +add bash +add zsh +add fish + +interpreter=$( + echo "${interpreters[@]}" | tr ' ' '\n' | + fzf --layout=reverse --info=hidden --border=none --cycle +) + +$interpreter diff --git a/tmux.conf b/tmux.conf index bc4db89..ad6c3f2 100644 --- a/tmux.conf +++ b/tmux.conf @@ -66,6 +66,8 @@ if -b '[ "`uname`" = "Darwin" ]' \ bind C-t display-popup -S fg=#54546D -b rounded -d '#{pane_current_path}' -E $SHELL # Open a popup with session creator/switcher bind C-s display-popup -B -w 60 -h 10 -E '~/.config/tmux/session.sh' +# Open a popup to pick an interpreter then launch it +bind C-i display-popup -S fg=#54546D -b rounded -d '#{pane_current_path}' -E '$SHELL -i ~/.config/tmux/interpreter.sh' # Restore old next/previous window bindings bind C-n next-window