'KEY_RIGHT': ('window.prompt.move_cursor', 'right'),
     'KEY_UP': ('window.prompt.scroll', 'up'),
     'KEY_DOWN': ('window.prompt.scroll', 'down'),
-    'KEY_PGUP': ('window.log.scroll', 'up'),
-    'KEY_PGDOWN': ('window.log.scroll', 'down'),
+    'KEY_PGUP': ('window.history.scroll', 'up'),
+    'KEY_PGDOWN': ('window.history.scroll', 'down'),
     'esc:91:49:59:51:68': ('window', 'left'),
     'esc:91:49:59:51:67': ('window', 'right'),
     'KEY_F1': ('window.paste',),
         self._scroll(up=direction == 'up')
 
 
-class _LogWidget(_ScrollableWidget):
+class _HistoryWidget(_ScrollableWidget):
     _view_size: _YX
     _y_pgscroll: int
 
 
 
 class Window(_Widget):
-    'Widget filling entire screen with sub-widgets like .prompt, .log.'
+    'Widget filling entire screen with sub-widgets like .prompt, .history.'
     _y_status: int
     prompt: PromptWidget
 
         super().__init__(**kwargs)
         self.idx = idx
         self._term = term
-        self.log = _LogWidget(wrap=self._term.wrap, write=self._term.write)
+        self.history = _HistoryWidget(wrap=self._term.wrap,
+                                      write=self._term.write)
         self.prompt = self.__annotations__['prompt'](write=self._term.write)
         if hasattr(self._term, 'size'):
             self.set_geometry()
         if self._term.size.y < _MIN_HEIGHT or self._term.size.x < _MIN_WIDTH:
             bad_yx = _YX(-1, -1)
             super().set_geometry(bad_yx)
-            self.log.set_geometry(bad_yx)
+            self.history.set_geometry(bad_yx)
             self.prompt.set_geometry(bad_yx)
             return False
         super().set_geometry(_YX(0, 0))
         self._y_status = self._term.size.y - 2
-        self.log.set_geometry(_YX(self._y_status, self._term.size.x))
+        self.history.set_geometry(_YX(self._y_status, self._term.size.x))
         self.prompt.set_geometry(_YX(self._term.size.y - 1, self._term.size.x))
         return True
 
             return False
         title_box = f'{self.status_title}]'
         status_line = title_box + '=' * (self._term.size.x - len(title_box))
-        self.log.draw()
+        self.history.draw()
         self._term.write(status_line, self._y_status)
         self.prompt.draw()
         return True
         if self.tainted:
             self.draw()
             return
-        for widget in [w for w in (self.log, self.prompt) if w.tainted]:
+        for widget in [w for w in (self.history, self.prompt) if w.tainted]:
             widget.draw()
 
 
         self._windows: list[Window] = []
         self._new_window()
         self._log = Logger(
-            lambda msg:  # pylint: disable=unnecessary-lambda  # to keep …
-            self.window.log.append(msg))  # … up-to-date _what_ window's .log
+            lambda msg:  # pylint: disable=unnecessary-lambda  # to keep up-to…
+            self.window.history.append(msg))  # …-date _what_ window's .history
         self._set_screen()
         signal(SIGWINCH, lambda *_: self._set_screen())
 
         method_name_prefix = 'cmd__'
         base = 'self'
         for path in (base, f'{base}.window', f'{base}.window.prompt',
-                     f'{base}.window.log'):
+                     f'{base}.window.history'):
             for cmd_method_name in [name for name in dir(eval(path))
                                     if name.startswith(method_name_prefix)]:
                 path_prefix = f'{path}.'