BREAKING CHANGE: This deprecates the IS-(MAC|WINDOWS|LINUX|BSD) family of global constants in favor of a native `featurep` check: IS-MAC -> (featurep :system 'macos) IS-WINDOWS -> (featurep :system 'windows) IS-LINUX -> (featurep :system 'linux) IS-BSD -> (featurep :system 'bsd) The constants will stick around until the v3 release so folks can still use it -- and there are still some modules that use it, but I'll phase those uses out gradually. Fix: #7479
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 an OS check, in case you're using WSL or Cygwin, which *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)
|