Skip to content

[Elisp] maxframe provides the ability to maximize the emacs frame and stay within the display resolution.

Notifications You must be signed in to change notification settings

lgirvin/maxframe.el

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 

Repository files navigation

Purpose

maxframe provides the ability to maximize the emacs frame and stay within the display resolution.

How You Can Help

If you like this project, please help. Donate via Gittip or buy me a coffee with Bitcoin.
Gittip Bitcoin

Bitcoin: 1rmm5tv6f997JK5bLcGbRCZyVjZUPkQ2m
Bitcoin Donation

Need Help?

You can book a session with me on Codementor.
Book a Codementor session

Usage

Example of lines to be added to your .emacs:

(require 'maxframe)
(add-hook 'window-setup-hook 'maximize-frame t)

If using two framebuffers (monitors), it might be necesssary to specify a mf-max-width value set to the pixel width of main framebuffer. This is necessary because emacs does not yet support sniffing different framebuffers. Example:

(require 'maxframe)
(setq mf-max-width 1600)  ;; Pixel width of main monitor.
(add-hook 'window-setup-hook 'maximize-frame t)

To restore the frame to it's original dimensions, call restore-frame:

M-x restore-frame

How it works

puts the emacs frame in the top left corner of the display and calculates the maximum number of columns and rows that can fit in the display

Alternatives

There is a good list of full-screening alternatives on the Emacs Wiki.

On a Mac?

While I still have maxframe in my emacs initialization, I only use it as a backup for when ns-toggle-fullscreen is not present. I compile emacs with native fullscreen support now, and it's pretty nice. If you use homebrew, here's the compilation step that'll do it for you.

$ brew install emacs --srgb --cocoa

See the relevant portion of my emacs config to see how to make the distinction between ns-toggle-fullscreen and maxframe.

Limitations

Requires Emacs 22 (for fringe support), but maximize-frame still works under Emacs 21 on Windows.

Emacs does not recognize when the display's resolution is changed. This is a problem because I would like to be able to re-maximize the frame after connecting to a display with different resolution. Unfortunately, display-pixel-width and display-pixel-height yield the display resolution values from when emacs was started instead of the current display values. Perhaps there's a way to have emacs re-sniff these values, but I'm not yet sure how.

Credits

The w32 specific functions were borrowed from the Emacs Manual: http://www.gnu.org/software/emacs/windows/big.html#windows-like-window-ops

About

[Elisp] maxframe provides the ability to maximize the emacs frame and stay within the display resolution.

Resources

Stars

Watchers

Forks

Packages

No packages published