aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/keys.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/keys.c b/src/keys.c
index bc4b7f2..440737d 100644
--- a/src/keys.c
+++ b/src/keys.c
@@ -12,9 +12,37 @@
#include "mem.h"
#include "wm.h"
+bool keymap = false;
+
void
handling_keys(int ch, fm_info *i)
{
+ /* Control(C) or Alt(M) */
+ if (ch < 32) {
+ log_write(LOG_INFO, "ch = %d", ch);
+ switch (ch) {
+ case 14: /* C-n, scroll down in Emacs*/
+ fm_entries_scroll(i, 1);
+ break;
+ case 16: /* C-p scroll up in Emacs */
+ fm_entries_scroll(i, -1);
+ break;
+ /* Page down */
+ case 4: /* C-d, for Vi users' habit */
+ case 22: /* C-v, for Emacs users' habit*/
+ fm_entries_scroll(i, i->windows[PANE_LEFT]->height / 2);
+ break;
+ /* Page up */
+ case 21: /* C-u */
+ case 27: /* M-v */
+ fm_entries_scroll(i,
+ -(i->windows[PANE_LEFT]->height / 2));
+ break;
+ }
+
+ return;
+ }
+
switch (ch) {
#ifdef KEY_RESIZE
case KEY_RESIZE: