Maximize Emacs on start up? (not the fullscreen)

前端 未结 5 441
迷失自我
迷失自我 2020-12-10 11:17

It\'s common for me to press alt-f10 (in GNU/Linux) after Emacs start up for maximizing window (in the Emacs terminology, it\'s actually a frame). Most of the time I press t

相关标签:
5条回答
  • 2020-12-10 11:42
    ;; Next code works with Emacs 21.4, 22.3, 23.1, 24.3.
    (when window-system
      (let (
            (px (display-pixel-width))
            (py (display-pixel-height))
            (fx (frame-char-width))
            (fy (frame-char-height))
            tx ty
            )
        ;; Next formulas discovered empiric on Windows host with default font.
        (setq tx (- (/ px fx) 7))
        (setq ty (- (/ py fy) 4))
        (setq initial-frame-alist '((top . 2) (left . 2)))
        (add-to-list 'initial-frame-alist (cons 'width tx))
        (add-to-list 'initial-frame-alist (cons 'height ty))
        ) )
    

    This code preserv some place for task bar on the bottom under Windows/Gnome/KDE

    But instead of asking try read: http://www.emacswiki.org/emacs/FullScreen

    0 讨论(0)
  • 2020-12-10 11:46

    Putting this into my ~/.emacs works for me (Emacs 24.5.1 on Debian GNU/Linux):

    (toggle-frame-maximized)

    To find that, I checked the name of the command called by the M-F10 shortcut with: C-h M-F10: it returned "toggle-frame-maximized", which I just call in my ~/.emacs.

    Another solution, probably even better, found here:

    (add-to-list 'initial-frame-alist '(fullscreen . maximized))

    0 讨论(0)
  • 2020-12-10 11:46

    For some reason x-send-client-message was not working for me at some point (or not reliably, anyway). For that reason I use this:

    (defun set-maximized ()
      (interactive)
      (shell-command "wmctrl -r :ACTIVE: -badd,maximized_vert,maximized_horz"))
    

    To do that at startup:

    (add-hook 'window-setup-hook 'set-maximized t)
    
    0 讨论(0)
  • 2020-12-10 11:54

    OSX:

    The developer build of Emacs Trunk has a function called toggle-frame-maximized, which is included within .../lisp/frame.el. That function can be added to the after-init-hook or emacs-startup-hook, or simply included in the .emacs file that gets loaded on startup. On OSX, it increases both width and height in one-fell-swoop.


    Windows XP:

    The following command can be used after a make-frame command, or after Emacs generates the initial frame.

    (w32-send-sys-command 61488)
    

    OSX and Windows

    Here is an example for setting the initial frame size and location -- I have it near the beginning of my .emacs file:

    (let ((frame (selected-frame)))
      (cond
        ((eq system-type 'darwin)
          (setq ns-auto-hide-menu-bar t)
          (set-frame-position frame 0 0) ;; must come after `ns-auto-hide-menu-bar`
          (cond
            ((and
                (= 1920 (display-pixel-width))
                (= 1080 (display-pixel-height)))
              (set-frame-size frame 1895 1054 t))
            ((and
                (= 1920 (display-pixel-width))
                (= 1200 (display-pixel-height)))
              (set-frame-size frame 1895 1174 t))
            ((and
                (= 1280 (display-pixel-width))
                (= 800 (display-pixel-height)))
              (set-frame-size frame 1265 774 t))) )
        ((and
            (eq system-type 'windows-nt)
            (equal (w32-version) '(5 1 2600)))
          ;; (w32-send-sys-command #xf030)
          (set-frame-position frame 0 0)
          (cond
            ((and
                (= 1920 (display-pixel-width))
                (= 1003 (display-pixel-height)))
              (set-frame-size frame 1898 924 t))
            ((and
                (= 1920 (display-pixel-width))
                (= 1123 (display-pixel-height)))
              (set-frame-size frame 1876 1052 t))
            ((and
                (= 1280 (display-pixel-width))
                (= 723 (display-pixel-height)))
              (set-frame-size frame 1250 670 t))))
          ((and
              (eq system-type 'windows-nt)
              (equal (w32-version) '(6 1 7601)))
            (set-frame-position frame 0 0)
            (cond
              ((and
                  (= 1920 (display-pixel-width))
                  (= 1080 (display-pixel-height)))
                (set-frame-size frame 1890 1003 t))
              (t
                (message "Not yet contemplated.")))) ))
    

    Here is an example of what I use to create new frames -- controling the exact size and location:

    (defun lawlist-make-frame (&optional alist)
      (let ((frame (make-frame alist)))
        (set-frame-position frame 0 0)
        (cond
          ((eq system-type 'darwin)
            (cond
              ((and
                  (= 1920 (display-pixel-width))
                  (= 1080 (display-pixel-height)))
                (set-frame-size frame 1895 1054 t))
              ((and
                  (= 1920 (display-pixel-width))
                  (= 1200 (display-pixel-height)))
                (set-frame-size frame 1895 1174 t))
              ((and
                  (= 1280 (display-pixel-width))
                  (= 800 (display-pixel-height)))
                (set-frame-size frame 1265 774 t))))
          ((and
              (eq system-type 'windows-nt)
              (equal (w32-version) '(5 1 2600)))
            (select-frame frame)
            (cond
              ((and
                  (= 1920 (display-pixel-width))
                  (= 1003 (display-pixel-height)))
                (set-frame-size frame 1898 924 t))
              ((and
                  (= 1920 (display-pixel-width))
                  (= 1123 (display-pixel-height)))
                (set-frame-size frame 1876 1052 t))
              ((and
                  (= 1280 (display-pixel-width))
                  (= 723 (display-pixel-height)))
                (set-frame-size frame 1250 670 t))))
          ((and
              (eq system-type 'windows-nt)
              (equal (w32-version) '(6 1 7601)))
            (select-frame frame)
            (cond
              ((and
                  (= 1920 (display-pixel-width))
                  (= 1080 (display-pixel-height)))
                (set-frame-size frame 1890 1003 t))
              (t
                (message "Not yet contemplated.")))) )))
    
    0 讨论(0)
  • 2020-12-10 11:55
    (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)))
    

    might work. (Taken from here.)

    0 讨论(0)
提交回复
热议问题