¿Cómo cambio el terminal predeterminado para ejecutar archivos .desktop?
He estado intentando ejecutar vim con alacritty por defecto. Ya he configurado alacritty como mi emulador de terminal predeterminado, y en mi vim.desktop cambié exec=vim %Fcon exec=alacritty -e vim %F. El problema es que cuando abro un archivo primero ejecuta el comando en la terminal gnome y luego lanza vim en alacritty, lo que pasa es que la terminal gnome permanece abierta. También he intentado crear un script:
#!/bin/bash
alacritty -e vim & disown | exit
 
    esto no funciona en absoluto. No sé qué más hacer y no encuentro nada en línea. ¡Gracias por adelantado!
¿Es posible cambiar la terminal predeterminada que ejecuta el Exec=comando? para que con solo escribirlo Exec=vim %Flo ejecutara con prontitud
Respuestas
muru me ayudó a aclarar lo que estaba pasando, ¡gracias! El problema era que mi archivo .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++;
 
     Tenía la discusión Terminal=true. Esto lo que hace es que ejecuta el Exec=comando en una terminal, abriendo una terminal para hacerlo. Si configura Terminal=falseesto, evitará que se abra cualquier terminal y simplemente ejecutará el comando sin abrir el terminal.
Editar: esto no funciona a veces, no sé qué está controlando qué emulador de terminal se usa cuando abres vim.
Acabo de encontrar otra solución para este problema: cree un enlace simbólico con el nombre xtermen $PATHsu propio emulador de terminal. Sin embargo, no puedo garantizar que esto funcione para todos.
La ventaja de esta solución alternativa es que no es necesario cambiar ningún archivo de entrada del escritorio. Todos los archivos .desktop Terminal=trueutilizarán el nuevo emulador de terminal.
Al intentar ejecutar una entrada de escritorio con exo-open(similar a xdg-open, de xfce), aparece un mensaje de advertencia
sh: line 0: exec: xterm: not found
 
     Así que supongo que xtermestá codificado en el programa para abrir archivos .desktop. Entonces traté de hacer este enlace simbólico
ln -s /usr/bin/st ~/.local/bin/xterm
 
     y funciona perfectamente.
Sin embargo, el comando real generado probablemente se basa en xtermlos argumentos de ', por lo que solo funcionan los emuladores de terminal que usan el mismo argumento para especificar el comando de inicio. Un ejemplo contrario es termite, ya que requiere que todo el comando se cite en la -eopción.