5 Commits

20 changed files with 186 additions and 106 deletions

View File

@@ -151,7 +151,7 @@ export TMUXIFIER_LAYOUT_PATH="$HOME/.tmux-layouts"
### Disable Shell-Completion
Tmuxifier comes with shell-completion for bash and zsh. If for any
Tmuxifier comes with shell-completion for bash, zsh and tcsh. If for any
reason you need to disable it, just set `$TMUXIFIER_NO_COMPLETE`.
```bash
@@ -167,7 +167,7 @@ export TMUXIFIER_NO_COMPLETE=1
## Tmuxifier vs. Tmuxinator
Though Tmuxifier is largely inspired by the excellent [Tmuxinator][] project,
but does set itself apart in a number of ways:
it does set itself apart in a number of ways:
- Uses shell scripts to define Tmux sessions and windows instead of YAML
files. The benefit is total control over Tmux, but the definition files are
@@ -200,7 +200,7 @@ But if that doesn't put you off, please enjoy Tmuxifier :)
(The MIT license)
Copyright (c) 2012 Jim Myhrberg.
Copyright (c) 2013 Jim Myhrberg.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -9,7 +9,7 @@ else
fi
# Load tmuxifier environment variables.
source "$TMUXIFIER/env.sh"
source "$TMUXIFIER/lib/env.sh"
export PATH="$TMUXIFIER/libexec:$PATH"

View File

View File

@@ -3,7 +3,7 @@
#
# Load tmuxifier environment.
source "$TMUXIFIER/env.sh"
source "$TMUXIFIER/lib/env.sh"
# Setup default variables.
session_root="$HOME"

View File

@@ -2,6 +2,14 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier alias <alias>
Resolve a command alias to it's full name."
exit
fi
case "$1" in
"session" | "ses" | "s" )
echo "load-session"

View File

@@ -2,6 +2,15 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier commands
List all available commands, includes internal commands not intended for
normal use by users."
exit
fi
shopt -s nullglob
{ for path in ${PATH//:/$'\n'}; do

View File

@@ -2,6 +2,14 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier completion <command>
Print a list of available completions for specified command."
exit
fi
# Provide tmuxifier completions
if [ "$1" == "--complete" ]; then
tmuxifier-commands
@@ -9,7 +17,7 @@ if [ "$1" == "--complete" ]; then
fi
has-completions() {
grep -i "^# provide tmuxifier completions" "$1" >/dev/null
grep -i "^# Provide tmuxifier completions" "$1" >/dev/null
}
command="$1"

View File

@@ -2,6 +2,14 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier current-session
Outputs the name of the current Tmux session."
exit
fi
if [ -n "$TMUX" ]; then
for item in $(tmux list-pane -F "#{session_name}");do
echo $item

View File

@@ -2,6 +2,16 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier edit-session <layout_name>
Aliases: edit-ses, es
Open specified session layout for editing in \$EDITOR."
exit
fi
# Provide tmuxifier completions
if [ "$1" == "--complete" ]; then
for item in $(tmuxifier-list-sessions); do

View File

@@ -2,6 +2,16 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier edit-window <layout_name>
Aliases: edit-win, ew
Open specified window layout for editing in \$EDITOR."
exit
fi
# Provide tmuxifier completions
if [ "$1" == "--complete" ]; then
for item in $(tmuxifier-list-windows); do

View File

@@ -2,25 +2,25 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
tmuxifier-help
exit
fi
# Provide tmuxifier completions
if [ "$1" == "--complete" ]; then
tmuxifier-commands
exit
fi
has-help() {
grep -i "^# Provide tmuxifier help" "$1" >/dev/null
}
command="$1"
# Ensure we have the correct command name in case an alias was given.
if [ -n "$command" ]; then
! resolved="$(tmuxifier-alias "$command")"
if [ -n "$resolved" ]; then
command="$resolved"
fi
fi
case "$command" in
"" )
echo "usage: tmuxifier <command> [<args>]
if [ -z "$command" ]; then
echo "usage: tmuxifier <command> [<args>]
Some useful tmuxifier commands are:
<command> <alias>
@@ -38,87 +38,23 @@ Some useful tmuxifier commands are:
help Show this message.
See 'tmuxifier help <command>' for information on a specific command."
;;
"load-session" )
echo "usage: tmuxifier load-session <layout_name>
exit
fi
Aliases: session, ses, s
! command_path="$(tmuxifier-resolve-command-path "$command")"
Create a session using the session layout, unless the session already exists
in which case, we simply switch to the existing one."
;;
"load-window" )
echo "usage: tmuxifier load-window <layout_name>
if [ -z "$command_path" ]; then
echo "tmuxifier: no such command '$command'" >&2
exit 1
fi
Aliases: window, win, w
Create a new window using the specified window layout in the current session."
;;
"new-session" )
echo "usage: tmuxifier new-session <layout_name>
Aliases: new-ses, ns
Create a new session layout and open it for editing in \$EDITOR."
;;
"new-window" )
echo "usage: tmuxifier new-window <layout_name>
Aliases: new-win, ws
Create a new window layout and open it for editing in \$EDITOR."
;;
"edit-session" )
echo "usage: tmuxifier edit-session <layout_name>
Aliases: edit-ses, es
Open specified session layout for editing in \$EDITOR."
;;
"edit-window" )
echo "usage: tmuxifier edit-window <layout_name>
Aliases: edit-win, ew
Open specified window layout for editing in \$EDITOR."
;;
"completions" )
echo "usage: tmuxifier completion <command>
Print a list of available completions for specified command."
;;
"list" )
echo "usage: tmuxifier list
Aliases: ls
List all available session and window layouts."
;;
"list-sessions" )
echo "usage: tmuxifier list-sessions
Aliases: list-ses, lss
List all session layouts."
;;
"list-windows" )
echo "usage: tmuxifier list-windows
Aliases: list-win, lsw
List all window layouts."
;;
* )
! command_path="$(tmuxifier-resolve-command-path "$command")"
if [ -n "$command_path" ]; then
echo "Sorry, the '$command' command isn't documented yet."
echo
echo "You can view the command's source here:"
echo "$command_path"
echo
else
echo "tmuxifier: no such command '$command'" >&2
exit 1
fi
;;
esac
if has-help "$command_path"; then
shift
exec "$command_path" --help "$@"
else
echo "Sorry, the '$command' command isn't documented yet."
echo ""
echo "You can view the command's source here:"
echo "$command_path"
echo ""
fi

View File

@@ -2,10 +2,24 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier list
Aliases: ls
List all available session and window layouts."
exit
fi
echo ""
echo "Sessions:"
tmuxifier-list-sessions
for item in $(tmuxifier-list-sessions); do
echo " - $item"
done
echo ""
echo "Windows:"
tmuxifier-list-windows
for item in $(tmuxifier-list-windows); do
echo " - $item"
done
echo ""

View File

@@ -2,8 +2,18 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier list-sessions
Aliases: list-ses, lss
List all session layouts."
exit
fi
list=$(find -L "$TMUXIFIER_LAYOUT_PATH" -name "*.session.sh")
for file in $list; do
file=${file/$TMUXIFIER_LAYOUT_PATH\//}
echo " ${file/.session.sh/}"
echo "${file/.session.sh/}"
done

View File

@@ -2,8 +2,18 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier list-windows
Aliases: list-win, lsw
List all window layouts."
exit
fi
list=$(find -L "$TMUXIFIER_LAYOUT_PATH" -name "*.window.sh")
for file in $list; do
file=${file/$TMUXIFIER_LAYOUT_PATH\//}
echo " ${file/.window.sh/}"
echo "${file/.window.sh/}"
done

View File

@@ -2,6 +2,17 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier load-session <layout_name>
Aliases: session, ses, s
Create a session using the session layout, unless the session already exists
in which case, we simply attach/switch to the existing one."
exit
fi
# Provide tmuxifier completions
if [ "$1" == "--complete" ]; then
for item in $(tmuxifier-list-sessions); do
@@ -16,7 +27,7 @@ if [ -z "$1" ]; then
fi
# Load runtime functions.
source "$TMUXIFIER/runtime.sh"
source "$TMUXIFIER/lib/runtime.sh"
# Load session file.
load_session "$1"

View File

@@ -2,6 +2,16 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier load-window <layout_name>
Aliases: window, win, w
Create a new window using the specified window layout in the current session."
exit
fi
# Provide tmuxifier completions
if [ "$1" == "--complete" ]; then
for item in $(tmuxifier-list-windows); do
@@ -16,7 +26,7 @@ if [ -z "$1" ]; then
fi
# Load runtime functions.
source "$TMUXIFIER/runtime.sh"
source "$TMUXIFIER/lib/runtime.sh"
if [ ! -z $TMUX ]; then
session="$(tmuxifier-current-session)"

View File

@@ -2,6 +2,16 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier new-session <layout_name>
Aliases: new-ses, ns
Create a new session layout and open it for editing in \$EDITOR."
exit
fi
# Provide tmuxifier completions
if [ "$1" == "--complete" ]; then
for item in $(tmuxifier-list-sessions); do

View File

@@ -2,6 +2,16 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier new-window <layout_name>
Aliases: new-win, ws
Create a new window layout and open it for editing in \$EDITOR."
exit
fi
# Provide tmuxifier completions
if [ "$1" == "--complete" ]; then
for item in $(tmuxifier-list-windows); do

View File

@@ -2,6 +2,14 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier resolve-command-path <command_or_alias>
Outputs the absolute path to the given command or command alias."
exit
fi
if [ -n "$1" ]; then
! command_path="$(command -v "tmuxifier-$1")"
if [ -z "$command_path" ]; then

View File

@@ -2,4 +2,12 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
echo "0.5.0"
# Provide tmuxifier help
if [ "$1" == "--help" ]; then
echo "usage: tmuxifier version
Outputs Tmuxifier version."
exit
fi
echo "0.5.1"