Como tornar o emacs verdadeiramente em tela cheia na inicialização?

9

Quero que o emacs seja realmente maximizado na inicialização.

Existem soluções para o problema que apenas aumentam a largura da tela do emacs. Isso não é suficiente para mim. Quero que a janela do emacs seja encaixada no canto superior direito da tela, para que, quando pressionar o mouse, feche o emacs, não o Firefox ou o Krusader ou o que estiver maximizado em segundo plano.

Eu tentei fazer isso com o Kwin - mas sem sorte.

PS Estou usando o Kubuntu, e o emacs é bem recente, um 23.2 ou algo parecido.

Adobe
fonte
@ usuário maximizado ou tela cheia - o que você deseja? Seu segundo parágrafo é um pouco vago.
David LeBauer
Existem algumas soluções dependentes do gerenciador de janelas. Qual WM você está usando? No Fluxbox, eu uso o ~/.fluxbox/appsarquivo para definir a preferência maximizada para aplicativos específicos.
Daniel Andersson
Estou usando o KWM (é o padrão do KDE). Possui a opção "maximizada" - mas a janela do emacs não é realmente maximizada: se você pressionar "x" no canto superior direito com o mouse - fechará outra coisa - não o emacs.
Adobe

Respostas:

7

Tirei isso de algum lugar no emacswiki, há algum tempo. Observe que eu não o uso mais, pois mudei para o dwm para ter tudo em tela cheia, mas costumava funcionar.

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

Se você deseja que ele seja executado na inicialização, você deve poder adicionar

(fullscreen)

para o seu .emacs

EDIT: Relendo sua pergunta, acho que não é isso que você deseja. Isso ficará realmente em tela cheia, não maximizado: você não terá nenhum botão Fechar.

Este deve fazer:

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

Agora é diretamente de http://www.emacswiki.org/emacs/FullScreen

Tiago
fonte
3

Aqui estão duas maneiras não-Lisp de obter o mesmo:

  1. Alias ​​seu emacscomando para emacs -fs. Adicione esta linha de código ao seu .bashrcarquivo no diretório inicial:

    alias emacs='emacs -fs'
    

    Pessoalmente, não gosto dessa abordagem, porque não gostaria que o Emacs iniciasse em tela cheia o tempo todo e gostaria de algum controle.

  2. Minha solução: no Ubuntu, você pode atribuir um atalho de teclado para 'tela cheia' em qualquer janela. Esta parece ser a opção mais conveniente e simples. Além disso, tem a vantagem de que o mesmo atalho também se aplica a todos os seus aplicativos.

GeralBecos
fonte
+1 Há também -mm(abreviação de --maximized) que "maximizará o primeiro quadro". Os efeitos do uso dessa opção são um pouco menos "drásticos" que a -fsopção (a barra de título do Emacs e os painéis do SO permanecem visíveis).
precisa saber é o seguinte
3

Coloque (w32-send-sys-command ?\xf030) no seu .emacsarquivo. Eu acho que resolve o seu problema.

(funciona apenas no Windows)

Paulo Tomé
fonte
Isso é legal, embora eu esteja trabalhando no Linux. Mas ainda assim - às vezes também tenho que trabalhar no Windows. Obrigado.
Adobe
Eu esqueci de mencionar. Esta solução é apenas para Windows.
Paulo Tomé
Sim, eu vejo a w32coisa.
Adobe
1

Se você deseja alternar a tela cheia no emacs com a tecla F11, adicione o seguinte ao .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))

Se você deseja que o emacs em tela cheia seja muito mínimo (sem barra de ferramentas, barra de rolagem ou barra de menus, adicione também:

(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
  )
)
David LeBauer
fonte
0

Eu acho que o emacs respeitará as configurações do gconf, para que você possa definir / apps / emacs / maximize, mas não sei se isso ajudará no Kubuntu - vale a pena tentar.

jaybee
fonte
0

Eu uso o seguinte no Linux:

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

e vincule-o a uma chave:

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

Se você deseja começar a maximizar, basta adicionar uma chamada ao my-frame-togglefinal do seu arquivo .emacs.

Joe Casadonte
fonte
Quando escrevo seu código, no meu arquivo .emacs. Mostra erro do analisador.
Pratik Singhal
0

Encontrei uma solução engraçada:

emacs -nw

inicia o emacs em um console - e você pode maximizar o próprio console!

Adobe
fonte