featurep! will be renamed modulep! in the future, so it's been deprecated. They have identical interfaces, and can be replaced without issue. featurep! was never quite the right name for this macro. It implied that it had some connection to featurep, which it doesn't (only that it was similar in purpose; still, Doom modules are not features). To undo such implications and be consistent with its namespace (and since we're heading into a storm of breaking changes with the v3 release anyway), now was the best opportunity to begin the transition.
44 lines
2 KiB
EmacsLisp
44 lines
2 KiB
EmacsLisp
;;; os/tty/config.el -*- lexical-binding: t; -*-
|
|
|
|
;; Keep window title up-to-date. Should fail gracefully in non-xterm terminals.
|
|
;; Only works in Emacs 27+.
|
|
(setq xterm-set-window-title t)
|
|
;; DEPRECATED Not needed on Emacs 28+. Remove when dropping 27 support.
|
|
(defadvice! +tty--only-set-window-title-in-tty-a (&optional terminal)
|
|
"`xterm-set-window-title' fails in GUI Emacs. Stop that. Get some help."
|
|
:before-while #'xterm-set-window-title
|
|
(not (display-graphic-p terminal)))
|
|
|
|
;; Some terminals offer two different cursors: a "visible" static cursor and a
|
|
;; "very visible" blinking one. By default, Emacs uses the very visible cursor
|
|
;; and will switch back to it when Emacs is started or resumed. A nil
|
|
;; `visible-cursor' prevents this.
|
|
(setq visible-cursor nil)
|
|
|
|
;; Enable the mouse in terminal Emacs
|
|
(add-hook 'tty-setup-hook #'xterm-mouse-mode)
|
|
|
|
;; Windows terminals don't support what I'm about to do, but best not to wrap
|
|
;; this in a IS-WINDOWS check, in case you're using WSL or Cygwin, which do and
|
|
;; *might* support it.
|
|
(add-hook! 'tty-setup-hook
|
|
(defun doom-init-clipboard-in-tty-emacs-h ()
|
|
;; Fix the clipboard in tty Emacs by...
|
|
(if (modulep! +osc)
|
|
;; ...communicating with the clibpoard through OSC escape codes (must
|
|
;; use a terminal that supports it)
|
|
(and (require 'clipetty nil t)
|
|
(global-clipetty-mode +1))
|
|
;; ...OR piping clipboard I/O through xclip, xsel, pb{copy,paste},
|
|
;; wl-copy, termux-clipboard-get, or getclip (cygwin); depending on what
|
|
;; is available.
|
|
(and (require 'xclip nil t)
|
|
(with-demoted-errors "%s" (xclip-mode +1))))))
|
|
|
|
;; Fix cursor shape-changing in the terminal. Only supported in XTerm, Gnome
|
|
;; Terminal, iTerm, Konsole, dumb (etc. mintty), and Apple Terminal.app. If
|
|
;; using Apple Terminal.app, install
|
|
;; http://www.culater.net/software/SIMBL/SIMBL.php and
|
|
;; https://github.com/saitoha/mouseterm-plus/releases. That makes to support
|
|
;; VT's DECSCUSR sequence.
|
|
(add-hook 'tty-setup-hook #'evil-terminal-cursor-changer-activate)
|