
Ubuntu Bionic Beaver 18.04.3 Nautilus 3.26.4 (Archivos)
Los archivos *.desktop en el escritorio o en ~/bin aparecen con elsolicitudy el nombre del archivo se reemplaza por el valor de la clave Nombre del archivo. Al hacer clic en el icono se inicia la aplicación asociada.
Tengo dos archivos, free42dec.desktop y free42bin.desktop, para iniciar la emulación Free42 de la calculadora de polaco inverso HP42. Pero en Nautilus (Archivos), estos archivos todavía se muestran como sus nombres de archivo completos y el ícono de texto genérico, en lugar de como Free42 Decimal y Free42 Binary, con los íconos de calculadora apropiados. Otra rareza es que abrir las Propiedades de estos archivos simplemente muestra el formato básico en la pestaña Básico, pero otros archivos *.desktop que se comportan correctamente muestran el valor de la clave Exec en la pestaña Básico.
No seré el primero en tener este problema con los archivos *.desktop, pero ninguna combinación de términos de búsqueda me dará la respuesta. He probado varios remedios sugeridos, pero ninguno funciona. Entonces, desesperado, aquí está el texto de uno de estos archivos (el otro es similar):
[Desktop Entry]
Version=2.5.17
Name=Free42 Decimal
GenericName=Calculator
Comment=HP42s calculator using decimal number calculations.
Exec=free42dec -skin Realistic
Path=/usr/local/bin
Icon=/usr/share/icons/free42/free42dec.png
Terminal=false
Type=Application
Categories=Utility;Application;
##Define Actions
Actions=Quit;Free42_Binary;
[Desktop Action Quit]
Name=Quit
# Kill all free42bin or free42dec instances currently running
# Exec=pkill free42*
# Kill only free42dec instances
Exec=pkill free42dec
OnlyShowIn=Unity;
[Desktop Action Free42_Binary]
Name=Free42 Binary
# You can start the alternative calc from the right-click menu
Exec=free42bin -skin KD0GLS_Full
OnlyShowIn=Unity;
¿Alguien puede ver un error en estos archivos? Intenté encontrar un analizador o corrector gramatical y la documentación no me ayudó. No parece haber ningún instalador especial para archivos *.desktop.
Respuesta1
Después de investigar aún más, descubrí el comando CLI desktop-file-validate
, que verifica la sintaxis y la estructura de *.desktop
los archivos.
.../usr/share/applications$ desktop-file-validate free42dec.desktop
free42dec.desktop: error: file contains line "?[Desktop Entry]", which is not a comment, a group or an entry
Mira a "?[Desktop Entry]"
. Eso ?
indica que hay un carácter oculto que precede a [
, que resulta ser una marca de orden de bytes (BOM) que indica cómo los sistemas BigEndian y LittleEndian deben leer este archivo UTF-8. Más rendimientos de búsqueda dos2unix
, una utilidad que convierte archivos de texto de Windows al formato UNIX, que puede obtener con
$ sudo apt install dos2unix
Ahora hacer esto:
.../usr/share/applications$dos2unix free42dec.desktop
dos2unix: converting file free42dec.desktop to Unix format...
¡Hurra! Ahora el free42dec.desktop
archivo aparece en Nautilus /usr/share/applications
con la Name
clave Free42 Decimal en lugar del nombre del archivo, y el ícono de texto cambia al ícono Free42 Decimal. Este acceso directo ahora aparece en el Panel de inicio y en el Panel de aplicaciones (descripción general). Copiarlo en el escritorio significa que también puedes hacer clic allí para iniciar la aplicación Free42 Decimal.
El formato, la estructura y la sintaxis de *,desktop
los archivos (iniciador, acceso directo) están documentados enEspecificación de entrada de escritorio.