บนเดสก์ท็อปฉันมีไฟล์ .desktop ถ้าฉันพิมพ์:
Icon=/home/ianbell/Pictures/myLogo.png
ไอคอนของไฟล์ .desktop เปลี่ยนไป (ผลลัพธ์ที่คาดหวัง)
แต่ถ้าฉันพิมพ์:
Icon=~/Pictures/myLogo.png
มันไม่ทำงาน
ไม่ใช่~/
ทางลัด/home/$USER
ใช่มั้ย
บนเดสก์ท็อปฉันมีไฟล์ .desktop ถ้าฉันพิมพ์:
Icon=/home/ianbell/Pictures/myLogo.png
ไอคอนของไฟล์ .desktop เปลี่ยนไป (ผลลัพธ์ที่คาดหวัง)
แต่ถ้าฉันพิมพ์:
Icon=~/Pictures/myLogo.png
มันไม่ทำงาน
ไม่ใช่~/
ทางลัด/home/$USER
ใช่มั้ย
คำตอบ:
ใน.desktop
แฟ้มคุณต้องใช้แน่นอนและเต็มรูปแบบเส้นทาง ดังนั้น~
จะไม่ขยายตัว
นี่เป็นข้อผิดพลาดที่ทำกันทั่วไป :)
มีการอธิบายข้อยกเว้นเกี่ยวกับไอคอนไว้ที่นี่ :
ไอคอนที่จะแสดงในตัวจัดการไฟล์เมนู ฯลฯ หากชื่อเป็นพา ธ สัมบูรณ์ไฟล์ที่กำหนดจะถูกนำมาใช้ หากชื่อนั้นไม่ใช่พา ธ สัมบูรณ์อัลกอริธึมที่อธิบายไว้ในข้อมูลจำเพาะของชุดรูปแบบไอคอนจะถูกใช้เพื่อค้นหาไอคอน
และที่นี่ :
ฟิลด์ไอคอนเป็นไอคอนที่ควรใช้โดยตัวเรียกใช้และแสดงถึงแอปพลิเคชัน ไอคอนทั้งหมดที่อยู่ภายใต้ไดเรกทอรี
/usr/share/pixmaps
ไม่จำเป็นต้องระบุเส้นทางแบบเต็ม แต่ชื่อไฟล์จะไม่มีส่วนขยาย ตัวอย่างเช่นหากไฟล์ไอคอนเป็น/usr/share/pixmaps/wallch.png
เช่นนั้นฟิลด์ไอคอนควรเป็นเพียง 'wallch' ไอคอนอื่น ๆ ทั้งหมดควรมีการระบุเส้นทางแบบเต็ม
ใน.desktop
ไฟล์:
ในIcon=
บรรทัดที่คุณจะได้รับอนุญาตให้พื้นที่ใช้งาน:
Icon=/home/jacob/Thema/icon/some folder/some icon.png
ไม่เป็นไร
อย่างไรก็ตาม
ในExec=
บรรทัดคุณจะไม่ได้รับอนุญาตให้ใช้พื้นที่เว้นแต่ในกรณีที่มีการโต้แย้ง ในกรณีอื่น ๆ ทั้งหมดคุณต้องพูดขั้นตอนเส้นทางด้วยช่องว่าง:
Exec=/home/jacob/Bureaublad/some folder/application
จะล้มเหลวในขณะที่
Exec="/home/jacob/Bureaublad/some folder/application"
หรือ
Exec=/home/jacob/Bureaublad/"some folder"/application
จะทำงานได้ดี
ในระยะสั้นเส้นทาง.desktop
ของไฟล์Icon=
เข้าใจเส้นทางที่แน่นอน แต่ไม่ขยายตัวหนอนเนื่องจากข้อกำหนดที่กำหนดว่า.desktop
ไฟล์ควรจะทำงาน
~
การขยายตัวของtilde ( ) ไปยัง$HOME
ตัวแปรสภาพแวดล้อมมักจะเป็นเช่นใน bash ซึ่งเป็นเชลล์การเข้าสู่ระบบปกติที่คุณโต้ตอบด้วยบนพร้อมท์คำสั่ง.desktop
ไฟล์ไม่ได้เป็นสิ่งเดียวกันกับเชลล์มันเป็นไฟล์การกำหนดค่าข้อความธรรมดาดังนั้นจึงไม่จำเป็นต้องทำงานแบบเดียวกันแม้ว่า.desktop
ไฟล์และเชลล์จะสามารถพบได้บน Linux.desktop
ที่ไฟล์ควรทำงานถูกกำหนดในข้อกำหนดรายการ Desktopของ Freedesktopข้อกำหนดรายการเดสก์ท็อปเกี่ยวกับIcons
พูดว่า:
หากชื่อเป็นพา ธ สัมบูรณ์ไฟล์ที่กำหนดจะถูกใช้
นี่คือสาเหตุที่คุณสามารถใช้พา ธ สัมบูรณ์ได้เนื่องจากข้อมูลจำเพาะครอบคลุมอยู่
หากชื่อนั้นไม่ใช่พา ธ สัมบูรณ์อัลกอริธึมที่อธิบายไว้ในข้อมูลจำเพาะของชุดรูปแบบไอคอนจะถูกใช้เพื่อค้นหาไอคอน
เมื่อเราตรวจสอบข้อกำหนดของชุดรูปแบบไอคอนไม่มีอะไรที่บอกว่ามันจะต้องทำตามการขยายตัวของตัวหนอนของ POSIX เลย
ดังนั้นเนื่องจากข้อกำหนดเกี่ยวกับการ Freedesktop ทำให้.desktop
's Icon=
ตั้งค่าเส้นทางที่แน่นอนได้รับการสนับสนุน แต่เป็นคุณพบตัวหนอน POSIX-to-ขยาย $ HOME ไม่ได้