Как максимизировать Emacs на Windows при запуске? - PullRequest
42 голосов
/ 02 мая 2009

Это сводит меня с ума: я просто хочу, чтобы Emacs максимизировал до любого разрешения экрана при запуске. В идеале мне нравится кроссплатформенное (Windows & Linux) решение, которое работает на любом разрешении экрана, но я даже не могу заставить его работать только на Window XP даже с жестко заданными размерами.

Вот что я попробовал:

  1. Установка начального-кадрового списка с соответствующей высотой / шириной
  2. Настройка default-frame-alist
  3. (специфичные для Windows вещи) Отправка сообщения в окна emacs с указанием увеличить его до (w32-send-sys-command 61488)
  4. Пробовал эту функцию, которую я где-то нашел:

    (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))))))
    
  5. Пробовал вышеуказанные методы в начале и конце моего файла инициализации, чтобы попытаться устранить помехи от других вещей инициализации.

К сожалению, ничего из вышеперечисленного не работает !! Для некоторых из вышеперечисленных я могу видеть, что мои окна emacs изменяют размеры корректно в течение доли секунды, прежде чем вернуться к небольшому размеру по умолчанию. И если я запустил методы выше после инициализации, то окна emacs ДЕЙСТВИТЕЛЬНО изменят размер. Что в мире здесь происходит?

[p.s. есть и другие вопросы по этому вопросу, но ни один из ответов не работает]


Обновление:

Ответы заставляют меня думать, что что-то еще в моем файле инициализации вызывает проблему. И это действительно так! После некоторых проб и ошибок я нашел виновника. Если я закомментировал следующую строку, все работает отлично:

(tool-bar-mode -1)

Какое отношение имеет панель инструментов к максимизации окон?

Таким образом, теперь возникает вопрос: как я могу отключить панель инструментов (в конце концов, панель инструментов emacs уродлива и занимает драгоценное пространство экрана) И развернуть окна как в моем файле инициализации? Возможно ли это ошибка, что панель инструментов мешает размеру окна?

Уточнение: (tool-bar-mode-1) отключает панель инструментов, но эта строка мешает максимизировать окна Emacs. Поэтому, если я попытаюсь поставить функции для максимизации окон и выключить панель инструментов, часть максимизации потерпит неудачу; если часть панели инструментов закомментирована, то часть максимизации будет работать нормально. Не имеет значения, какие решения я использую (среди 4, которые я перечислил).


Решение: (или хотя бы то, что у меня сейчас работает)

Это, вероятно, ошибка в Emacs. Обходной путь - отключить панель инструментов через Реестр, а не в .emacs. Сохраните следующее как файл .reg и запустите этот файл в проводнике Windows:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\GNU\Emacs]
"Emacs.Toolbar"="-1"

(Это решение является рабочей версией того, что предложил OtherMichael).

Ответы [ 15 ]

1 голос
/ 02 мая 2009

Эй - хорошая функция! Спасибо за публикацию

Я думаю, что это может не сработать, потому что у вас есть код, похожий на следуя где-то еще в вашем файле инициализации. Применяется default-frame-alist после того, как кадр создан. Я удалил размер и положение элементов, и вы работаете отлично работает при загрузке emacs.

   (setq default-frame-alist
     (list
      (cons 'left                 350)
      (cons 'top                  0)
      (cons 'width                80)
      (cons 'height               45)
     ......
0 голосов
/ 20 июня 2013

Следующий фрагмент из emacswiki отлично работал у меня: (добавьте в ваш конфигурационный файл автозагрузки)

(defun jbr-init ()
"Called from term-setup-hook after the default
terminal setup is
done or directly from startup if term-setup-hook not
used.  The value
0xF030 is the command for maximizing a window."
  (interactive)
  (w32-send-sys-command #xf030)
  (ecb-redraw-layout)
  (calendar)
  )
(setq term-setup-hook 'jbr-init)
(setq window-setup-hook 'jbr-init)
0 голосов
/ 19 октября 2011
0 голосов
/ 04 мая 2009

Чтобы отключить панель инструментов, добавьте строку

(tool-bar-mode nil)

в ваш файл настроек (обычно .emacs в вашем корневом каталоге).

0 голосов
/ 02 мая 2009
(defun resize-frame ()
"Set size"
(interactive)
(set-frame-width (selected-frame) 110)
(set-frame-height (selected-frame) 33)
(set-frame-position (selected-frame) 0 1))

Следующее - последняя функция, вызванная в моих файлах .emacs, она устанавливает высоту и ширину экрана, который работает на emacs 22 и emacs 23 на debian и mac os x. установите значения высоты и ширины в соответствии с вашим экраном.

...