Как сделать emacs действительно полноэкранным при запуске?

9

Я хочу, чтобы при запуске emacs был максимально развернут.

Существуют решения этой проблемы, которые просто увеличивают ширину окна emacs. Это не достаточно для меня. Я хочу, чтобы окно emacs было пристыковано к правому верхнему углу экрана, чтобы, когда я нажимал там мышью, я закрывал emacs, а не Firefox, Krusader или что-либо еще, развернутое в фоновом режиме.

Я пытался сделать это с Квином - но не повезло.

PS Я использую Kubuntu, и emacs довольно свежий 23.2 или что-то в этом роде.

саман
источник
@ полный или полный экран пользователя - что вы хотите? Ваш второй абзац немного расплывчатый.
Дэвид Лебауэр
Существуют некоторые решения, зависящие от оконного менеджера. Какой WM вы используете? Во Fluxbox я использую этот ~/.fluxbox/appsфайл, чтобы установить максимальные предпочтения для конкретных приложений.
Даниэль Андерссон
Я использую KWM (это KDE по умолчанию). У него есть опция «развернутый» - но окно emacs не развернуто по-настоящему: если вы нажмете «x» в верхнем правом углу с помощью мыши - вы закроете что-то еще - не emacs.
Adobe

Ответы:

7

Я взял это где-то на emacswiki, некоторое время назад. Обратите внимание, что я больше не использую его, так как я переключился на dwm, чтобы все было полноэкранным, но он работал.

(defun fullscreen ()
       (interactive)
       (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
                 '(2 "_NET_WM_STATE_FULLSCREEN" 0)))

Если вы хотите, чтобы он запускался при запуске, вы сможете добавить

(fullscreen)

на ваш .emacs

РЕДАКТИРОВАТЬ: Перечитывая ваш вопрос, я думаю, что это не то, что вы хотите. Это будет действительно полноэкранный, а не развернутый: у вас не будет кнопки закрытия.

Это следует сделать:

(defun fullscreen (&optional f)
  (interactive)
  (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
             '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))
  (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
             '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0)))

Теперь это прямо с http://www.emacswiki.org/emacs/FullScreen

Tiago
источник
3

Вот два не Лисп-способа добиться того же:

  1. Псевдоним вашей emacsкоманды emacs -fs. Добавьте эту строку кода в ваш .bashrcфайл в вашем домашнем каталоге:

    alias emacs='emacs -fs'
    

    Лично мне не нравится этот подход, потому что я не хотел бы, чтобы Emacs запускался в полноэкранном режиме все время и хотел бы некоторого контроля.

  2. Мое решение: в Ubuntu вы можете назначить сочетание клавиш для «полноэкранного» любого окна. Это кажется наиболее удобным и простым вариантом. Кроме того, он имеет то преимущество, что тот же ярлык также применяется ко всем вашим приложениям.

GeneralBecos
источник
+1 Также есть -mm(сокращение --maximized), которое будет «максимизировать первый кадр». Эффекты использования этой опции немного менее радикальны, чем -fsопция (строка заголовка Emacs и панели ОС остаются видимыми).
itsjeyd
3

Положите (w32-send-sys-command ?\xf030) на свой .emacsфайл. Я думаю, что это решает вашу проблему.

(работает только на Windows)

Пауло Томе
источник
Это круто, только если я работаю в Linux. Но все же - иногда мне приходится работать и в Windows. Спасибо.
Adobe
Я забыл упомянуть. Это решение только для Windows.
Пауло Томе
Да, я вижу w32вещь.
Adobe
1

Если вы хотите переключать полноэкранный режим в emacs с помощью клавиши F11, добавьте в .emacs следующее:

;; the following should give fullscreen mode when F11 is depressed
(defun fullscreen ()
 (interactive)
 (set-frame-parameter nil 'fullscreen
              (if (frame-parameter nil 'fullscreen) nil 'fullboth))

Если вы хотите, чтобы полноэкранные emacs были минимальными (без панели инструментов, полосы прокрутки или строки меню, также добавьте:

(progn
  (if (fboundp 'tool-bar-mode) (tool-bar-mode -1))  ;; no toolbar
  (menu-bar-mode -1) ;;no menubar
  (scroll-bar-mode -1) ;; no scroll bar
  )
)
Дэвид Лебауэр
источник
0

Я думаю, что emacs будет уважать настройки gconf, поэтому вы можете установить / apps / emacs / maximize, но не знаете, поможет ли это на Kubuntu - стоит попробовать.

Jaybee
источник
0

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

(defun my-frame-toggle ()
    "Maximize/Restore Emacs frame using 'wmctrl'."
    (interactive)
    (shell-command "wmctrl -r :ACTIVE: -btoggle,maximized_vert,maximized_horz"))

а затем привязать его к ключу:

(global-set-key [(control f4)] 'my-frame-toggle)

Если вы хотите начать с максимизации, вы можете просто добавить вызов my-frame-toggleв конец вашего файла .emacs.

Джо Касадонте
источник
Когда я пишу ваш код, на мой файл .emacs. Это показывает ошибку парсера.
Пратик Сингхал
0

Я нашел забавное решение:

emacs -nw

запускает emacs в консоли - и вы можете развернуть консоль сама!

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