40 Commits

Author SHA1 Message Date
103cf66ec3 Bump version to 0.7.0 2013-06-18 00:13:57 +01:00
f3797204fb Merge pull request #15 from jimeh/new-init-system
New init system
2013-06-17 16:11:56 -07:00
83b6b47f7c Update readme 2013-06-18 00:05:15 +01:00
fb5a775d98 Improve EDITOR checks 2013-06-17 13:39:13 +01:00
0359e09806 Merge branch 'master' into new-init-system 2013-06-17 13:36:09 +01:00
ee32ac25b8 Merge pull request #17 from peter-d/new-init-system-check
New init system check
2013-06-17 05:32:04 -07:00
peter-d
54561b9bbd fixed a typo 2013-06-17 14:25:24 +02:00
peter-d
a4e3edc4ca Fixed the path setup for tcsh 2013-06-17 14:24:32 +02:00
9f1a3621f0 Fix an error and tweak some styling in readme 2013-06-12 09:00:18 +01:00
831deec069 Update readme with details of new init system 2013-06-12 08:50:25 +01:00
536f625b5d Print correct help info for init command based on the shell used 2013-06-12 00:53:40 +01:00
9e8a5c3dc9 Separate init command output commands with ; fixing issues with tcsh 2013-06-12 00:48:48 +01:00
f0647b0326 Update init scripts 2013-06-12 00:31:51 +01:00
c9c3534f05 Improve init command's argument parsing 2013-06-12 00:08:44 +01:00
7a9c94ff6f Merge pull request #14 from raulbrito/patch-1
Update README.md
2013-06-06 11:43:16 -07:00
Raul Brito
0caf3a78f5 Update README.md 2013-06-06 20:31:26 +02:00
21c43be558 Merge branch 'master' into new-init-system 2013-06-03 09:50:38 +03:00
bb97d5791b Bump version to 0.6.1 2013-06-03 09:48:21 +03:00
dea8939ee0 Remove forgotten and useless variable 2013-06-03 09:46:26 +03:00
df5e6031cd Alter how internal help invocation work to make life a bit easier 2013-06-03 09:46:03 +03:00
adcea18bdc Get rid of now needless for loops 2013-06-03 09:44:57 +03:00
f9c91e5fcd Improve --help and --complete argument handling 2013-06-03 09:32:13 +03:00
1a9dd4787d Improve argument handling of init command 2013-06-03 09:16:58 +03:00
4d486d48d0 Fix a typo 2013-06-02 21:30:56 +03:00
d94ccf560e Simplify internals of init command a bit 2013-06-02 21:29:38 +03:00
ed3fda5769 Update init command to use new help system 2013-06-02 21:25:19 +03:00
35832165ec Merge branch 'master' into new-init-system 2013-06-02 21:04:49 +03:00
7d91ca4292 Bump version to 0.6.0 2013-06-02 20:35:30 +03:00
15bbca80d4 Update aliases and fixed inconsistencies with list command aliases 2013-06-02 20:35:06 +03:00
bd585ca2bb Misc. code cleanup and minor improvement to help command 2013-06-02 20:27:28 +03:00
bf6969ba37 Bump version to 0.5.1 2013-06-02 20:11:36 +03:00
bdea895af0 Change output format of list commands 2013-06-02 20:10:26 +03:00
55cf26b9e6 Re-organize and improve help command and help info for each command 2013-06-02 20:09:59 +03:00
5363ac555b Re-organize internal files a bit 2013-06-02 18:45:12 +03:00
489d1a5a3e Small readme update 2013-06-02 18:40:27 +03:00
fa28de8b94 Bump version to 0.5.0 2013-06-02 18:30:53 +03:00
0e2cfa2327 Enable load-session command from outside of Tmux
This means that "init" session layouts can now be used to start and/or
re-attach to your main session.

