EmacsWiki 페이지를 사용하여 명령 행에서 작동하도록 Emacs 데몬을 얻었 지만 클라이언트가 Gnome 3 런처를 실행하도록하는 방법에 붙어 있습니다. Emacs 데몬에 연결하는 GUI 창을 시작 하는 Gnome 데스크탑 파일 을 어떻게 설정 합니까?
EmacsWiki 페이지를 사용하여 명령 행에서 작동하도록 Emacs 데몬을 얻었 지만 클라이언트가 Gnome 3 런처를 실행하도록하는 방법에 붙어 있습니다. Emacs 데몬에 연결하는 GUI 창을 시작 하는 Gnome 데스크탑 파일 을 어떻게 설정 합니까?
답변:
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
따라서이 프레임을 사용하여 새 프레임을 -c
만든 다음 emacs가 아직 데몬이 아닌 경우로 새 emacs 데몬을 시작합니다 -a ""
. 마지막으로 %F
수정하여 텍스트 파일을 아이콘으로 드래그하면 열립니다.
옆으로 당신은 또한 -F "((fullscreen . maximized))"
발사시 프레임을 최대화하도록 포함하는 것을 고려할 수도 있습니다 . 불행히도, 작동하기 위해 어떤 버전의 emacs가 필요한지 기억할 수 없습니다.
akaihola의 의견을 다루기 위해 dgtized의 답변을 실제로 조정하고 있습니다. 즉 우리가 원하는 것은
나는 마술처럼 작동 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
런처에서 인식 할 수 있도록 편집 하고 Super를 탭하고 마우스 오른쪽 버튼을 클릭하여 새 항목을 즐겨 찾기에 추가했습니다. 나는 항상 이맥스에게 첫 번째 아이템을 가지고 있으므로 Super + 1이 소환합니다.
Name=GNU Emacs client
그리고 모든 것이 잘되는 것 같습니다.