emacsclient – Usando el modo demonio en Gnome 3

Pregunta:

He conseguido que el demonio de Emacs funcione a través de la línea de comandos usando la página de EmacsWiki , pero no sé cómo hacer que el cliente se ejecute a través del lanzador de Gnome 3. ¿Cómo puedo configurar un archivo de escritorio Gnome que inicie una ventana GUI que se conecte al demonio de Emacs?

Respuesta:

Estoy usando Ubuntu, por lo que la ubicación del archivo de escritorio puede ser diferente, pero creo que el contenido debería ser similar.

$ cat ~/.local/share/applications/emacsclient.desktop 
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Name=GNU Emacs 24
GenericName=Text Editor
Comment=View and edit files
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/usr/bin/emacsclient -c -a "" %F
Icon=/usr/share/icons/hicolor/scalable/apps/emacs-snapshot.svg
Type=Application
Terminal=false
Categories=Utility;Development;TextEditor;
StartupWMClass=Emacs
Name[en_US]=GNU Emacs 24

La parte importante es:

Exec=/usr/bin/emacsclient -c -a "" %F

Para aclarar que probablemente debería ser:

Exec=/usr/bin/emacsclient --create-frame --alternate-editor "" %F

De la documentación en emacsclient, esos conmutadores hacen lo siguiente:

-c, --create-frame      Create a new frame instead of trying to
                        use the current Emacs frame
-a EDITOR, --alternate-editor=EDITOR
                        Editor to fallback to if the server is not running
                        If EDITOR is the empty string, start Emacs in daemon
                        mode and try connecting again

Entonces crea un nuevo marco usando -c y luego, si emacs aún no está demonizado, inicia un nuevo demonio emacs con -a "" . Finalmente, %F corrige para que puedas arrastrar un archivo de texto al icono y lo abrirá.

Como acotación al margen, también puede considerar incluir -F "((fullscreen . maximized))" para forzar el marco a maximizar en el lanzamiento. Desafortunadamente, no puedo recordar qué versión de emacs se requiere para que funcione.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım