diff -u b/htop.c a/htop.c --- b/htop.c 2012-10-04 19:55:31.000000000 -0400 +++ a/htop.c 2013-03-17 19:14:37.514902209 -0400 @@ -119,13 +119,13 @@ mvaddstr(7, 0, "In monochrome, meters are displayed through different chars, in order: |#*@$%&"); } mvaddstr( 8, 0, " Status: R: running; S: sleeping; T: traced/stopped; Z: zombie; D: disk sleep"); - mvaddstr( 9, 0, " Arrows: scroll process list F5 t: tree view"); + mvaddstr( 9, 0, " hjkl: scroll process list F5 t: tree view"); mvaddstr(10, 0, " Digits: incremental PID search u: show processes of a single user"); mvaddstr(11, 0, " F3 /: incremental name search H: hide/show user threads"); mvaddstr(12, 0, " F4 \\: incremental name filtering K: hide/show kernel threads"); mvaddstr(13, 0, " Space: tag processes F: cursor follows process"); mvaddstr(14, 0, " U: untag all processes + -: expand/collapse tree"); - mvaddstr(15, 0, " F9 k: kill process/tagged processes P M T: sort by CPU%, MEM% or TIME"); + mvaddstr(15, 0, " F9 d: kill process/tagged processes P M T: sort by CPU%, MEM% or TIME"); mvaddstr(16, 0, " ] F7: higher priority (root only) i: set IO priority"); mvaddstr(17, 0, " [ F8: lower priority (+ nice) I: invert sort order"); #if (HAVE_LIBHWLOC || HAVE_NATIVE_AFFINITY) @@ -134,18 +134,18 @@ else #endif mvaddstr(18, 0, " F6 >: select sort column"); - mvaddstr(19, 0, " F2 S: setup l: list open files with lsof"); - mvaddstr(20, 0, " F1 h: show this help screen s: trace syscalls with strace"); + mvaddstr(19, 0, " F2 S: setup L: list open files with lsof"); + mvaddstr(20, 0, " F1 ?: show this help screen s: trace syscalls with strace"); mvaddstr(21, 0, " F10 q: quit"); attrset(CRT_colors[HELP_BOLD]); - mvaddstr( 9, 0, " Arrows"); mvaddstr( 9,40, " F5 t"); + mvaddstr( 9, 0, " hjkl"); mvaddstr( 9,40, " F5 t"); mvaddstr(10, 0, " Digits"); mvaddstr(10,40, " u"); mvaddstr(11, 0, " F3 /"); mvaddstr(11,40, " H"); mvaddstr(12, 0, " F4 \\"); mvaddstr(12,40, " K"); mvaddstr(13, 0, " Space"); mvaddstr(13,40, " F"); mvaddstr(14, 0, " U"); mvaddstr(14,40, " + -"); - mvaddstr(15, 0, " F9 k"); mvaddstr(15,40, "P M T"); + mvaddstr(15, 0, " F9 d"); mvaddstr(15,40, "P M T"); mvaddstr(16, 0, " ] F7"); mvaddstr(16,40, " i"); mvaddstr(17, 0, " [ F8"); mvaddstr(17,40, " I"); mvaddstr(18,40, " F6 >"); @@ -153,8 +153,8 @@ if (pl->cpuCount > 1) mvaddstr(18, 0, " a:"); #endif - mvaddstr(19, 0, " F2 S"); mvaddstr(19,40, " l"); - mvaddstr(20, 0, " ? F1 h"); mvaddstr(20,40, " s"); + mvaddstr(19, 0, " F2 S"); mvaddstr(19,40, " L"); + mvaddstr(20, 0, " ? F1 ?"); mvaddstr(20,40, " s"); mvaddstr(21, 0, " F10 q"); attrset(CRT_colors[DEFAULT_COLOR]); @@ -670,7 +670,6 @@ break; } case KEY_F(1): - case 'h': case '?': { showHelp(pl); @@ -706,7 +705,7 @@ CRT_enableDelay(); break; } - case 'l': + case 'L': { Process* p = (Process*) Panel_getSelected(panel); if (!p) break; @@ -770,7 +769,7 @@ break; } case KEY_F(9): - case 'k': + case 'd': { if (!killPanel) { killPanel = (Panel*) SignalsPanel_new(0, 0, 0, 0); Common subdirectories: b/m4 and a/m4 diff -u b/Panel.c a/Panel.c --- b/Panel.c 2012-03-29 14:51:11.000000000 -0400 +++ a/Panel.c 2013-03-17 19:10:38.038237533 -0400 @@ -345,11 +345,13 @@ assert (this != NULL); switch (key) { case KEY_DOWN: + case 'j': case KEY_CTRLN: if (this->selected + 1 < Vector_size(this->items)) this->selected++; return true; case KEY_UP: + case 'k': case KEY_CTRLP: if (this->selected > 0) this->selected--; @@ -377,6 +379,7 @@ return true; #endif case KEY_LEFT: + case 'h': case KEY_CTRLB: if (this->scrollH > 0) { this->scrollH -= 5; @@ -384,6 +387,7 @@ } return true; case KEY_RIGHT: + case 'l': case KEY_CTRLF: this->scrollH += 5; this->needsRedraw = true; Only in a: Panel.c.orig Common subdirectories: b/scripts and a/scripts