I am using Emacs 24.5.1 on OpenSUSE Tumbleweed, with Gnome 3.16, and the title of the GTK window with Emacs in it is always emacs@hostname
. How can I change it to the name of the current file I'm editing?
Asked
Active
Viewed 7,896 times
28
-
Why do you need this? I'm curious for your use case. The file name is already shown in the mode line, isn't it? – Dieter.Wilhelm Sep 22 '15 at 21:25
-
Gnome in Overview mode has the window title in big text below the window thumbnail, the one in the mode line is too small to see. – Sean Sep 23 '15 at 13:32
-
1Just a side remark: If you have several frames open - for example if you open a file in another frame with `C-x 5 f` - then each frame will show the buffer name as title. It's only when you have just a single frame that you see "emacs@hostname". – pst Aug 24 '20 at 10:55
-
@Dieter.Wilhelm The title bar can show the buffer name and mode of the minibuffer, which the mode line doesn't display. – Arch Stanton Jan 30 '21 at 11:50
2 Answers
38
The file name as frame name
(setq-default frame-title-format '("%f"))
The file name and the major mode as frame name (my conf)
(setq-default frame-title-format '("%f [" mode-name "]"))
See

Arch Stanton
- 1,525
- 9
- 22

djangoliv
- 3,169
- 16
- 31
-
11
-
4
-
-
@yPhil ```(custom-set-variables '(setq-default frame-title-format '("%f [%m]")))``` ? – djangoliv Jan 07 '21 at 14:08
-
`%m` is now deprecated in favor of the variable `mode-name`. See [%-Constructs in the Mode Line](https://www.gnu.org/software/emacs/manual/html_node/elisp/_0025_002dConstructs.html) – Arch Stanton Feb 21 '23 at 15:35
9
Make emacs' window title show path of the current file:
(setq-default frame-title-format
'(:eval
(format "%s@%s: %s %s"
(or (file-remote-p default-directory 'user)
user-real-login-name)
(or (file-remote-p default-directory 'host)
system-name)
(buffer-name)
(cond
(buffer-file-truename
(concat "(" buffer-file-truename ")"))
(dired-directory
(concat "{" dired-directory "}"))
(t
"[no file]")))))

Adobe
- 1,859
- 13
- 27