เส้นทางไอคอนในไฟล์ .desktop


11

บนเดสก์ท็อปฉันมีไฟล์ .desktop ถ้าฉันพิมพ์:

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

ไอคอนของไฟล์ .desktop เปลี่ยนไป (ผลลัพธ์ที่คาดหวัง)

แต่ถ้าฉันพิมพ์:

Icon=~/Pictures/myLogo.png

มันไม่ทำงาน

ไม่ใช่~/ทางลัด/home/$USERใช่มั้ย


1
~ สั้นสำหรับไดเรกทอรีบ้านของคุณเฉพาะในเปลือก
user253751

@JacobVlijm: ขอโทษฉันเผลอหลับฉันกำลังเขียนโปรแกรมทั้งกลางวันและกลางคืน :-)

1
@IanBell ฮ่าฮ่าฉันรู้แล้วว่ารู้สึก :)
Jacob Vlijm

/ home / $ USER ไม่ทำงาน ดูเหมือนว่าคุณกำลังมองหา - / home / $ (whoami) ดูความคิดเห็นของฉันด้านล่าง
Ajay Kumar

คำตอบ:


10

การใช้พา ธ ในไฟล์ .desktop

ใน.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

จะทำงานได้ดี


ดังนั้นฉันจะอ้างอิงเส้นทางที่สัมพันธ์กับ "ไดเรกทอรีบ้านของผู้ใช้" ได้อย่างไร
Aaron Franke

Aaron Franke คุณสามารถใช้ $ (whoami) เพื่อรับชื่อผู้ใช้ปัจจุบัน ฉันไม่ได้ลอง แต่สิ่งนี้ควรใช้งานได้ - สำหรับผู้ใช้ที่บ้านสำหรับผู้ใช้ปัจจุบัน - / home / $ (whoami)
Ajay Kumar

ฉันลองแล้วก็ใช้งานได้แอรอน
Ajay Kumar

4

ในระยะสั้นเส้นทาง.desktopของไฟล์Icon=เข้าใจเส้นทางที่แน่นอน แต่ไม่ขยายตัวหนอนเนื่องจากข้อกำหนดที่กำหนดว่า.desktopไฟล์ควรจะทำงาน

การขยายตัวของตัวหนอน

  • ที่ที่คุณจะเห็น~การขยายตัวของtilde ( ) ไปยัง$HOMEตัวแปรสภาพแวดล้อมมักจะเป็นเช่นใน bash ซึ่งเป็นเชลล์การเข้าสู่ระบบปกติที่คุณโต้ตอบด้วยบนพร้อมท์คำสั่ง
  • bash และเชลล์ที่เข้ากันได้กับPOSIXอื่น ๆ ทำการขยาย tilde-to- $ HOME ตามข้อกำหนด POSIX สำหรับเชลล์

ไฟล์ .desktop

  • อย่างไรก็ตาม.desktopไฟล์ไม่ได้เป็นสิ่งเดียวกันกับเชลล์มันเป็นไฟล์การกำหนดค่าข้อความธรรมดาดังนั้นจึงไม่จำเป็นต้องทำงานแบบเดียวกันแม้ว่า.desktopไฟล์และเชลล์จะสามารถพบได้บน Linux
  • วิธีการ.desktopที่ไฟล์ควรทำงานถูกกำหนดในข้อกำหนดรายการ Desktopของ Freedesktop

ข้อกำหนดรายการเดสก์ท็อปเกี่ยวกับIconsพูดว่า:

หากชื่อเป็นพา ธ สัมบูรณ์ไฟล์ที่กำหนดจะถูกใช้

นี่คือสาเหตุที่คุณสามารถใช้พา ธ สัมบูรณ์ได้เนื่องจากข้อมูลจำเพาะครอบคลุมอยู่

หากชื่อนั้นไม่ใช่พา ธ สัมบูรณ์อัลกอริธึมที่อธิบายไว้ในข้อมูลจำเพาะของชุดรูปแบบไอคอนจะถูกใช้เพื่อค้นหาไอคอน

เมื่อเราตรวจสอบข้อกำหนดของชุดรูปแบบไอคอนไม่มีอะไรที่บอกว่ามันจะต้องทำตามการขยายตัวของตัวหนอนของ POSIX เลย

สรุป

ดังนั้นเนื่องจากข้อกำหนดเกี่ยวกับการ Freedesktop ทำให้.desktop's Icon=ตั้งค่าเส้นทางที่แน่นอนได้รับการสนับสนุน แต่เป็นคุณพบตัวหนอน POSIX-to-ขยาย $ HOME ไม่ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.