INPUT_PROMPT = ':'
 
 KEYBINDINGS = {
-    'KEY_BACKSPACE': 'prompt_backspace',
-    'KEY_ENTER': 'prompt_enter',
-    'KEY_PGUP': 'scroll_up',
-    'KEY_PGDOWN': 'scroll_down',
+    'KEY_BACKSPACE': ('prompt_backspace',),
+    'KEY_ENTER': ('prompt_enter',),
+    'KEY_PGUP': ('scroll', 'up'),
+    'KEY_PGDOWN': ('scroll', 'down'),
 }
 
 IRCSPEC_LINE_SEPARATOR = b'\r\n'
                 self._logs[1].append(f'-> {event.payload.raw}')
             self._draw_log()
         elif event.type_ == 'KEYBINDING':
-            getattr(self, f'_cmd__{event.payload}')()
+            getattr(self, f'_cmd__{event.payload[0]}')(*event.payload[1:])
         elif event.type_ == 'INPUT_CHAR':
             self._prompt += event.payload
             self._draw_prompt()
         self._prompt = ''
         self._draw_prompt()
 
-    def _cmd__scroll_up(self) -> None:
-        self._log.scroll()
-        self._draw_log()
-
-    def _cmd__scroll_down(self) -> None:
-        self._log.scroll(up=False)
+    def _cmd__scroll(self, direction: str) -> None:
+        self._log.scroll(up=direction == 'up')
         self._draw_log()
 
     def _cmd__disconnect(self, quit_msg: str = 'ircplom says bye') -> None: