From 1ee92346b59ac7ee7cee573017bc71985f6b0f3b Mon Sep 17 00:00:00 2001 From: Andrew Hamilton Date: Wed, 8 Dec 2021 15:37:12 +1000 Subject: [PATCH] fill3: Add keyboard term_code constants. --- eris/eris/__main__.py | 17 ++++++++--------- fill3/fill3/terminal.py | 34 +++++++++++++++++++++++----------- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/eris/eris/__main__.py b/eris/eris/__main__.py index 37688a9..fc3e89e 100755 --- a/eris/eris/__main__.py +++ b/eris/eris/__main__.py @@ -614,9 +614,9 @@ class Help: self.widget = fill3.Border(self.view, title="Help") portal = self.view.portal self.key_map = { - "h": self._exit_help, terminal.UP_KEY: portal.scroll_up, - terminal.DOWN_KEY: portal.scroll_down, terminal.LEFT_KEY: portal.scroll_left, - terminal.RIGHT_KEY: portal.scroll_right, "q": self._exit_help, + "h": self._exit_help, terminal.UP: portal.scroll_up, + terminal.DOWN: portal.scroll_down, terminal.LEFT: portal.scroll_left, + terminal.RIGHT: portal.scroll_right, "q": self._exit_help, terminal.ESC: self._exit_help} def _exit_help(self): @@ -968,12 +968,11 @@ class Screen: else fill3.appearance_resize(result, dimensions)) _KEY_MAP = {"t": toggle_window_orientation, "l": toggle_log, "h": toggle_help, - terminal.UP_KEY: cursor_up, terminal.DOWN_KEY: cursor_down, - terminal.LEFT_KEY: cursor_left, terminal.RIGHT_KEY: cursor_right, - terminal.PAGE_DOWN_KEY: cursor_page_down, terminal.PAGE_UP_KEY: cursor_page_up, - "s": toggle_order, terminal.HOME_KEY: cursor_home, terminal.END_KEY: cursor_end, - "n": move_to_next_issue, "N": move_to_next_issue_of_tool, "e": edit_file, - "q": quit_, terminal.ESC: quit_, "r": refresh, "R": refresh_tool, + terminal.UP: cursor_up, terminal.DOWN: cursor_down, terminal.LEFT: cursor_left, + terminal.RIGHT: cursor_right, terminal.PAGE_DOWN: cursor_page_down, + terminal.PAGE_UP: cursor_page_up, "s": toggle_order, terminal.HOME: cursor_home, + terminal.END: cursor_end, "n": move_to_next_issue, "N": move_to_next_issue_of_tool, + "e": edit_file, "q": quit_, terminal.ESC: quit_, "r": refresh, "R": refresh_tool, "\t": toggle_focus, "f": toggle_fullscreen, "o": xdg_open} diff --git a/fill3/fill3/terminal.py b/fill3/fill3/terminal.py index bfefe6a..01ca969 100644 --- a/fill3/fill3/terminal.py +++ b/fill3/fill3/terminal.py @@ -1,21 +1,33 @@ import contextlib +import string import sys import termios ESC = "\x1b" -MOUSE = ESC + "[M" - -UP_KEY = ESC + "[A" -DOWN_KEY = ESC + "[B" -RIGHT_KEY = ESC + "[C" -LEFT_KEY = ESC + "[D" -PAGE_UP_KEY = ESC + "[5~" -PAGE_DOWN_KEY = ESC + "[6~" -HOME_KEY = ESC + "[H" -END_KEY = ESC + "[F" +UP = ESC + "[A" +DOWN = ESC + "[B" +RIGHT = ESC + "[C" +LEFT = ESC + "[D" +PAGE_UP = ESC + "[5~" +PAGE_DOWN = ESC + "[6~" +HOME = ESC + "[H" +END = ESC + "[F" +CTRL_UP = ESC + "[1;5A" +CTRL_DOWN = ESC + "[1;5B" +CTRL_LEFT = ESC + "[1;5D" +CTRL_RIGHT = ESC + "[1;5C" +CTRL_SPACE = "\x00" +ENTER = "\n" +BACKSPACE = "\x7f" +ALT_BACKSPACE = ESC + BACKSPACE +ALT_CARROT = ESC + "^" +ALT_SEMICOLON = ESC + ";" +globals().update({f"ALT_{letter}": ESC + letter for letter in string.ascii_letters}) +globals().update({f"CTRL_{letter}": chr(index + 1) + for index, letter in enumerate(string.ascii_uppercase)}) def move(x, y): @@ -64,11 +76,11 @@ def interactive(): termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_termios_settings) +MOUSE = ESC + "[M" RELEASE_MOUSE = 0 DRAG_MOUSE = 1 CLICK_MOUSE = 2 PRESS_MOUSE = 3 - WHEEL_UP_MOUSE = 4 WHEEL_DOWN_MOUSE = 5