Como posso executar o aplicativo Emacs 24.x no Mac OS X no modo daemon

7

Quero executar o Emacs.app no ​​modo daemon no Mac OS X. Posso executar o emacs no modo daemon através do terminal, mas as instruções para executar o aplicativo em um padrão cliente-servidor não funcionam (por exemplo: http: // overtone .github.io / emacs-live / doc-startup.html , ainda /Applications/Emacs.app/Contents/MacOS/bin/emacsclientnão existe) com as versões mais recentes do Emacs.

Como posso executar o aplicativo Emacs 24.x no Mac OS X no modo daemon?

Meus objetivos são iniciar o servidor na inicialização (o que eu sei fazer) e, quando inicio um cliente, iniciar um novo quadro na versão do aplicativo do Emacs que já está em execução.

pwalsh
fonte
Estou executando o Emacs.app 24.4 de emacsformacosx.com e ele contém o emacsclient. Qual build você está usando?
Alan Shutko 12/02/2019
Eu estou fugindo de homebrew
pwalsh

Respostas:

1

Usei https://korewanetadesu.com/emacs-on-os-x.html e funcionou bem, mas recentemente instalei o Emacs via 'brew' e funciona muito melhor (menos problemas e melhor experiência com daemon) para o parte do daemon: http://www.emacswiki.org/emacs/EmacsForMacOS#toc16

Depois de instalá-lo, diz que o emacs é carregado na inicialização, execute:

$ ln -sfv /usr/local/opt/emacs/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.emacs.plist
Galder Zamarreño
fonte
Eu também uso a versão homebrew. Sua resposta ajuda a iniciar o aplicativo no modo daemon, mas quando eu me conecto com um cliente, por exemplo: emacsclient -cele cria uma nova 'instância' do aplicativo no dock, em vez de iniciar uma nova janela ou quadro na minha instância atual do emacs. Isso é consistente com o comportamento que você tem?
Pwalsh
Eu nunca uso emacsclient. Luto emacsdiretamente e corro rápido o suficiente para mim. Não sei muito sobre isso, mas suspeito que essas duas operações que mencionei acima aceleram o emacscarregamento. Ao usar as sugestões "korewanetadesu", descobri que, quando estava usando emacsserver, que criava uma instância do aplicativo no documento, ele costumava travar algumas vezes.
Galder Zamarreño
Isso é ótimo, mas a questão é claramente sobre a conexão com o aplicativo no modo daemon ao iniciar um cliente.
22415 Pwalsh #
Existe um pacote no melpa chamado osx-pseudo-daemon que pode valer a pena examinar.
Tim X
@pwalsh Para executar o emacs no modo daemon, o launchctrlcomando acima iniciará um processo emacs para você. Então, para criar um novo quadro, você faria: emacsclient -n -c O ícone do emacs aparecerá no dock, permanecerá no dock até que o processo iniciado pelo launchctrl (emacs -daemon) saia ou seja morto. Você também pode usar emacsclient -tem um terminal. Ambos os comandos se conectam à instância do damac emacs, se a instância não estiver em execução, os comandos gerarão um erro.
xmonk
1

Também encontrei problemas ao tentar executar o Emacs como um daemon no OS X, então escrevi um modo "pseudo-daemon" que apenas cria um novo quadro de GUI oculto quando você fecha o último quadro. O resultado é que o Emacs apenas oculta no encaixe sempre que normalmente sai, o que fornece uma aproximação surpreendentemente boa do modo daemon, mantendo o ícone do encaixe funcional. Você pode obtê-lo no MELPA: https://melpa.org/#/mac-pseudo-daemon

Ryan C. Thompson
fonte