Wie kann ich meinen Emacs-Frame beim Start maximieren?

66

Gibt es eine Möglichkeit, mein Fenster beim Start zu maximieren?

Momentan drücke ich Control+ Windows Key+ Upauf meiner Tastatur, aber es ist sehr mühsam, das jedes Mal zu tun.

Ich benutze Emacs 24.4 unter Ubuntu 12.04.

Luke
quelle
1
Ich kannte die Tastenkombination zur Maximierung von Emacs nicht. Danke dafür und auch die Antwort unten hat geklappt!
Prasanna
<kbd>![Windows Key][oldwinlogo]</kbd>Woher hast du die Kombination herausgefunden ? Das funktioniert bei mir nicht :-(
Prasanna

Antworten:

71

Ich habe eine andere Methode, die ich mit Emacs 24.3 und 24.4 sowie unter Windows und GNU / Linux getestet habe. Ich habe Folgendes in meine Init-Datei eingefügt :

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

Ich glaube, dies wurde leicht von einer StackOverflow-Antwort geändert, die ich vor einiger Zeit gefunden habe, aber ich kann sie jetzt nicht wiederfinden.

Bearbeiten: Ein weiterer Vorteil dieser Methode ist, dass sie auch für neue Clients gilt, die eine Verbindung zu Ihrem Emacs-Server herstellen (z emacsclient -c. B. mit ).

Scott Weldon
quelle
3
+1 für die genaue Antwort. Wenn ich das wieder als Antwort akzeptieren könnte - würde ich es wirklich!
Prasanna
1
Ich mag diese Lösung mit emacsclient, aber es gibt einige Frames, bei denen das Starten mit Maximierung die korrekte Verwendung verhindern würde, wie das ediff-Kontrollfeld. Gibt es eine Problemumgehung dafür?
marcanuy
@marcanuy: Ich kenne keine Lösung, aber es könnte sich lohnen, dafür eine neue Frage zu stellen.
Scott Weldon
31

Passen Sie das ...-frame-alistin Ihrer Init-Datei an, um Emacs mitzuteilen, wie der Frame maximiert werden soll. Sie haben auch mehrere Möglichkeiten, wie Sie es genau maximieren können.

alist Optionen

Sie haben zwei ...-frame-alistMöglichkeiten:

  1. default-frame-alist (wie in der Antwort von @Scott Weldon)
  2. initial-frame-alist

Wenn Sie verwenden default-frame-alist, werden alle Frames maximiert : sowohl der erste als auch alle anderen, die Sie erstellen. Das ist vielleicht nicht das, was Sie wollen (oder vielleicht ist es: Wer soll ich beurteilen?).

Wenn Sie initial-frame-alistdiese Option verwenden , wird nur der Frame maximiert , den Emacs beim Start erstellt. Nachfolgende von Ihnen erstellte Frames werden jedoch nicht berührt.

Maximierungsoptionen

Einzelheiten zu Ihren Maximierungsoptionen finden Sie in diesem Knoten des Handbuchs . Die Kurzversion ist, dass Sie den fullscreenParameter einstellen können auf:

  • fullwidth (mach den Rahmen so breit wie möglich, berühre nicht die Vertikale)
  • fullheight (Stellen Sie den Rahmen so hoch wie möglich, berühren Sie nicht die Horizontale)
  • fullboth (Höhe und Breite auf Bildschirmgröße einstellen)
  • maximized (mach es gut, maximiert)

Der Unterschied zwischen fullbothund maximizedbesteht darin, dass Sie die Größe des ersteren mit der Maus ändern können, während Sie die Größe des letzteren nicht ändern können.

Beispiel

Diese Zeilen erzeugen zum Beispiel 1) einen maximierten Anfangsrahmen und 2) in jedem nachfolgenden Rahmen Vollbild (aber nicht Vollbildbreite):

(add-to-list 'initial-frame-alist '(fullscreen . maximized))
(add-to-list 'default-frame-alist '(fullscreen . fullheight))
Dan
quelle
3
In der Tat initial-frame-alistist viel nützlicher als default-frame-alistwenn man Werkzeuge wie Ediff verwendet.
Giordano
28

Schaltet auf Emacs 24.4 (toggle-frame-maximized)den maximierten Status des aktuellen Frames um.

Siehe auch die Maximize Emacs beim Start Frage auf Stackoverflow und die Vollbild - Seite auf dem EmacsWiki.

Konstantin
quelle
Dies funktioniert mit Castlemacs auf Mac. Vielen Dank!
Sankalp
9

In der Antwort von @Constantine wird bereits erläutert, wie dies durch Ändern Ihrer Init-Datei erreicht werden kann (wenn Sie Emacs 24.4 verwenden).

Wenn Sie Emacs von der Kommandozeile, vom Bindestrich oder von einem Launcher wie Synapse oder krunner aus starten , können Sie die -mmOption ( Abkürzung für --maximized) angeben , um dasselbe Ergebnis zu erzielen:

emacs -mm

Die -mmOption wurde erstmals in Emacs 23.2 eingeführt , sodass diese Lösung nicht auf die neueste stabile Version beschränkt ist.


Was diese Lösung von anderen hier veröffentlichten Vorschlägen unterscheidet (die alle großartig sind), ist, dass Sie von Fall zu Fall entscheiden können, ob der Emacs-Frame beim Start maximiert werden soll oder nicht.

Wenn Sie eine dauerhaftere Lösung wünschen, können Sie eine aliasfür den oben gezeigten Befehl einrichten, indem Sie Folgendes zu Ihrer hinzufügen .bashrc:

alias emacs='emacs -mm'
itsjeyd
quelle
2
Ein weiterer Vorteil dieser Lösung ist, dass Emacs bereits maximiert startet. Init-Datei-Workarounds bewirken, dass sie während des Startvorgangs auf "Maximiert" umschaltet, was ärgerlich ist.
und
1
Hinzufügen zu dieser Antwort: emacs -fsStartet Emacs im Vollbildmodus oder maximal im Maximalmodus.
Teemu Leisti
6

Fügen Sie Ihrer Init-Datei Folgendes hinzu, um Emacs maximiert zu starten:

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

Für den Fall, dass Sie in den Vollbildmodus oder, wie bereits gesagt, in den ablenkungsfreien Modus wechseln möchten :

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

HINWEIS : Dies funktioniert auch unter Windows.

antonio
quelle
1

Ich benutze die folgenden:

(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)
)
Adobe
quelle