Ikon path dalam file .desktop

11

Di desktop saya, saya memiliki file .desktop. Jika saya mengetik:

Icon=/home/ianbell/Pictures/myLogo.png

ikon perubahan file .desktop (hasil yang diharapkan).

Tapi, jika saya mengetik:

Icon=~/Pictures/myLogo.png

itu tidak bekerja.

Bukan ~/untuk jalan pintas /home/$USER?

Yakub Vlijm
sumber
1
~ kependekan dari direktori home Anda hanya di shell.
user253751
@JacobVlijm: maaf, saya tertidur, saya pemrograman siang malam :-)
1
@IanBell Haha, aku tahu perasaan itu :)
Jacob Vlijm
/ home / $ USER tidak akan berfungsi. Tampaknya Anda mencari - / home / $ (whoami). Lihat komentar saya di bawah ini.
Ajay Kumar

Jawaban:

10

Penggunaan jalur dalam file .desktop

Dalam sebuah .desktopfile, Anda harus menggunakan jalur absolut dan penuh . Karena ~itu tidak diperluas.

Ini adalah kesalahan yang biasa dilakukan :)

Pengecualian terkait ikon dijelaskan di sini :

Ikon yang akan ditampilkan di pengelola file, menu, dll. Jika namanya adalah jalur absolut, file yang diberikan akan digunakan. Jika namanya bukan jalur absolut, algoritme yang dijelaskan dalam Spesifikasi Tema Ikon akan digunakan untuk menemukan ikon tersebut.

dan di sini :

Bidang ikon adalah ikon yang harus digunakan oleh peluncur dan mewakili aplikasi. Semua ikon yang berada di bawah direktori /usr/share/pixmapstidak perlu memiliki path lengkap mereka ditentukan, tetapi nama file mereka tanpa ekstensi. Misalnya, jika file ikonnya adalah /usr/share/pixmaps/wallch.png, maka bidang Ikon harus hanya 'wallch'. Semua ikon lain harus ditentukan path lengkapnya.

Informasi lebih lanjut

Dalam sebuah .desktopfile:

Dalam Icon=line, Anda akan diizinkan untuk ruang digunakan:

Icon=/home/jacob/Thema/icon/some folder/some icon.png

baik-baik saja.

Namun

Pada Exec=baris tersebut, Anda tidak diperbolehkan menggunakan spasi, kecuali jika terjadi pertengkaran . Dalam semua kasus lain, Anda perlu mengutip langkah-langkah path dengan spasi:

Exec=/home/jacob/Bureaublad/some folder/application

akan gagal, sementara

Exec="/home/jacob/Bureaublad/some folder/application"

atau

Exec=/home/jacob/Bureaublad/"some folder"/application

akan bekerja dengan baik

Yakub Vlijm
sumber
Jadi bagaimana cara mereferensikan jalur relatif ke "direktori home pengguna"?
Aaron Franke
Aaron Franke, Anda dapat menggunakan $ (whoami) untuk mendapatkan nama pengguna saat ini. Saya belum mencoba tetapi ini harus bekerja - untuk dir home untuk pengguna saat ini - / home / $ (whoami).
Ajay Kumar
Saya mencoba dan berhasil Aaron.
Ajay Kumar
4

Singkatnya, path .desktopfile Icon=memahami path absolut, tetapi tidak untuk ekspansi, karena spesifikasi yang menentukan bagaimana .desktopfile seharusnya bekerja.

Ekspansi Tilde

  • Di mana Anda akan melihat tilde ( ~) ekspansi ke $HOMEvariabel lingkungan sering misalnya di bash, yang merupakan shell login yang biasa Anda berinteraksi dengan pada command prompt
  • bash, dan cangkang yang sesuai dengan POSIX lainnya, lakukan ekspansi tilde-to- $ HOME yang konsisten dengan spesifikasi POSIX untuk cangkang

file .desktop

  • Namun, .desktopfile bukan hal yang sama dengan shell, itu adalah file konfigurasi teks biasa sehingga tidak harus bekerja dengan cara yang sama, bahkan jika .desktopfile dan shell keduanya dapat ditemukan di Linux
  • bagaimana .desktopfile seharusnya bekerja, didefinisikan dalam Spesifikasi Entri Desktop Freedesktop

Spesifikasi Entri Desktop, mengenai Icons, mengatakan:

Jika nama adalah jalur absolut, file yang diberikan akan digunakan.

Inilah sebabnya mengapa Anda dapat menggunakan jalur absolut, karena dicakup oleh spesifikasi

Jika namanya bukan jalur absolut, algoritme yang dijelaskan dalam Spesifikasi Tema Ikon akan digunakan untuk menemukan ikon tersebut.

Ketika kami memeriksa Spesifikasi Tema Ikon , tidak ada yang mengatakan bahwa ia harus mengikuti ekspansi tilde POSIX sama sekali.

Ringkasan

Dengan demikian, karena spesifikasi Freedesktop mengenai .desktop's Icon=pengaturan, path absolut yang didukung, tetapi karena Anda menemukan, POSIX tilde-to $ HOME ekspansi tidak.

clarity123
sumber