help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: resending... desktop files not working for recent ubuntu?


From: Rusi
Subject: Re: resending... desktop files not working for recent ubuntu?
Date: Mon, 13 Jun 2016 18:54:29 -0700 (PDT)
User-agent: G2/1.0

On Tuesday, May 31, 2016 at 10:51:57 AM UTC+5:30, Alexis wrote:
> Rustom Mody writes:
> 
> > Apologies for second copy 1st doesnt seem to have appeared
> >
> > --------------------------------------------- I have this 
> > emacs.desktop file put in ~/.local/share/applications
> >
> > --------------- [Desktop Entry] Name=EmacsClient 
> > GenericName=Text Editor Comment=Edit text 
> > 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=emacsclient -n -a emacs %F Icon=python Type=Application 
> > Terminal=false Categories=Development;TextEditor; 
> > StartupWMClass=Emacs
> >
> > --------------- Currently this laptop is on ubuntu 16.4 (xenial) 
> > -- vanilla unity desktop It used to work ok in earlier ubuntus 
> > Now on 16.4 it shows 2 emacs icons when editing a file via 
> > emacsclient Clicking the second icon shows no effect After about 
> > 10 seconds it disappears
> >
> > Dont know when it stopped working because frankly I am not much 
> > of a nautilus -> click -> emacsclient type of user
> >
> > Current generation -- my students -- however default to this 
> > kind of usage And so they default to one or both of - gedit by 
> > default - dozens of emacses open for each file they clicked
> 
> Shouldn't you specify '' (i.e. the empty string) as the -a 
> argument in the Exec option? From the man page for emacsclient(1):
> 
>     -a, --alternate-editor=EDITOR 
> 
>     if the Emacs server is not running, run the specified editor 
>     instead.  This can also be specified via the 
>     `ALTERNATE_EDITOR' environment variable.  If the value of 
>     EDITOR is the empty string, run `emacs --daemon' to start 
>     Emacs in daemon mode, and try to connect to it.
> 
> 
> Alexis.

Made some small progress with this following suggestions:
http://stackoverflow.com/questions/1167484/how-to-gracefully-shutdown-emacs-daemon

This needs
1. emacs started with --daemon
2. emacs.desktop as earlier described
3. Having this in the init:

(defun shutdown-emacs-server () (interactive)
  (when (not (eq window-system 'x))
    (message "Initializing x windows system.")
    (x-initialize-window-system)
    (when (not x-display-name) (setq x-display-name (getenv "DISPLAY")))
    (select-frame (make-frame-on-display x-display-name '((window-system . x))))
  )
  (let ((last-nonmenu-event nil)(window-system "x"))(save-buffers-kill-emacs)))


4. And having this systemd service in ~/.local/share/systemd/user/

[Unit]
Description=Emacs: the extensible, self-documenting text editor

[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval '(shutdown-emacs-server)'
Restart=no

TimeoutStartSec=12

[Install]
WantedBy=default.target

==============================
Basically the idea is that a dialog should be popped up for saving buffers
when the server is terminated even if no frame was active 

This is currently unreliable - ie sometimes it pops up and sometimes not
thereby losing unsaved work

Is there some more official way of using emacs in client-server mode?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]