.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-open
xfceからのと同様に)でデスクトップエントリを実行しようとすると、警告メッセージが表示されます
sh: line 0: exec: xterm: not found
したがってxterm
、.desktopファイルを開くようにプログラムにハードコードされていると思います。それから私はこのシンボリックリンクを作ろうとしました
ln -s /usr/bin/st ~/.local/bin/xterm
そしてそれは完璧に機能します。
ただし、生成される実際のコマンドはおそらくxterm
の引数に基づいているため、同じ引数を使用して起動コマンドを指定するターミナルエミュレーターのみが機能します。termite
コマンド全体を-e
オプションで引用する必要があるため、1つの反例はです。