.desktopファイルを実行するためのデフォルトのターミナルを変更するにはどうすればよいですか?
私はデフォルトとしてalacrittyでvimを実行しようとしています。すでにデフォルトのターミナルエミュレーターとしてalacrittyを設定しており、vim.desktopexec=vim %Fでexec=alacritty -e vim %F。に変更しました。問題は、ファイルを開くと、最初にgnomeターミナルでコマンドを実行し、次にvimをalacrittyで起動すると、gnomeターミナルが開いたままになることです。また、スクリプトを作成してみました。
#!/bin/bash
alacritty -e vim & disown | exit
 
    これはまったく機能しません。他に何をすべきかわからず、オンラインで何も見つかりません。前もって感謝します!
Exec=コマンドを実行するデフォルトの端末を変更することは可能ですか?書くだけでExec=vim %Fそれをalacrittyで実行できるように
回答
ムルは私が何が起こっているのかを明確にするのを手伝ってくれました、ありがとう!問題は、私の.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すると、端末が開かなくなり、端末を開かずにコマンドが実行されます。
編集:これは時々機能しません、vimを開いたときに使用されるターミナルエミュレータを何が制御しているのかわかりません。
私はこの問題のために別の回避策が見つかりました:という名前のシンボリックリンクを作成xtermあなたに$PATHあなた自身の端末エミュレータにします。ただし、これがすべての人に役立つことを保証することはできません。
この回避策の利点は、デスクトップエントリファイルを変更する必要がないことです。のすべての.desktopTerminal=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オプションで引用する必要があるため、1つの反例はです。