mirror of
https://github.com/tmux/tmux.git
synced 2025-09-01 20:57:00 +00:00
Add support for simple menus usable with mouse or keyboard. New command
display-menu shows a menu (bound to the mouse on status line by default) and a couple of extra formats for the default menus.
This commit is contained in:
48
format.c
48
format.c
@ -54,6 +54,49 @@ static void format_defaults_session(struct format_tree *,
|
||||
static void format_defaults_client(struct format_tree *, struct client *);
|
||||
static void format_defaults_winlink(struct format_tree *, struct winlink *);
|
||||
|
||||
/* Default menus. */
|
||||
#define DEFAULT_CLIENT_MENU \
|
||||
"Detach,d,detach-client|" \
|
||||
"Detach & Kill,X,detach-client -P|" \
|
||||
"Detach Others,o,detach-client -a|" \
|
||||
"|" \
|
||||
"#{?#{lock-command},Lock,},l,lock-client"
|
||||
#define DEFAULT_SESSION_MENU \
|
||||
"Next,n,switch-client -n|" \
|
||||
"Previous,p,switch-client -p|" \
|
||||
"|" \
|
||||
"Renumber,N,move-window -r|" \
|
||||
"Rename,n,command-prompt -I \"#S\" \"rename-session -- '%%'\"|" \
|
||||
"|" \
|
||||
"New Session,s,new-session|" \
|
||||
"New Window,w,new-window"
|
||||
#define DEFAULT_WINDOW_MENU \
|
||||
"Swap Left,l,swap-window -t,-1|" \
|
||||
"Swap Right,r,swap-window -t,+1|" \
|
||||
"#{?pane_marked_set,,#[dim]}Swap Marked,s,swap-window|" \
|
||||
"|" \
|
||||
"Kill,X,kill-window|" \
|
||||
"Respawn,R,respawn-window -k|" \
|
||||
"|" \
|
||||
"#{?pane_marked,Unmark,Mark},m,select-pane -m|" \
|
||||
"Rename,n,command-prompt -I \"#W\" \"rename-window -- '%%'\"|" \
|
||||
"|" \
|
||||
"New After,w,new-window -a|" \
|
||||
"New At End,W,new-window"
|
||||
#define DEFAULT_PANE_MENU \
|
||||
"Horizontal Split,h,split-window -h|" \
|
||||
"Vertical Split,v,split-window -v|" \
|
||||
"|" \
|
||||
"Swap Up,u,swap-pane -U|" \
|
||||
"Swap Down,d,swap-pane -D|" \
|
||||
"#{?pane_marked_set,,#[dim]}Swap Marked,s,swap-pane|" \
|
||||
"|" \
|
||||
"Kill,X,kill-pane|" \
|
||||
"Respawn,R,respawn-pane -k|" \
|
||||
"|" \
|
||||
"#{?pane_marked,Unmark,Mark},m,select-pane -m|" \
|
||||
"#{?window_zoomed_flag,Unzoom,Zoom},z,resize-pane -Z"
|
||||
|
||||
/* Entry in format job tree. */
|
||||
struct format_job {
|
||||
struct client *client;
|
||||
@ -752,6 +795,11 @@ format_create(struct client *c, struct cmdq_item *item, int tag, int flags)
|
||||
}
|
||||
}
|
||||
|
||||
format_add(ft, "client_menu", "%s", DEFAULT_CLIENT_MENU);
|
||||
format_add(ft, "session_menu", "%s", DEFAULT_SESSION_MENU);
|
||||
format_add(ft, "window_menu", "%s", DEFAULT_WINDOW_MENU);
|
||||
format_add(ft, "pane_menu", "%s", DEFAULT_PANE_MENU);
|
||||
|
||||
if (item != NULL) {
|
||||
if (item->cmd != NULL)
|
||||
format_add(ft, "command", "%s", item->cmd->entry->name);
|
||||
|
Reference in New Issue
Block a user