¿Cómo maximizar mi marco Emacs en el arranque?


66

¿Hay alguna manera de maximizar mi ventana al inicio?

Actualmente, presiono Control+ Windows Key+ Upen mi teclado, pero es muy molesto hacerlo siempre.

Estoy usando Emacs 24.4 en Ubuntu 12.04.


1
No conocía la combinación de teclas para maximizar emacs. ¡Gracias por eso y también la respuesta a continuación funcionó!
Prasanna

¿De dónde descubriste la combinación? <kbd>![Windows Key][oldwinlogo]</kbd>Esto no funciona para mí :-(
Prasanna

Respuestas:


71

Tengo otro método, que he probado con Emacs 24.3 y 24.4, así como en Windows y GNU / Linux. He colocado lo siguiente en mi archivo init :

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

Creo que esto se modificó ligeramente de una respuesta de StackOverflow que encontré hace un tiempo, pero parece que ahora no puedo encontrarlo nuevamente.

Editar: Otra ventaja de este método es que también se aplica a los nuevos clientes que se conectan a su servidor Emacs (por ejemplo, con emacsclient -c).


3
+1 para la respuesta precisa. Si pudiera aceptar esto como respuesta nuevamente, ¡realmente lo haría!
Prasanna

1
Me gusta usar esta solución emacsclient, pero hay algunos marcos que al iniciarlos maximizados evitarían usarlos correctamente, como el panel de control de ediff , ¿hay alguna solución para esto?
marcanuy

@marcanuy: No conozco una solución fuera de mi cabeza, pero podría valer la pena publicar una nueva pregunta para eso.
Scott Weldon

31

Ajuste el ...-frame-alisten su archivo de inicio para decirle a Emacs cómo maximizar el marco. También tiene múltiples opciones sobre cómo, exactamente, maximizarlo.

alist opciones

Tienes dos ...-frame-alistopciones:

  1. default-frame-alist (como en la respuesta de @Scott Weldon)
  2. initial-frame-alist

Si lo usa default-frame-alist, maximizará todos los cuadros: tanto el primero como cualquier otro que cree. Puede que eso no sea lo que quieres (o tal vez sea: ¿quién soy yo para juzgar?).

Si lo usa initial-frame-alist, maximizará solo el marco que Emacs crea en el inicio, pero no tocará ningún marco posterior que cree.

opciones de maximización

Para conocer las opciones de maximización, consulte este nodo del manual para más detalles. La versión corta es que puede establecer el fullscreenparámetro en:

  • fullwidth (haga el marco lo más ancho posible, no toque la vertical)
  • fullheight (haga el marco lo más alto posible, no toque la horizontal)
  • fullboth (establezca la altura y el ancho al tamaño de la pantalla)
  • maximized (hazlo, bueno, maximizado)

La diferencia entre fullbothy maximizedes que puede cambiar el tamaño del primero con el mouse, mientras que con el último no puede.

ejemplo

Entonces, por ejemplo, estas líneas 1) crearán un cuadro inicial maximizado y 2) crearán cuadros de altura completa (pero no de ancho completo) en cada cuadro posterior:

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

3
De hecho, initial-frame-alistes mucho más útil que default-frame-alistcuando uno usa herramientas como ediff.
giordano


9

La respuesta de @ Constantine ya cubre cómo se puede lograr esto modificando su archivo init (si usa Emacs 24.4).

Si inicia Emacs desde la línea de comandos, desde el tablero o desde un iniciador como Synapse o krunner , puede especificar la -mmopción (abreviatura de --maximized) para lograr el mismo resultado:

emacs -mm

La -mmopción se introdujo por primera vez en Emacs 23.2 , por lo que esta solución no se limita a la última versión estable.


Lo que distingue esta solución de otras sugerencias publicadas aquí (todas las cuales son geniales) es que le permite decidir, caso por caso, si desea que el marco de Emacs sea maximizado al inicio o no.

Si desea una solución más permanente, puede configurar un aliascomando para el que se muestra arriba agregando lo siguiente a su .bashrc:

alias emacs='emacs -mm'

2
Otro beneficio de esta solución es que emacs comienza ya maximizado. Las soluciones alternativas del archivo de inicio hacen que cambie a maximizado durante el inicio, lo cual es un poco molesto.
y el

1
Para agregar a esta respuesta: emacs -fsinicia Emacs maximizado a la pantalla completa, o maximizado al máximo.
Teemu Leisti

6

Para iniciar Emacs maximizado, agregue a su archivo init:

;; Start maximised (cross-platf)
(add-hook 'window-setup-hook 'toggle-frame-maximized t)

En caso de que quiera pasar a pantalla completa o, como dicen ahora, al modo sin distracciones :

;; Start fullscreen (cross-platf)
(add-hook 'window-setup-hook 'toggle-frame-fullscreen t)

NOTA : Esto también funciona en Windows.


1

Estoy usando lo siguiente:

(when (eq system-type 'gnu/linux)
  (defun x11-maximize-frame ()
    "Maximize the current frame (to full screen)"
    (interactive)
    (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
    (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0)))
  (run-with-idle-timer 0.01 nil 'x11-maximize-frame)
  )

(when (eq system-type 'windows-nt)
  (w32-send-sys-command 61488)
)