Massimizzare un frame Emacs su un solo monitor con elisp
Domanda
Io uso maxframe.el per massimizzare i miei frame Emacs.
Funziona benissimo su tutte e tre le principali piattaforme, tranne che sulla mia configurazione Mac dual-head (laptop MacBook Pro da 15 pollici con monitor da 23 pollici).
Quando si massimizza un frame Emacs, il frame si espande per riempire la larghezza di Entrambi monitor e l'altezza del monitor più grande.
Ovviamente vorrei che l'inquadratura fosse massimizzata per riempire solo il monitor su cui è accesa.Come posso rilevare le risoluzioni dei due monitor individuali utilizzando elisp?
Grazie, Jacob
MODIFICARE:Come sottolinea Denis, impostare mf-max-width è una soluzione ragionevole.Ma (come avrei dovuto dire) speravo in una soluzione che funzionasse su entrambi i monitor e con qualsiasi risoluzione.Forse qualcosa di specifico per OSX nello stile del comando w32-send-sys specifico per Windows.
Soluzione
Ho scansionato rapidamente il riferimento che hai fornito maxframe.el
E Non penso che stai usando la stessa tecnica che uso io.Il seguente frammento di codice ti è d'aiuto?
(defun toggle-fullscreen ()
"toggles whether the currently selected frame consumes the entire display or is decorated with a window border"
(interactive)
(let ((f (selected-frame)))
(modify-frame-parameters f `((fullscreen . ,(if (eq nil (frame-parameter f 'fullscreen)) 'fullboth nil))))))
Altri suggerimenti
La personalizzazione di "mf-max-width" funziona?La sua documentazione:
"*The maximum display width to support. This helps better support the true
nature of display-pixel-width. Since multiple monitors will result in a
very large display pixel width, this value is used to set the stop point for
maximizing the frame. This could also be used to set a fixed frame size
without going over the display dimensions."
Questo genere di cose è compito del tuo window manager, non di emacs.(Ad esempio, Xmonad gestisce perfettamente emacs a schermo intero.)