.Desktop dosyalarını yürütmek için varsayılan terminali nasıl değiştiririm?
Varsayılan olarak alacritty ile vim'i yürütmeye çalışıyorum. Varsayılan terminal öykünücüm olarak zaten alacritty ayarladım ve vim.desktop'umda exec=vim %File değiştirdim exec=alacritty -e vim %F. Sorun şu ki, bir dosyayı açtığımda, önce komutu gnome terminalinde çalıştırıyor ve sonra vim'i alacritty'de başlatıyor, mesele şu ki, gnome terminali açık kalıyor. Ayrıca bir komut dosyası oluşturmayı da denedim:
#!/bin/bash
alacritty -e vim & disown | exit
bu hiç çalışmıyor. Başka ne yapacağımı bilmiyorum ve internette hiçbir şey bulamıyorum. Şimdiden teşekkürler!
Exec=Komutu çalıştıran varsayılan terminali değiştirmek mümkün müdür ? böylece sadece yazarak Exec=vim %Fonu alacritty'de çalıştıracak
Yanıtlar
muru neler olup bittiğini açıklamama yardımcı oldu, teşekkür ederim! Sorun şu ki benim .desktop dosyam:
[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++;
Tartışma vardı Terminal=true. Bunun yaptığı şey, Exec=komutu bir terminalde yürütmek ve bunu yapmak için bir terminal açmaktır. Bunu ayarlarsanız Terminal=false, herhangi bir terminalin açılmasını önleyecek ve sadece terminali açmadan komutu yürütecektir.
Düzenleme: Bu bazen işe yaramıyor, vim'i açtığınızda hangi terminal öykünücüsünün kullanıldığını neyin kontrol ettiğini bilmiyorum.
Sadece bu sorun için başka işi-etrafında bulunan: adında bir sembolik oluşturmak xtermGözlerinde farklı $PATHkendi terminal emülatörü için. Bunun herkes için işe yarayacağını garanti edemem.
Bu geçici çözümün avantajı, herhangi bir masaüstü giriş dosyasını değiştirmenize gerek olmamasıdır. Tüm .desktop Terminal=true, yeni terminal öykünücüsünü kullanır.
exo-open( xdg-openXfce'ye benzer) ile bir masaüstü girişi yürütmeye çalışırken , bir uyarı mesajı var
sh: line 0: exec: xterm: not found
Bu yüzden sanırım xtermprogramda .desktop dosyalarını açmak için kodlanmış. Sonra bu sembolik bağı yapmaya çalıştım
ln -s /usr/bin/st ~/.local/bin/xterm
ve mükemmel çalışıyor.
Ancak ortaya çıkan gerçek komut muhtemelen xterm'ın argümanlarına dayanmaktadır , bu nedenle yalnızca başlatma komutunu belirtmek için aynı argümanı kullanan uçbirim öykünücüleri çalışır. Bir sayaç örneği, termitetüm komutun -eseçenekte alıntılanmasını gerektirdiğinden .