Hello and thanks for tmux!

As a recovering screen user, I'm used to hitting <HOME> or <END> in
the choose-window command so that I can warp the selected row to the
first or last item in the list.  For completeness, the patch adds some
other key mappings in both vi and emacs mode that I think make sense.

- Tor

#
#  Patch adds support for warping to the first/last item in a choose list...
#

Index: tmux-1.8/mode-key.c
===================================================================
--- tmux-1.8.orig/mode-key.c	2013-02-24 04:42:49.000000000 -0800
+++ tmux-1.8/mode-key.c	2013-06-11 09:43:40.000000000 -0700
@@ -80,6 +80,8 @@
 	{ MODEKEYCHOICE_DOWN, "down" },
 	{ MODEKEYCHOICE_PAGEDOWN, "page-down" },
 	{ MODEKEYCHOICE_PAGEUP, "page-up" },
+  { MODEKEYCHOICE_FIRST, "first" },
+  { MODEKEYCHOICE_LAST, "last" },
 	{ MODEKEYCHOICE_SCROLLDOWN, "scroll-down" },
 	{ MODEKEYCHOICE_SCROLLUP, "scroll-up" },
 	{ MODEKEYCHOICE_STARTNUMBERPREFIX, "start-number-prefix" },
@@ -224,6 +226,12 @@
 	{ KEYC_DOWN,		    0, MODEKEYCHOICE_DOWN },
 	{ KEYC_NPAGE,		    0, MODEKEYCHOICE_PAGEDOWN },
 	{ KEYC_PPAGE,		    0, MODEKEYCHOICE_PAGEUP },
+  { 'g',                      0, MODEKEYCHOICE_FIRST },
+  { 'G',                      0, MODEKEYCHOICE_LAST },
+  { KEYC_HOME,                0, MODEKEYCHOICE_FIRST },
+  { KEYC_END,                 0, MODEKEYCHOICE_LAST },
+  { KEYC_HOME | KEYC_CTRL,    0, MODEKEYCHOICE_FIRST },
+  { KEYC_END  | KEYC_CTRL,    0, MODEKEYCHOICE_LAST },
 	{ KEYC_UP | KEYC_CTRL,	    0, MODEKEYCHOICE_SCROLLUP },
 	{ KEYC_UP,		    0, MODEKEYCHOICE_UP },
 	{ ' ',			    0, MODEKEYCHOICE_TREE_TOGGLE },
@@ -366,6 +374,10 @@
 	{ KEYC_DOWN,		    0, MODEKEYCHOICE_DOWN },
 	{ KEYC_NPAGE,		    0, MODEKEYCHOICE_PAGEDOWN },
 	{ KEYC_PPAGE,		    0, MODEKEYCHOICE_PAGEUP },
+  { KEYC_HOME,                0, MODEKEYCHOICE_FIRST },
+  { KEYC_END,                 0, MODEKEYCHOICE_LAST },
+  { '<' | KEYC_ESCAPE,        0, MODEKEYCHOICE_FIRST },
+  { '>' | KEYC_ESCAPE,        0, MODEKEYCHOICE_LAST },
 	{ KEYC_UP | KEYC_CTRL,	    0, MODEKEYCHOICE_SCROLLUP },
 	{ KEYC_UP,		    0, MODEKEYCHOICE_UP },
 	{ ' ',			    0, MODEKEYCHOICE_TREE_TOGGLE },
Index: tmux-1.8/tmux.h
===================================================================
--- tmux-1.8.orig/tmux.h	2013-06-11 09:42:42.000000000 -0700
+++ tmux-1.8/tmux.h	2013-06-11 09:42:42.000000000 -0700
@@ -570,6 +570,8 @@
 	MODEKEYCHOICE_DOWN,
 	MODEKEYCHOICE_PAGEDOWN,
 	MODEKEYCHOICE_PAGEUP,
+	MODEKEYCHOICE_FIRST,
+	MODEKEYCHOICE_LAST,
 	MODEKEYCHOICE_SCROLLDOWN,
 	MODEKEYCHOICE_SCROLLUP,
 	MODEKEYCHOICE_STARTNUMBERPREFIX,
Index: tmux-1.8/window-choose.c
===================================================================
--- tmux-1.8.orig/window-choose.c	2013-03-17 07:03:37.000000000 -0700
+++ tmux-1.8/window-choose.c	2013-06-11 09:42:42.000000000 -0700
@@ -650,6 +650,19 @@
 			data->top = data->selected;
 		window_choose_redraw_screen(wp);
 		break;
+  case MODEKEYCHOICE_FIRST:
+    data->selected = 0;
+    data->top = 0;
+    window_choose_redraw_screen(wp);
+    break;
+  case MODEKEYCHOICE_LAST:
+    data->selected = items - 1;
+    if (screen_size_y(s) < items) {
+      data->top = items - screen_size_y(s);
+    } else
+      data->top = 0;
+    window_choose_redraw_screen(wp);
+    break;
 	case MODEKEYCHOICE_BACKSPACE:
 		input_len = strlen(data->input_str);
 		if (input_len > 0)
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to