blob: f959646d84375f7b5618c68412c52334e9be473b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
;;; terminal-compat.el --- Terminal compatibility fixes -*- lexical-binding: t; coding: utf-8; -*-
;; author: Craig Jennings <c@cjennings.net>
;;; Commentary:
;; Fixes for running Emacs in terminal/console mode, especially over mosh.
;; - Arrow key escape sequence handling
;; - Disable graphical icons that show as unicode artifacts
;;; Code:
(require 'host-environment)
(defun cj/terminal-compat-setup ()
"Set up terminal compatibility after init completes."
(when (env-terminal-p)
;; Fix arrow key escape sequences for various terminal types
(define-key input-decode-map "\e[A" [up])
(define-key input-decode-map "\e[B" [down])
(define-key input-decode-map "\e[C" [right])
(define-key input-decode-map "\e[D" [left])
;; Application mode arrows (sent by some terminals)
(define-key input-decode-map "\eOA" [up])
(define-key input-decode-map "\eOB" [down])
(define-key input-decode-map "\eOC" [right])
(define-key input-decode-map "\eOD" [left])))
;; Run after init completes to override any package settings
(add-hook 'emacs-startup-hook #'cj/terminal-compat-setup)
;; Icon disabling only in terminal mode
(when (env-terminal-p)
;; Disable nerd-icons display (shows as \uXXXX artifacts)
(with-eval-after-load 'nerd-icons
(defun nerd-icons-icon-for-file (&rest _) "")
(defun nerd-icons-icon-for-dir (&rest _) "")
(defun nerd-icons-icon-for-mode (&rest _) "")
(defun nerd-icons-icon-for-buffer (&rest _) ""))
;; Disable dashboard icons
(with-eval-after-load 'dashboard
(setq dashboard-display-icons-p nil)
(setq dashboard-set-file-icons nil)
(setq dashboard-set-heading-icons nil))
;; Disable all-the-icons
(with-eval-after-load 'all-the-icons
(defun all-the-icons-icon-for-file (&rest _) "")
(defun all-the-icons-icon-for-dir (&rest _) "")
(defun all-the-icons-icon-for-mode (&rest _) "")))
(provide 'terminal-compat)
;;; terminal-compat.el ends here
|