.desktop 파일을 실행하기위한 기본 터미널을 어떻게 변경합니까?

May 11 2020

기본적으로 민첩하게 vim을 실행하려고했습니다. 난 이미 내 기본 터미널 에뮬레이터로 alacritty 세트를 가지고, 내 vim.desktop에서 나는 변화 exec=vim %F와 함께 exec=alacritty -e vim %F. 문제는 내가 파일을 열 때 먼저 gnome 터미널에서 명령을 실행 한 다음 빈틈없이 vim을 시작하면 그놈 터미널이 열린 상태로 유지된다는 것입니다. 또한 스크립트 작성을 시도했습니다.

#!/bin/bash
alacritty -e vim & disown | exit

이것은 전혀 작동하지 않습니다. 다른 방법을 모르고 온라인에서 아무것도 찾을 수 없습니다. 미리 감사드립니다!

Exec=명령 을 실행하는 기본 터미널을 변경할 수 있습니까? 그래서 글을 쓰는 것만으로도 Exec=vim %F능숙하게 실행할 수 있습니다.

답변

4 Wonky May 11 2020 at 14:05

muru가 무슨 일이 일어나고 있는지 설명하도록 도와주었습니다. 감사합니다! 문제는 내 .desktop 파일입니다.

[Desktop Entry]
Name=Vim
GenericName=Text Editor
Comment=Edit text files
Comment[es]=Edita archivos de texto
TryExec=vim
Exec=alacritty -e vim %F
Terminal=true
Type=Application
Keywords=Text;editor;
Icon=gvim
Categories=Utility;TextEditor;
StartupNotify=false
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++;

논쟁이 있었다 Terminal=true. 이것이하는 일은 Exec=터미널 에서 명령을 실행하여 터미널을 여는 것입니다. 설정 Terminal=false하면 터미널이 열리지 않고 터미널을 열지 않고 명령 만 실행됩니다.

OliverLew Jun 29 2020 at 16:31

편집 : 때때로 작동하지 않습니다. vim을 열 때 어떤 터미널 에뮬레이터가 사용되는지 제어하는 ​​것이 무엇인지 모르겠습니다.

이 문제에 대한 또 다른 해결 방법을 찾았습니다 . 자신의 터미널 에뮬레이터 xterm에 대한 심볼릭 링크를 만듭니다 $PATH. 나는 이것이 모든 사람에게 작동한다고 보장 할 수 없습니다.

이 해결 방법의 장점은 데스크톱 항목 파일을 변경할 필요가 없다는 것입니다. 모든 .desktop Terminal=true은 새 터미널 에뮬레이터를 사용합니다.


exo-open( xdg-openxfce에서 와 유사)로 데스크탑 항목을 실행하려고 하면 경고 메시지가 표시됩니다.

sh: line 0: exec: xterm: not found

그래서 나는 xterm.desktop 파일을 열도록 프로그램에 하드 코딩되어 있다고 생각 합니다. 그런 다음이 심볼릭 링크를 만들려고했습니다

ln -s /usr/bin/st ~/.local/bin/xterm

완벽하게 작동합니다.

그러나 생성 된 실제 명령은 xterm의 인수를 기반으로 하므로 동일한 인수를 사용하여 시작 명령을 지정하는 터미널 에뮬레이터 만 작동합니다. 하나의 카운터 예는 옵션 termite에서 전체 명령을 인용해야하기 때문에 -e입니다.