Как максимизировать мой кадр Emacs при запуске?

66

Есть ли способ увеличить мое окно при запуске?

В настоящее время я нажимаю Control+ Windows Key+ Upна клавиатуре, но каждый раз делать это очень утомительно.

Я использую Emacs 24.4 в Ubuntu 12.04.

Люк
источник
1
Я не знал комбинацию клавиш, чтобы максимизировать Emacs. Спасибо за это, а также ответ ниже разработан!
Прасанна
Откуда вы узнали комбинацию <kbd>![Windows Key][oldwinlogo]</kbd>Это не работает для меня :-(
Прасанна

Ответы:

71

У меня есть другой метод, который я тестировал в Emacs 24.3 и 24.4, а также в Windows и GNU / Linux. Я поместил следующее в мой файл инициализации :

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

Я полагаю, что это было немного изменено из ответа StackOverflow, который я нашел некоторое время назад, но сейчас я не могу найти его снова.

Изменить: Еще один бонус этого метода заключается в том, что он также применяется к новым клиентам, которые подключаются к вашему серверу Emacs (например, с помощью emacsclient -c).

Скотт Уэлдон
источник
3
+1 за точный ответ. Если бы я мог принять это как ответ снова - я бы действительно!
Прасанна
1
Мне нравится использование этого решения emacsclient, но есть некоторые кадры, которые при их максимальном запуске помешают их правильному использованию, например, панель управления ediff , есть ли обходной путь для этого?
Marcanuy
@marcanuy: я не знаю, как решить проблему, но, возможно, стоит опубликовать новый вопрос для этого.
Скотт Уэлдон
31

Настройте ...-frame-alistв вашем файле инициализации, чтобы сообщить Emacs, как максимизировать фрейм. У вас также есть несколько вариантов, как именно, чтобы максимизировать его.

alist параметры

У вас есть два ...-frame-alistварианта:

  1. default-frame-alist (как в ответе Скотта Уэлдона)
  2. initial-frame-alist

Если вы используете default-frame-alist, это максимизирует все кадры: и первый, и любые другие, которые вы создаете. Это может быть не то, что вы хотите (или, может быть, это: кто я такой, чтобы судить?).

Если вы используете initial-frame-alist, он максимизирует только кадр, который Emacs создает при запуске, но не затрагивает любые последующие кадры, которые вы создаете.

варианты максимизации

Для ваших вариантов максимизации, см. Этот узел руководства для деталей. Короткая версия заключается в том, что вы можете установить fullscreenпараметр:

  • fullwidth (сделайте рамку максимально широкой, не касайтесь вертикали)
  • fullheight (сделайте рамку как можно выше, не касайтесь горизонтали)
  • fullboth (установите высоту и ширину в соответствии с размером экрана)
  • maximized (сделай, ну, максимизируй)

Разница между fullbothи в maximizedтом, что вы можете изменить размер первого с помощью мыши, а с последним вы не можете.

пример

Так, например, эти строки будут: 1) создавать максимизированный начальный кадр и 2) создавать кадры полной высоты (но не полной ширины) в каждом последующем кадре:

(add-to-list 'initial-frame-alist '(fullscreen . maximized))
(add-to-list 'default-frame-alist '(fullscreen . fullheight))
Дэн
источник
3
На самом деле initial-frame-alistэто гораздо полезнее, чем default-frame-alistкогда вы используете такие инструменты, как Ediff.
Джордано
9

@ В ответе Константина уже рассказывается, как этого можно добиться, изменив файл init (если вы используете Emacs 24.4).

Если вы запускаете Emacs из командной строки, из тире или из средства запуска, такого как Synapse или krunner , вы можете указать -mmопцию (сокращение от --maximized) для достижения того же результата:

emacs -mm

Впервые эта -mmопция была представлена ​​в Emacs 23.2 , поэтому это решение не ограничивается последней стабильной версией.


Что отличает это решение от других предложений, опубликованных здесь (все они великолепны), так это то, что оно позволяет вам в каждом конкретном случае решать, хотите ли вы максимизировать фрейм Emacs при запуске или нет.

Если вы хотите более постоянное решение, вы можете настроить aliasкоманду, показанную выше, добавив следующее к вашему .bashrc:

alias emacs='emacs -mm'
itsjeyd
источник
2
Еще одним преимуществом этого решения является то, что emacs запускается уже в максимальном размере. Временные решения файла init заставляют его переключаться на максимальный уровень при запуске, что немного раздражает.
и
1
Чтобы добавить к этому ответу: emacs -fsзапускает Emacs развернуто на весь экран, или максимально развернуто на макс.
Теему Лейсти
6

Чтобы запустить Emacs максимально, добавьте в ваш файл инициализации:

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

В случае, если вы хотите перейти в полноэкранный режим или, как говорят сейчас, без отвлекающего режима:

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

ПРИМЕЧАНИЕ . Это работает и в Windows.

антонио
источник
1

Я использую следующее:

(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)
)
саман
источник