Ako daemon už niekoľko rokov používam aj prehrávač hudby (najskôr xmms2
, potom mpd
), takže som si už nejakú dobu takúto funkciu želal aj pre Emacs.
Emacs od verzie 23 má plne zabudovanú podporu spúšťania ako daemon a po niekoľkých mesiacoch musím skonštatovať, že som konečne spokojný. Skúšal som rôzne riešenia v predchádzajúcich verziách, ale nepodarilo sa mi to vyladiť k mojej spokojnosti.
Teraz stručne popíšem “setup”, ktorý mi vyhovuje. Používam 2 inštancie, jednu ako oddelený mailový klient (Wanderlust) a jednu na všetko ostatné (org-mode
, LaTeX, programovanie, písanie textov). Príkazy, ktoré uvediem je možné si pomocou xbindkeys
nastaviť na nejakú klávesovú skratku, nebudem uvádzať svoje, pretože to nie je podstatné.
Základom je spustenie daemona a klienta k nemu (klient je len nový frame, ktorý sa môže kedykoľvek zatvoriť a daemon to neovplyvní):
alias emacsd='emacs --daemon' alias emacs='emacsclient -c'
Dôležité je aj vedieť daemona správne ukončiť, tieto aliasy ukončujú interaktívne a neinteraktívne (bezpodmienečné ukončenie bez uloženia zmien):
alias emacs-kill="emacsclient -e \"(progn (setq desktop-save \\\"~/\\\") (save-some-buffers) (kill-emacs))\"" alias emacs-kill-9="emacsclient -e \"(progn (setq desktop-save \\\"~/\\\") (save-some-buffers) (setq kill-emacs-hook 'nil) (kill-emacs))\""
Keď už máme stále bežiaci Emacs, tak na otvorenie súboru v ňom som si vytvoril funkciu aj so skráteným názvom eo
:
emacs-open() { emacsclient -e "(find-file \"$1\")'" } alias eo=emacs-open
Na záver som aplikoval nejaký vizuálny tuning, pretože štart Emacsu v textovom režime (platí aj pre daemon) nemôže nastaviť niektoré veci týkajúce sa len Gtk+ verzie:
emacsclient -c -e '(set-cursor-color "green")' -e '(load "~/.emacs.d/tabbar.el")' -e "(set-face-font 'tooltip \"DejaVu Sans 7\")"
A nakoniec ešte spustenie samostatného Emacsu s e-mailovým klientom, ktorý nepoužíva desktop (ukladanie zoznamu otvorených bufferov, histórie, atď.):
emacs -eval '(wl)' --no-desktop
Takéto oddelenie síce má svoje nevýhody, ale naopak ak potrebujem otvárať obrovské foldery až s desaťtisícami mailov, tak časom dokáže nabobtnať a je lepšie ho ukončiť a spustiť znovu.
An unforeseen error has occured. This is most likely a bug somewhere. It might be a problem in the blogtng plugin.
More info has been written to the DokuWiki error log.