Skip to content

Commit fcb20b7

Browse files
committed
Add delete-window and delete-session commands
1 parent 68b02f0 commit fcb20b7

File tree

4 files changed

+118
-28
lines changed

4 files changed

+118
-28
lines changed

completion/tmuxifier.fish

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,42 @@
11

2-
set -l cmd_load_session 'load-session s'
3-
set -l cmd_load_window 'load-window w'
4-
set -l cmd_list 'list l'
5-
set -l cmd_list_sessions 'list-sessions ls'
6-
set -l cmd_list_windows 'list-windows lw'
7-
set -l cmd_new_session 'new-session ns'
8-
set -l cmd_new_window 'new-window nw'
9-
set -l cmd_edit_session 'edit-session es'
10-
set -l cmd_edit_window 'edit-window ew'
11-
set -l cmd_commands 'commands'
12-
set -l cmd_version 'version'
13-
set -l cmd_help 'help'
2+
set -l cmd_load_session 'load-session s'
3+
set -l cmd_load_window 'load-window w'
4+
set -l cmd_list 'list l'
5+
set -l cmd_list_sessions 'list-sessions ls'
6+
set -l cmd_list_windows 'list-windows lw'
7+
set -l cmd_new_session 'new-session ns'
8+
set -l cmd_new_window 'new-window nw'
9+
set -l cmd_edit_session 'edit-session es'
10+
set -l cmd_edit_window 'edit-window ew'
11+
set -l cmd_delete_session 'delete-session es'
12+
set -l cmd_delete_window 'delete-window ew'
13+
set -l cmd_commands 'commands'
14+
set -l cmd_version 'version'
15+
set -l cmd_help 'help'
1416

1517
complete -c tmuxifier -x
1618

1719
# Commands
18-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_load_session -d 'Load the specified session layout.'
19-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_load_window -d 'Load the specified window layout into current session.'
20-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_list -d 'List all session and window layouts.'
21-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_list_sessions -d 'List session layouts.'
22-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_list_windows -d 'List window layouts.'
23-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_new_session -d 'Create new session layout and open it with $EDITOR.'
24-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_new_window -d 'Create new window layout and open it with $EDITOR.'
25-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_edit_session -d 'Edit specified session layout with $EDITOR.'
26-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_edit_window -d 'Edit specified window layout with $EDITOR.'
27-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_commands -d 'List all tmuxifier commands.'
28-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_version -d 'Print Tmuxifier version.'
29-
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_help -d 'Show this message.'
20+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_load_session -d 'Load the specified session layout.'
21+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_load_window -d 'Load the specified window layout into current session.'
22+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_list -d 'List all session and window layouts.'
23+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_list_sessions -d 'List session layouts.'
24+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_list_windows -d 'List window layouts.'
25+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_new_session -d 'Create new session layout and open it with $EDITOR.'
26+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_new_window -d 'Create new window layout and open it with $EDITOR.'
27+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_edit_session -d 'Edit specified session layout with $EDITOR.'
28+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_edit_window -d 'Edit specified window layout with $EDITOR.'
29+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_delete_session -d 'Delete specified session layout with $EDITOR.'
30+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_delete_window -d 'Delete specified window layout with $EDITOR.'
31+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_commands -d 'List all tmuxifier commands.'
32+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_version -d 'Print Tmuxifier version.'
33+
complete -c tmuxifier -n '__fish_use_subcommand' -a $cmd_help -d 'Show this message.'
3034