Personally I have a "main" session layout with a couple of default
windows. I can now either start that session, or re-attach to it from
outside of Tmux by just running `tmuxifier s main`, instead of manually
creating a session named "main" and then loading my windows into it.
2013-06-02 18:30:28 +03:00
7cc9228839 Add early version new tmuxifier-init command 2013-06-02 17:51:43 +03:00
7ab7586f74 Auto-set $TMUXIFIER to correct directory based on relative path 2013-06-02 17:43:41 +03:00
51ebf880dc Only add $TMUXIFIER/bin to $PATH if it is not in $PATH already 2013-06-02 17:42:31 +03:00
25 changed files with 436 additions and 191 deletions

View File

@@ -1,6 +1,6 @@
# Tmuxifier
Tmuxify your Tmux. Create, edit, mangage and load complex Tmux session, window
Tmuxify your Tmux. Create, edit, manage and load complex Tmux session, window
and pane configurations with ease.
In short, Tmuxifier allows you to easily create, edit, and load "layout"
@@ -58,23 +58,51 @@ Clone the repo to your machine:
git clone https://github.com/jimeh/tmuxifier.git ~/.tmuxifier
```
### bash & zsh
Then add `~/.tmuxifier/bin` to your PATH to make the `tmuxifier` executable
available to you:
__In bash & zsh:__
```bash
export PATH="~/.tmuxifier/bin:$PATH"
```
__In tcsh:__
```tcsh
set path = ( "~/.tmuxifier/bin" $path )
```
### Custom Installation Path
To install Tmuxifier somewhere else than the suggested `~/.tmuxifier`, simply
clone the repository to your custom location, and ensure the `bin` folder is
added to your PATH making the `tmuxifier` executable available to you.
## Setup
__In bash & zsh:__
And add the following to your `~/.profile`, `~/.bash_profile`, `~/.zshrc` or
equivalent:
```bash
[[ -s "$HOME/.tmuxifier/init.sh" ]] && source "$HOME/.tmuxifier/init.sh"
eval "$(tmuxifier init -)"
```
### tcsh
__In tcsh:__
Add the following to your `~/.cshrc`, `~/.tcshrc` or equivalent:
```tcsh
if ( -s "$HOME/.tmuxifier/init.sh" ) then
source "$HOME/.tmuxifier/init.sh"
endif
eval `tmuxifier init -`
```
## Updating
```bash
cd ~/.tmuxifier
git pull
```
## Usage
@@ -129,17 +157,6 @@ in it.
## Configure & Customize
### Custom Installaton Path
To install Tmuxifier to a custom path, clone the repository to your desired
path and set `$TMUXIFIER` to that path, additionally loading `init.sh` or
`init.tcsh` from that same path.
```bash
export TMUXIFIER="$HOME/.dotfiles/tmuxifier"
[[ -s "$TMUXIFIER/init.sh" ]] && source "$TMUXIFIER/init.sh"
```
### Custom Layouts Path
You can customize the layouts directory used by Tmuxifier by setting
@@ -151,7 +168,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 +184,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 +217,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

@@ -2,14 +2,32 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
resolve_link() {
$(type -p greadlink readlink | head -1) $1
}
abs_dirname() {
local cwd="$(pwd)"
local path="$1"
while [ -n "$path" ]; do
cd "${path%/*}"
local name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
pwd
cd "$cwd"
}
if [ -z "${TMUXIFIER}" ]; then
export TMUXIFIER="${HOME}/.tmuxifier"
export TMUXIFIER="$(dirname "$(abs_dirname "$0")")"
else
export TMUXIFIER="${TMUXIFIER%/}"
fi
# Load tmuxifier environment variables.
source "$TMUXIFIER/env.sh"
source "$TMUXIFIER/lib/env.sh"
export PATH="$TMUXIFIER/libexec:$PATH"

View File

@@ -1,4 +1,4 @@
# Set tmuxifier root path.
# Set/fix Tmuxifier root path if needed.
if [ -z "${TMUXIFIER}" ]; then
export TMUXIFIER="${HOME}/.tmuxifier"
else
@@ -6,10 +6,12 @@ else
fi
# Add `bin` directroy to `$PATH`.
export PATH="$TMUXIFIER/bin:$PATH"
if [[ ":$PATH:" != *":$TMUXIFIER/bin:"* ]]; then
export PATH="$TMUXIFIER/bin:$PATH"
fi
# If `tmuxifier` is available, and `$TMUXIFIER_NO_COMPLETE` is not set, then
# load tmuxifier shell completion.
# load Tmuxifier shell completion.
if [ -n "$(command -v "tmuxifier")" ] && [ -z "$TMUXIFIER_NO_COMPLETE" ]; then
if [ -n "$BASH_VERSION" ]; then
source "$TMUXIFIER/completion/tmuxifier.bash"

View File

@@ -1,13 +1,15 @@
# Set tmuxifier root path.
# Set Tmuxifier root path if needed.
if ( ! $?TMUXIFIER ) then
setenv TMUXIFIER "${HOME}/.tmuxifier"
endif
# Add `bin` directroy to `$PATH`.
set path = ( $TMUXIFIER/bin $path )
# Add `bin` directroy to `$path` if needed.
if ( ! (" $path " =~ "* $TMUXIFIER/bin *" ) ) then
set path = ( $TMUXIFIER/bin $path )
endif
# If `tmuxifier` is available, and `$TMUXIFIER_NO_COMPLETE` is not set, then
# load tmuxifier shell completion.
# load Tmuxifier shell completion.
if ( ! $?TMUXIFIER_NO_COMPLETE ) then
which tmuxifier > /dev/null && source "$TMUXIFIER/completion/tmuxifier.tcsh"
endif

View File

View File

@@ -187,9 +187,6 @@ initialize_session() {
local first_window_index=$(__get_first_window_index)
tmux move-window -s "$session:$first_window_index" -t "$session:999"
# Ensure correct pane splitting.
__go_to_session
# Session created, return ok exit status.
return 0
fi

View File

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

11
lib/util.sh Normal file
View File

@@ -0,0 +1,11 @@
calling-help() {
if [[ " $@ " != *" --help "* ]] && [[ " $@ " != *" -h "* ]]; then
return 1
fi
}
calling-complete() {
if [[ " $@ " != *" --complete "* ]]; then
return 1
fi
}

View File

@@ -2,6 +2,17 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-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"
@@ -9,25 +20,25 @@ case "$1" in
"window" | "win" | "w" )
echo "load-window"
;;
"new-ses" | "ns" )
"new-ses" | "nses" | "ns" )
echo "new-session"
;;
"new-win" | "nw" )
"new-win" | "nwin" | "nw" )
echo "new-window"
;;
"edit-ses" | "es" )
"edit-ses" | "eses" | "es" )
echo "edit-session"
;;
"edit-win" | "ew" )
"edit-win" | "ewin" | "ew" )
echo "edit-window"
;;
"ls" )
"l" )
echo "list"
;;
"list-ses" | "lss" )
"list-ses" | "lses" | "ls" )
echo "list-sessions"
;;
"list-win" | "lsw" )
"list-win" | "lwin" | "lw" )
echo "list-windows"
;;
* )

View File

@@ -2,6 +2,18 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-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,23 +2,33 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-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
if calling-complete "$@"; then
tmuxifier-commands
exit
fi
has-completions() {
grep -i "^# provide tmuxifier completions" "$1" >/dev/null
grep -i "^# Provide tmuxifier completions" "$1" >/dev/null
}
command="$1"
if [ -z "$command" ]; then
echo "$(tmuxifier-help completions)" >&2
if [ -z "$1" ]; then
echo "$(tmuxifier-help completions $@)" >&2
exit 1
fi
! command_path="$(tmuxifier-resolve-command-path "$command")"
! command_path="$(tmuxifier-resolve-command-path "$1")"
if [ -n "$command_path" ] && has-completions "$command_path"; then
shift

View File

@@ -2,6 +2,17 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-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,16 +2,27 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-help "$@"; then
echo "usage: tmuxifier edit-session <layout_name>
Aliases: edit-ses, eses, 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
echo "$item"
done
if calling-complete "$@"; then
tmuxifier-list-sessions
exit
fi
if [ -z "$1" ]; then
echo "$(tmuxifier-help edit-session)" >&2
echo "$(tmuxifier-help edit-session $@)" >&2
exit 1
fi
@@ -26,4 +37,10 @@ if [ ! -f "$layout_file" ]; then
exit 1
fi
exec "$EDITOR" "$layout_file"
if [ -n "$EDITOR" ]; then
exec "$EDITOR" "$layout_file"
else
echo "'\$EDITOR' is not set. Please manually open the layout for editing:"
echo "$layout_file"
echo
fi

View File

@@ -2,16 +2,27 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-help "$@"; then
echo "usage: tmuxifier edit-window <layout_name>
Aliases: edit-win, ewin, 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
echo "$item"
done
if calling-complete "$@"; then
tmuxifier-list-windows
exit
fi
if [ -z "$1" ]; then
echo "$(tmuxifier-help edit-window)" >&2
echo "$(tmuxifier-help edit-window $@)" >&2
exit 1
fi
@@ -26,4 +37,10 @@ if [ ! -f "$layout_file" ]; then
exit 1
fi
exec "$EDITOR" "$layout_file"
if [ -n "$EDITOR" ]; then
exec "$EDITOR" "$layout_file"
else
echo "'\$EDITOR' is not set. Please manually open the layout for editing:"
echo "$layout_file"
echo
fi

View File

@@ -2,33 +2,35 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-help "$@"; then
tmuxifier-help
exit
fi
# Provide tmuxifier completions
if [ "$1" == "--complete" ]; then
if calling-complete "$@"; then
tmuxifier-commands
exit
fi
command="$1"
has-help() {
grep -i "^# Provide tmuxifier help" "$1" >/dev/null
}
# 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 "$1" ]; then
echo "usage: tmuxifier <command> [<args>]
Some useful tmuxifier commands are:
<command> <alias>
load-session s Load the specified session layout.
load-window w Load the specified window layout into current session.
list ls List all session and window layouts.
list-sessions lss List session layouts.
list-windows lsw List window layouts.
list l List all session and window layouts.
list-sessions ls List session layouts.
list-windows lw List window layouts.
new-session ns Create new session layout and open it with \$EDITOR.
new-window nw Create new window layout and open it with \$EDITOR.
edit-session es Edit specified session layout with \$EDITOR.
@@ -38,87 +40,25 @@ 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 "$1")"
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 '$1'" >&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
command="$(basename "$command_path")"
command="${command/tmuxifier\-/}"
echo "Sorry, the '$command' command isn't documented yet."
echo ""
echo "You can view the command's source here:"
echo "$command_path"
echo ""
fi

74
libexec/tmuxifier-init Executable file
View File

@@ -0,0 +1,74 @@
#! /usr/bin/env bash
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Set shell to first argument that is not "-", "-h" or "--help".
for arg in "$@"; do
if [ "$arg" != "-" ] &&[ "$arg" != "-h" ] && [ "$arg" != "--help" ]; then
shell="$arg"
fi
done
if [ -z "$shell" ]; then
shell="$(basename "$SHELL")"
fi
case "$shell" in
bash )
profile='~/.bash_profile'
;;
zsh )
profile='~/.zshrc'
;;
ksh )
profile='~/.profile'
;;
csh )
profile='~/.cshrc'
;;
tcsh )
profile='~/.tcshrc'
;;
* )
profile='shell init file'
;;
esac
# Provide tmuxifier help
if [[ " $@ " == *" --help "* ]]; then
echo "usage: tmuxifier init -
Load Tmuxifier by adding the following to your ${profile}:
"
case "$shell" in
csh | tcsh )
echo " eval \`tmuxifier init -\`
"
;;
* )
echo " eval \"\$(tmuxifier init -)\"
"
;;
esac
echo "You might also need to add Tmuxifier's bin directory to your PATH."
exit
fi
# Print help if "-" argument is not given
if [[ " $@ " != *" - "* ]]; then
echo "$(tmuxifier-help init $@)" >&2
exit 1
fi
case "$shell" in
csh | tcsh )
echo "setenv TMUXIFIER \"$TMUXIFIER\";"
echo "source \"\$TMUXIFIER/init.tcsh\";"
;;
* )
echo "export TMUXIFIER=\"$TMUXIFIER\";"
echo "source \"\$TMUXIFIER/init.sh\";"
;;
esac

View File

@@ -2,10 +2,27 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-help "$@"; then
echo "usage: tmuxifier list
Aliases: l
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,21 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-help "$@"; then
echo "usage: tmuxifier list-sessions
Aliases: list-ses, lses, ls
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,21 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-help "$@"; then
echo "usage: tmuxifier list-windows
Aliases: list-win, lwin, lw
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,25 +2,33 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-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
echo "$item"
done
if calling-complete "$@"; then
tmuxifier-list-sessions
exit
fi
if [ -z "$1" ]; then
echo "$(tmuxifier-help load-session)" >&2
echo "$(tmuxifier-help load-session $@)" >&2
exit 1
fi
# Load runtime functions.
source "$TMUXIFIER/runtime.sh"
source "$TMUXIFIER/lib/runtime.sh"
if [ ! -z $TMUX ]; then
load_session "$1"
else
echo "tmuxifier: 'load-session' command can only be used from within Tmux."
exit 1
fi
# Load session file.
load_session "$1"

View File

@@ -2,21 +2,32 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-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
echo "$item"
done
if calling-complete "$@"; then
tmuxifier-list-windows
exit
fi
if [ -z "$1" ]; then
echo "$(tmuxifier-help load-window)" >&2
echo "$(tmuxifier-help load-window $@)" >&2
exit 1
fi
# Load runtime functions.
source "$TMUXIFIER/runtime.sh"
source "$TMUXIFIER/lib/runtime.sh"
if [ ! -z $TMUX ]; then
session="$(tmuxifier-current-session)"

View File

@@ -2,16 +2,27 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-help "$@"; then
echo "usage: tmuxifier new-session <layout_name>
Aliases: new-ses, nses, 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
echo "$item"
done
if calling-complete "$@"; then
tmuxifier-list-sessions
exit
fi
if [ -z "$1" ]; then
echo "$(tmuxifier-help new-session)" >&2
echo "$(tmuxifier-help new-session $@)" >&2
exit 1
fi
@@ -35,7 +46,7 @@ fi
content="$(cat "$template")"
echo "${content//\{\{SESSION_NAME\}\}/$layout_name}" > "$layout_file"
if [ ! -z "$EDITOR" ]; then
if [ -n "$EDITOR" ]; then
exec "$EDITOR" "$layout_file"
else
echo "Layout file has been created, but '\$EDITOR' is not set. Please "

View File

@@ -2,16 +2,27 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-help "$@"; then
echo "usage: tmuxifier new-window <layout_name>
Aliases: new-win, nwin, nw
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
echo "$item"
done
if calling-complete "$@"; then
tmuxifier-list-windows
exit
fi
if [ -z "$1" ]; then
echo "$(tmuxifier-help new-window)" >&2
echo "$(tmuxifier-help new-window $@)" >&2
exit 1
fi
@@ -35,7 +46,7 @@ fi
content="$(cat "$template")"
echo "${content//\{\{WINDOW_NAME\}\}/$layout_name}" > "$layout_file"
if [ ! -z "$EDITOR" ]; then
if [ -n "$EDITOR" ]; then
exec "$EDITOR" "$layout_file"
else
echo "Layout file has been created, but '\$EDITOR' is not set. Please "

View File

@@ -2,6 +2,17 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-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,15 @@
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
echo "0.4.1"
# Load internal utility functions.
source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help
if calling-help "$@"; then
echo "usage: tmuxifier version
Outputs Tmuxifier version."
exit
fi
echo "0.7.0"