13

I want emacs to be truly maximized on start up.

There are solutions to the problem that just make the emacs window width of the screen. That's not enough for me. I want the emacs window to be docked to the right upper corner of the screen, so that when I press there with a mouse, I will close emacs, not Firefox or Krusader or whatever is maximized in the background.

I tried to do it with Kwin - but no luck.

P.S. I'm using Kubuntu, and emacs is quite fresh one 23.2 or something like that.

Excellll
  • 12,627
  • 11
  • 51
  • 78
Adobe
  • 2,649
  • 2
  • 28
  • 34
  • @user maximized or full screen - which do you want? Your second paragraph is a bit vague. – David LeBauer Jun 08 '11 at 20:08
  • There are some window manager dependent solutions. Which WM are you using? In Fluxbox, I use the `~/.fluxbox/apps` file to set maximized preference for specific applications. – Daniel Andersson Mar 29 '12 at 15:31
  • I'm using KWM (it's KDE's default one). It has option "maximised" - but emacs window is not truely maximized: if You'll press "x" at the top right corner with a mouse - You'll close something else - not emacs. – Adobe Mar 29 '12 at 15:45

8 Answers8

8

I've taken this from somewhere on emacswiki, some time ago. Note that I no longer use it, as I've switched to dwm to have everything fullscreen, but it used to work.

(defun fullscreen ()
       (interactive)
       (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
                 '(2 "_NET_WM_STATE_FULLSCREEN" 0)))

If you want it to run on startup, you should be able to add

(fullscreen)

to your .emacs

EDIT: Rereading your question, I think this is not what you want. This will go really fullscreen, not maximized: you will not have any close button.

This one should do:

(defun fullscreen (&optional f)
  (interactive)
  (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
             '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))
  (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
             '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0)))

Now it's directly from http://www.emacswiki.org/emacs/FullScreen

Tiago
  • 141
  • 3
3

Here are two non-Lisp ways to achieve the same:

  1. Alias your emacs command to emacs -fs. Add this line of code to your .bashrc file in your home directory:

    alias emacs='emacs -fs'
    

    Personally, I don't like this approach because I wouldn't want Emacs to start up in full screen all the time and would like some control.

  2. My solution: In Ubuntu, you can assign a keyboard shortcut to 'full-screen' any window. This seems to be the most convenient and simple option. Besides, it has the advantage that the same shortcut also applies to all your applications.

itsjeyd
  • 178
  • 1
  • 8
GeneralBecos
  • 151
  • 2
  • +1 There's also `-mm` (short for `--maximized`) which will "maximize the first frame". The effects of using this option are a little less "drastic" than the `-fs` option (Emacs title bar and OS panels stay visible). – itsjeyd Aug 13 '14 at 08:52
3

Put (w32-send-sys-command ?\xf030) on your .emacs file. I think it solves your problem.

(works on Windows only)

gronostaj
  • 55,965
  • 20
  • 120
  • 179
Paulo Tomé
  • 133
  • 5
2

If you would like to toggle fullscreen in emacs with the F11 key, add the following to .emacs:

;; the following should give fullscreen mode when F11 is depressed
(defun fullscreen ()
 (interactive)
 (set-frame-parameter nil 'fullscreen
              (if (frame-parameter nil 'fullscreen) nil 'fullboth))

If you want the fullscreen emacs to be very minimal (no tool bar, scroll bar, or menu bar, also add:

(progn
  (if (fboundp 'tool-bar-mode) (tool-bar-mode -1))  ;; no toolbar
  (menu-bar-mode -1) ;;no menubar
  (scroll-bar-mode -1) ;; no scroll bar
  )
)
David LeBauer
  • 720
  • 3
  • 12
  • 34
1

I currently use Emacs version 28.2 on Windows, and a minimal solution is adding the line below to the Emacs configuration at ~/.emacs.d/init.el (different under unix)

(set-frame-parameter nil 'fullscreen 'fullboth)
0

I think emacs will respect gconf settings, so you could set /apps/emacs/maximize, but don't know if that will help on Kubuntu -- worth a try.

jaybee
  • 166
  • 2
0

I use the following on Linux:

(defun my-frame-toggle ()
    "Maximize/Restore Emacs frame using 'wmctrl'."
    (interactive)
    (shell-command "wmctrl -r :ACTIVE: -btoggle,maximized_vert,maximized_horz"))

and then bind it to a key:

(global-set-key [(control f4)] 'my-frame-toggle)

If you want to start out maximized, you can just add a call to my-frame-toggle to the end of your .emacs file.

Joe Casadonte
  • 5,373
  • 5
  • 25
  • 38
0

I found a funny solution:

emacs -nw

starts emacs in a console - and you can maximize console itself!

Adobe
  • 2,649
  • 2
  • 28
  • 34