.desktopファイルを実行するためのデフォルトのターミナルを変更するにはどうすればよいですか?

May 11 2020

私はデフォルトとしてalacrittyでvimを実行しようとしています。すでにデフォルトのターミナルエミュレーターとしてalacrittyを設定しており、vim.desktopexec=vim %Fexec=alacritty -e vim %F。に変更しました。問題は、ファイルを開くと、最初にgnomeターミナルでコマンドを実行し、次にvimをalacrittyで起動すると、gnomeターミナルが開いたままになることです。また、スクリプトを作成してみました。

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

これはまったく機能しません。他に何をすべきかわからず、オンラインで何も見つかりません。前もって感謝します!

Exec=コマンドを実行するデフォルトの端末を変更することは可能ですか?書くだけでExec=vim %Fそれをalacrittyで実行できるように

回答

4 Wonky May 11 2020 at 14:05

ムルは私が何が起こっているのかを明確にするのを手伝ってくれました、ありがとう!問題は、私の.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あなた自身の端末エミュレータにします。ただし、これがすべての人に役立つことを保証することはできません。

この回避策の利点は、デスクトップエントリファイルを変更する必要がないことです。のすべての.desktopTerminal=trueは、新しいターミナルエミュレータを使用します。


exo-openxdg-openxfceからのと同様に)でデスクトップエントリを実行しようとすると、警告メッセージが表示されます

sh: line 0: exec: xterm: not found

したがってxterm、.desktopファイルを開くようにプログラムにハードコードされていると思います。それから私はこのシンボリックリンクを作ろうとしました

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

そしてそれは完璧に機能します。

ただし、生成される実際のコマンドはおそらくxtermの引数に基づいているため、同じ引数を使用して起動コマンドを指定するターミナルエミュレーターのみが機能します。termiteコマンド全体を-eオプションで引用する必要があるため、1つの反例はです。