Đường dẫn biểu tượng trong tệp .desktop


11

Trên máy tính để bàn của tôi, tôi có một tập tin .desktop. Nếu tôi gõ:

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

biểu tượng của tệp .desktop thay đổi (kết quả mong đợi).

Nhưng, nếu tôi gõ:

Icon=~/Pictures/myLogo.png

nó không hoạt động.

Không phải là ~/một phím tắt cho /home/$USER?


1
~ là viết tắt của thư mục nhà của bạn chỉ trong một vỏ.
dùng253751

@JacobVlijm: xin lỗi, tôi ngủ thiếp đi, tôi đang lập trình cả ngày lẫn đêm :-)

1
@IanBell Haha Tôi biết cảm giác :)
Jacob Vlijm

/ home / $ USER sẽ không hoạt động. Có vẻ như bạn đang tìm kiếm - / home / $ (whoami). Xem những bình luận của tôi bên dưới.
Ajay Kumar

Câu trả lời:


10

Việc sử dụng các đường dẫn trong tệp .desktop

Trong một .desktoptệp, bạn cần sử dụng đường dẫn tuyệt đốiđầy đủ . Do đó ~không được mở rộng.

Đây là một lỗi thường gặp :)

Các ngoại lệ liên quan đến các biểu tượng được mô tả ở đây :

Biểu tượng để hiển thị trong trình quản lý tệp, menu, v.v ... Nếu tên là một đường dẫn tuyệt đối, tệp đã cho sẽ được sử dụng. Nếu tên không phải là một đường dẫn tuyệt đối, thuật toán được mô tả trong Đặc tả chủ đề biểu tượng sẽ được sử dụng để định vị biểu tượng.

ở đây :

Trường biểu tượng là biểu tượng nên được sử dụng bởi trình khởi chạy và đại diện cho ứng dụng. Tất cả các biểu tượng trong thư mục /usr/share/pixmapskhông cần phải có đường dẫn đầy đủ được chỉ định, nhưng tên tệp của chúng không có phần mở rộng. Ví dụ: nếu tệp biểu tượng là /usr/share/pixmaps/wallch.png, thì trường Biểu tượng sẽ chỉ là 'wallch'. Tất cả các biểu tượng khác nên có đường dẫn đầy đủ được chỉ định.

Thêm thông tin

Trong một .desktoptập tin:

Trong Icon=dòng, bạn được phép sử dụng khoảng trắng:

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

Ổn.

Tuy nhiên

Trong Exec=dòng, bạn không được phép sử dụng khoảng trắng, trừ khi trong trường hợp có đối số . Trong tất cả các trường hợp khác, bạn cần trích dẫn các bước đường dẫn với khoảng trắng:

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

sẽ thất bại, trong khi

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

hoặc là

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

sẽ hoạt động tốt


Vậy làm cách nào để tôi tham chiếu một đường dẫn liên quan đến "thư mục chính của người dùng"?
Aaron Franke

Aaron Franke, bạn có thể sử dụng $ (whoami) để có tên người dùng hiện tại. Tôi chưa thử nhưng điều này sẽ hoạt động - đối với thư mục nhà cho người dùng hiện tại - / home / $ (whoami).
Ajay Kumar

Tôi đã thử và nó hoạt động Aaron.
Ajay Kumar

4

Nói tóm lại, đường dẫn .desktopcủa tệp Icon=hiểu các đường dẫn tuyệt đối, nhưng không mở rộng dấu ngã, vì đặc tả xác định cách .desktopcác tệp được cho là hoạt động.

Mở rộng dấu ngã

  • Trường hợp bạn sẽ thấy ~mở rộng tilde ( ) cho $HOMEbiến môi trường thường là ví dụ trong bash, đây là vỏ đăng nhập thông thường mà bạn tương tác với dấu nhắc lệnh
  • bash và các shell tương thích POSIX khác, thực hiện mở rộng Tilde-to- $ HOME phù hợp với đặc tả POSIX cho các shell

tập tin .desktop

  • Tuy nhiên, một .desktoptệp không giống với shell, nó là một tệp cấu hình văn bản đơn giản nên nó không nhất thiết phải hoạt động theo cùng một cách, ngay cả khi .desktopcác tệp và shell đều có thể được tìm thấy trên Linux
  • Làm thế nào để một .desktoptập tin của một hoạt động, được định nghĩa trong Đặc tả mục nhập máy tính để bàn của Freedesktop

Thông số kỹ thuật của máy tính để bàn, liên quan Icons, nói:

Nếu tên là một đường dẫn tuyệt đối, tệp đã cho sẽ được sử dụng.

Đây là lý do tại sao bạn có thể sử dụng các đường dẫn tuyệt đối, vì nó được bao phủ bởi thông số kỹ thuật

Nếu tên không phải là một đường dẫn tuyệt đối, thuật toán được mô tả trong Đặc tả chủ đề biểu tượng sẽ được sử dụng để định vị biểu tượng.

Khi chúng tôi kiểm tra Đặc tả chủ đề biểu tượng , không có gì nói rằng nó phải tuân theo mở rộng dấu ngã của POSIX cả.

Tóm lược

Do đó, do các thông số kỹ thuật của Freedesktop liên quan đến cài đặt .desktopcủa nó Icon=, các đường dẫn tuyệt đối được hỗ trợ, nhưng như bạn đã tìm thấy, bản mở rộng POSIX tilde-to- $ HOME thì không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.