blob: 0adb79b836d596b449f5cd6a949c5766dccb4f8c (
plain) (
blame)
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
|
#+TITLE: An Improved Emacs Frame Title Format
#+DATE: 2021-05-28T16:26:12-04:00
#+DRAFT: false
#+DESCRIPTION: My idea for an improved Emacs frame title format
#+TAGS[]: emacs
#+KEYWORDS[]: emacs
#+SLUG:
#+SUMMARY:
#+ATTR_HTML: :title Old vs. New Frame Title
#+ATTR_HTML: :alt Old vs. New Frame Title
[[file:cover.png]]
I've often found that the default Emacs frame title is a little
bizarre. =emacs@host= Seems a little useless at describing what's
going on in the actual window in my opinion, and I believe the space
could be put to much better use. Perhaps it's designed for
environments where X11 forwarding is common practice, or where GNU
Emacs shares a system with XEmacs.
Taking inspiration from both Emacs and Firefox, I came up with a frame
title format that I think is much more useful.
#+begin_src emacs-lisp
(setq frame-title-format '("%b@" (:eval (or (file-remote-p default-directory 'host) system-name)) " — Emacs"))
#+end_src
Instead of =emacs@hostname=, I use =buffer-name@buffer-host — Emacs=.
Here =buffer-name= is the name of the currently focused buffer, and
=buffer-host= is the host on which the buffer's file resides. This
means that if you're connected over TRAMP to another host, the remote
host's name will be displayed in the frame title. I then added =—
Emacs= at the end, so that it's still obvious which program owns the
window.
It's possible to customize the title a lot more, but this seems to be
a good middle ground for me. =frame-title-format= uses the same
formatting template as =mode-line-format=, so you can check that
variable with =describe-variable= too see all the formatting options
available.
|