3135
# Complete subcommands
32-
complete -c tmuxifier -x -n "__fish_seen_subcommand_from $cmd_load_session" -a '(tmuxifier list-sessions)' -d 'session-template'
33-
complete -c tmuxifier -x -n "__fish_seen_subcommand_from $cmd_load_window" -a '(tmuxifier list-windows)' -d 'window-template'
34-
complete -c tmuxifier -x -n "__fish_seen_subcommand_from $cmd_edit_session" -a '(tmuxifier list-sessions)' -d 'session-template'
35-
complete -c tmuxifier -x -n "__fish_seen_subcommand_from $cmd_edit_window" -a '(tmuxifier list-windows)' -d 'window-template'
36+
complete -c tmuxifier -x -n "__fish_seen_subcommand_from $cmd_load_session" -a '(tmuxifier list-sessions)' -d 'session-template'
37+
complete -c tmuxifier -x -n "__fish_seen_subcommand_from $cmd_load_window" -a '(tmuxifier list-windows)' -d 'window-template'
38+
complete -c tmuxifier -x -n "__fish_seen_subcommand_from $cmd_edit_session" -a '(tmuxifier list-sessions)' -d 'session-template'
39+
complete -c tmuxifier -x -n "__fish_seen_subcommand_from $cmd_edit_window" -a '(tmuxifier list-windows)' -d 'window-template'
40+
complete -c tmuxifier -x -n "__fish_seen_subcommand_from $cmd_delete_session" -a '(tmuxifier list-sessions)' -d 'session-template'
41+
complete -c tmuxifier -x -n "__fish_seen_subcommand_from $cmd_delete_window" -a '(tmuxifier list-windows)' -d 'window-template'
3642

libexec/tmuxifier-alias

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ case "$1" in
3232
"edit-win" | "ewin" | "ew" )
3333
echo "edit-window"
3434
;;
35+
"delete-ses" | "dses" | "ds" )
36+
echo "delete-session"
37+
;;
38+
"delete-win" | "dwin" | "dw" )
39+
echo "delete-window"
40+
;;
3541
"l" )
3642
echo "list"
3743
;;

libexec/tmuxifier-delete-session

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#! /usr/bin/env bash
2+
set -e
3+
[ -n "$TMUXIFIER_DEBUG" ] && set -x
4+
5+
# Load internal utility functions.
6+
source "$TMUXIFIER/lib/util.sh"
7+
8+
# Provide tmuxifier help
9+
if calling-help "$@"; then
10+
echo "usage: tmuxifier delete-session <layout_name>
11+
12+
Aliases: delete-ses, dses, ds
13+
14+
Permanently delete specified session layout."
15+
exit
16+
fi
17+
18+
# Provide tmuxifier completions
19+
if calling-complete "$@"; then
20+
tmuxifier-list-session
21+
exit
22+
fi
23+
24+
if [ -z "$1" ]; then
25+
echo "$(tmuxifier-help delete-session $@)" >&2
26+
exit 1
27+
fi
28+
29+
layout_name="$1"
30+
layout_file="$TMUXIFIER_LAYOUT_PATH/${layout_name}.session.sh"
31+
32+
if [ ! -f "$layout_file" ]; then
33+
echo "tmuxifier: session layout '$layout_name' does not exist." >&2
34+
exit 1
35+
fi
36+
37+
if rm -v --interactive "$layout_file" && [ -e "$layout_file" ]; then
38+
echo "tmuxifier: session layout '$layout_file' was not deleted." >&2
39+
fi

libexec/tmuxifier-delete-window

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#! /usr/bin/env bash
2+
set -e
3+
[ -n "$TMUXIFIER_DEBUG" ] && set -x
4+
5+
# Load internal utility functions.
6+
source "$TMUXIFIER/lib/util.sh"
7+
8+
# Provide tmuxifier help
9+
if calling-help "$@"; then
10+
echo "usage: tmuxifier delete-window <layout_name>
11+
12+
Aliases: delete-win, dwin, dw
13+
14+
Permanently delete specified window layout."
15+
exit
16+
fi
17+
18+
# Provide tmuxifier completions
19+
if calling-complete "$@"; then
20+
tmuxifier-list-windows
21+
exit
22+
fi
23+
24+
if [ -z "$1" ]; then
25+
echo "$(tmuxifier-help delete-window $@)" >&2
26+
exit 1
27+
fi
28+
29+
layout_name="$1"
30+
layout_file="$TMUXIFIER_LAYOUT_PATH/${layout_name}.window.sh"
31+
32+
if [ ! -f "$layout_file" ]; then
33+
echo "tmuxifier: window layout '$layout_name' does not exist." >&2
34+
exit 1
35+
fi
36+
37+
if rm -v --interactive "$layout_file" && [ -e "$layout_file" ]; then
38+
echo "tmuxifier: window layout '$layout_file' was not deleted." >&2
39+
fi

0 commit comments

Comments
 (0)