Gnome 3でデーモンモードを使用する


13

EmacsWiki pageを使用してコマンドラインで動作するようにEmacsデーモンを取得しましたが、Gnome 3ランチャーでクライアントを実行する方法に固執しています。Emacsデーモンに接続するGUIウィンドウを起動するGnomeデスクトップファイルを設定するにはどうすればよいですか?

回答:


16

私はUbuntuを使用しているため、デスクトップファイルの場所は異なる場合がありますが、内容は似ているはずです。

$ 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

重要な部分は次のとおりです。

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

明確にするためには、おそらく次のようにする必要があります。

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

emacsclientのドキュメントから、これらのスイッチは次のことを行います。

-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

そのため、を使用して新しいフレームを作成し、-cemacsがまだデーモン化されていない場合は、で新しいemacsデーモンを開始します-a ""。最後に、%Fテキストファイルをアイコンにドラッグして開くことができるように修正します。

余談ですが-F "((fullscreen . maximized))"、起動時にフレームを最大化するように強制することも検討できます。残念ながら、それが機能するためにどのバージョンのemacsが必要なのか思い出せません。


1
これは他の点では素晴らしい機能ですが、常に新しいEmacsウィンドウを開きます。他のランチャーアイコンについては、既存のウィンドウがフォーカスされています。同じ動作をする方法はありますか?
アカイホラ

2

akaiholaからのコメントに対処するために、dgtizedの答えを微調整しているだけです。すなわち、私たちがしたいのは

  • Emacsのデーモン機能を利用する
  • 既存のフレームを呼び出すか、必要に応じて作成します。

魔法のように機能するのemacs25.desktopではなく、ファイルを作成することがわかりますemacsclient.desktop(率直に言って、理由はわかりません)。

だから私はやった:

cp /usr/share/applications/emacs25.desktop ~/.local/share/applications

(システムによっては、そうでない場合がありますemacs25

それから私の~/.local/share/applications/emacs25.desktop中で、Exec行を次のように変更しました。

Exec=/bin/bash --login -c "emacsclient --alternate-editor= --create-frame %F"

bashログインシェルは、デーモンに完全なログイン環境があることを確認します。

そして、私はTryExec行を削除しました。

最後Nameに、ランチャーで認識できるように編集し、スーパーをタップして右クリックし、新しいアイテムをお気に入りに追加しました。私はいつも最初のアイテムとしてEmacsを持っているので、Super + 1がそれを呼び出します。

Name=GNU Emacs client

そして、すべてがうまくいくようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.