2008-09-18 8 views
12

J'utilise maxframe.el pour optimiser mes cadres Emacs.Maximiser un cadre Emacs à un seul moniteur avec Elisp

Cela fonctionne très bien sur les trois plates-formes principales, sauf sur ma configuration Mac à deux têtes (ordinateur portable Macbook Pro de 15 pouces avec moniteur de 23 pouces).

Lors de la maximisation d'une trame Emacs, la trame se développe pour remplir la largeur de à la fois les moniteurs et la hauteur du moniteur plus grand.

Évidemment, je voudrais que le cadre maximise pour remplir uniquement le moniteur sur lequel il est allumé. Comment puis-je détecter les résolutions des deux moniteurs individuels en utilisant elisp?

Merci, Jacob

EDIT: Comme Denis souligne, réglage mf-max-width est une solution raisonnable. Mais (comme j'aurais dû le mentionner) j'espérais une solution qui fonctionne sur les deux moniteurs et avec n'importe quelle résolution. Peut-être quelque chose de spécifique à OSX dans le style de la commande w32-send-sys spécifique à Windows.

Répondre

8

J'ai scanné rapidement la référence que vous avez fourni à maxframe.el et Je ne pense pas que vous utilisez la même technique que je l'utilise. L'extrait de code suivant vous aide-t-il?


(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)))))) 
+0

Cool! Vous avez raison, c'est une solution complètement différente, mais beaucoup mieux, car elle supprime également le dock et la barre de menu. Malheureusement, cela ne fonctionne que sur le grand écran de mon installation à double tête, mais je pense que les avantages l'emportent sur les inconvénients dans ce cas. Merci! – Chopmo

+0

Malheureusement, cela ne semble pas fonctionner avec http://emacsformacosx.com/ - une solution de contournement connue pour le système de fenêtre 'ns'? – Glyph

+0

Cela fonctionne pour le système de fenêtre 'mac', heureusement, et j'ai pu l'utiliser pour remplacer' ediff-toggle-wide-display': https://gist.github.com/1283061 –

4

La personnalisation de `mf-max-width 'fonctionne-t-elle? Sa documentation:

"*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." 
+0

Merci pour votre réponse, voir la description mise à jour. – Chopmo

-2

Ce genre de chose est le travail de votre gestionnaire de fenêtres, pas le travail d'emacs. (Par exemple, Xmonad gère très bien les emacs plein écran.)

+0

D'accord .. mais à temps de démarrage Emacs ne semble pas comprendre les dimensions de la fenêtre que XMonad lui donne. Je finis donc par passer d'une disposition à l'autre pour permettre à Emacs de comprendre ses dimensions. –

Questions connexes