ฉันจะเพิ่มแอปพลิเคชันในเครื่องมือจัดการหน้าต่าง GNOME ได้อย่างไร


50

เอกสารบนเครื่อง GNOME ครอบคลุมเฉพาะสิ่งที่ทุกคนสามารถเดาได้ง่าย ฉันมีแอปพลิเคชันสำหรับที่ฉันสามารถเริ่มต้นจากบรรทัดคำสั่งเท่านั้น ไม่ใช่ว่าฉันจะใช้เครื่องเทอร์มินัล แต่ ...

อย่างไรก็ตามฉันจะเพิ่มคำสั่ง (และควรมีโลโก้ที่ดี) ลงใน GNOME WM ได้อย่างไร


หากคุณคลิกขวาคุณจะได้รับรายการ "เมนูแก้ไข" หรือไม่?
slm

ไม่ไม่มีเมนูคลิกขวาเลย
mart

1
GNOME เป็นสภาพแวดล้อมเดสก์ทอปไม่จัดการหน้าต่าง เครื่องมือจัดการหน้าต่างใน GNOME 2.x เรียกว่าMetacityและ GNOME3 ใช้ตัวจัดการหน้าต่างแบบผสมชื่อว่าMutter
Thomas Nyman

คำตอบ:


89

ในGNOMEและอื่น ๆ ที่freedesktop.orgสภาพแวดล้อมเดสก์ทอปที่เทียบเท่าเช่นKDEและความเป็นเอกภาพในการใช้งานจะมีการเพิ่มเมนูสก์ท็อปหรือเปลือกสก์ท็อปผ่านทางรายการสก์ท็อปที่กำหนดไว้ในแฟ้มข้อความที่มี.desktopส่วนขยาย (เรียกว่าไฟล์สก์ท็อป ) สภาพแวดล้อมเดสก์ท็อปสร้างเมนูสำหรับผู้ใช้จากข้อมูลรวมที่แยกออกมาจากรายการเดสก์ทอปที่มีอยู่

ไฟล์เดสก์ท็อปอาจถูกสร้างขึ้นในสองแห่ง:

  • /usr/share/applications/ สำหรับรายการเดสก์ท็อปที่มีให้กับผู้ใช้ทุกคนในระบบ
  • ~/.local/share/applications/ สำหรับรายการเดสก์ท็อปที่มีให้สำหรับผู้ใช้คนเดียว

คุณอาจต้องรีสตาร์ท GNOME เพื่อให้แอปพลิเคชันที่เพิ่มใหม่ทำงานได้

ตามแบบแผนไฟล์เดสก์ท็อปไม่ควรมีช่องว่างหรืออักขระสากลในชื่อ

ไฟล์เดสก์ท็อปแต่ละไฟล์จะถูกแบ่งออกเป็นกลุ่มแต่ละไฟล์เริ่มต้นด้วยส่วนหัวกลุ่มในวงเล็บเหลี่ยม ( []) แต่ละส่วนมีจำนวนของคีย์ , ค่าคู่แยกจากกันโดยเครื่องหมายเท่ากับ ( =)

ด้านล่างนี้เป็นตัวอย่างของไฟล์เดสก์ท็อป:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Application Name
Comment=Application description
Icon=/path/to/icon.xpm
Exec=/path/to/application/executable
Terminal=false
Categories=Tags;Describing;Application

คำอธิบาย

  • [Desktop Entry]Desktop Entryส่วนหัวของกลุ่มระบุไฟล์เป็นรายการสก์ท็อป
  • Type ประเภทของรายการค่านิยมที่ถูกต้องApplication, LinkและDirectory
  • Encoding การเข้ารหัสอักขระของไฟล์เดสก์ท็อป
  • Name ชื่อแอปพลิเคชันที่มองเห็นได้ในเมนูหรือตัวเรียกใช้งาน
  • Comment คำอธิบายของแอปพลิเคชันที่ใช้ในคำแนะนำเครื่องมือ
  • Icon ไอคอนที่แสดงสำหรับแอปพลิเคชันในเมนูหรือตัวเรียกใช้
  • Exec คำสั่งที่ใช้เพื่อเริ่มแอปพลิเคชันจากเชลล์
  • Terminal ไม่ว่าจะเป็นแอปพลิเคชันที่ควรรันในเทอร์มินัลค่าที่ใช้ได้คือtrueหรือfalse
  • Categories เซมิโคลอน ( ;) รายการที่คั่นของหมวดหมู่เมนูที่ควรแสดงรายการ

อาร์กิวเมนต์บรรทัดคำสั่งในExecคีย์สามารถระบุด้วยตัวแปรต่อไปนี้:

  • %f ชื่อไฟล์เดียว
  • %F ชื่อไฟล์หลายรายการ
  • %u URL เดียว
  • %U หลาย URL
  • %d ไดเรกทอรีเดียว ใช้ร่วมกับ%fเพื่อค้นหาไฟล์
  • %D หลายไดเรกทอรี ใช้ร่วมกับ%Fเพื่อค้นหาไฟล์
  • %n ชื่อไฟล์เดียวที่ไม่มีเส้นทาง
  • %N ชื่อไฟล์หลายรายการโดยไม่มีเส้นทาง
  • %k URI หรือชื่อไฟล์ท้องถิ่นของตำแหน่งของไฟล์เดสก์ท็อป
  • %v ชื่อของรายการอุปกรณ์

โปรดทราบว่า~หรือตัวแปรสภาพแวดล้อมเช่น$HOMEนั้นไม่ได้ถูกขยายภายในไฟล์เดสก์ท็อปดังนั้นไฟล์อ้างอิงที่เรียกใช้งานจะต้องอยู่ใน$PATHหรืออ้างอิงผ่านพา ธ สัมบูรณ์

เต็มรูปแบบเดสก์ท็ข้อมูลจำเพาะรายการที่มีอยู่ในGNOME Dev ศูนย์

เรียกใช้สคริปต์

หากแอปพลิเคชันที่จะเปิดใช้ต้องใช้ขั้นตอนบางอย่างก่อนที่จะเรียกใช้คุณสามารถสร้างเชลล์สคริปต์ที่เรียกใช้แอปพลิเคชันและชี้รายการเดสก์ท็อปไปยังเชลล์สคริปต์ สมมติว่าแอปพลิเคชันต้องการให้เรียกใช้จากไดเรกทอรีการทำงานปัจจุบันบางอย่าง สร้างสคริปต์เรียกใช้ในตำแหน่งที่เหมาะสม ( ~/bin/ตัวอย่าง) สคริปต์อาจมีลักษณะดังนี้:

#!/bin/bash
pushd "/path/to/application/directory"
./application "$@"
popd

ตั้งค่าบิตปฏิบัติการสำหรับสคริปต์:

$ chmod +x ~/bin/launch-application

จากนั้นชี้Execคีย์ในรายการเดสก์ท็อปไปที่สคริปต์เรียกใช้

Exec=/home/user/bin/launch-application

ฉันทำอย่างนั้นฉันสามารถเห็นไอคอนภายใต้แอปพลิเคชัน แต่เมื่อฉันคลิกแอพไม่เริ่มขึ้นเคอร์เซอร์จะเปลี่ยนเป็นสัญลักษณ์การโหลดเพียงไม่กี่วินาที ไม่มีข้อความแสดงข้อผิดพลาด
mart

@mart คุณบอกเราได้หรือไม่ว่าแอปพลิเคชันใดที่คุณพยายามเพิ่มตัวเรียกใช้สำหรับ
โทมัสนีแมน

1
FTL - เกมอินดี้ที่ฉันซื้อที่ไหนสักแห่งบนเว็บ เริ่มต้นจากการทำงานของคอนโซล
mart

1
@mart <path>/.FTLจะชี้ไปที่ไฟล์ที่ซ่อน.FTLซึ่งเรียกว่าไม่เหมือนกัน./FTLซึ่งจะชี้ไปที่ไฟล์ที่เรียกว่าFTLในไดเรกทอรีปัจจุบัน คุณสามารถลองเปิดใช้งานFTLผ่าน/full/path/path/to/FTLเทอร์มินัลเพื่อดูว่าคุณได้รับผลลัพธ์ข้อผิดพลาดที่มีความหมายเต็มหรือไม่ ตัวอย่างเช่นหากปฏิบัติการค้นหาไลบรารีในไดเรกทอรีการทำงานปัจจุบันคุณอาจต้องทำสคริปต์เรียกใช้งานซึ่งทำบางสิ่งบางอย่างตามบรรทัดpushd <path>; ./FTL; popdและชี้ตัวExecระบุในไฟล์เดสก์ท็อปไปยังสคริปต์เรียกใช้แทน
โทมัสนิมันแมน

1
การแก้ไข: มันทำงานได้จากภายในไดเรกทอรี
mart

12

คำตอบที่ดีมากจากโทมัสนีมัน

Gnome มาพร้อมกับเครื่องมือ gui ที่gnome-desktop-item-editช่วยในการสร้างไฟล์ * .desktop เราจำเป็นต้องใช้มันจากบรรทัดคำสั่งหรือสร้างไฟล์บนเดสก์ท็อป

คำแนะนำในการสร้างแอปพลิเคชัน Gnome จาก gnome-desktop-item-edit

  1. เปิด windows terminal และพิมพ์คำสั่งต่อไปนี้:

    gnome-desktop-item-edit --create-new / home / [ชื่อผู้ใช้ของคุณ] /. local / share / applications

  2. ในหน้าต่างที่เปิดกรอกข้อมูลต่อไปนี้: ป้อนคำอธิบายรูปภาพที่นี่

    Name: Gnome Applicaiton

    Command: gnome-desktop-item-edit --create-new /home/[your user name]/.local/share/applications

    คลิกที่ไอคอนเพื่อเลือกไอคอนอื่น

  3. คลิกตกลงเพื่อปิดหน้าต่าง

  4. ปิดหน้าต่างเทอร์มินัล

การทดสอบที่สร้างขึ้นใหม่ Gnome Application

  1. เปิดเส้นประ
  2. แอปพลิเคชันประเภท
  3. คุณควรจะเห็นการ Gnome Applicationป้อนก่อน
  4. เลือกมัน
  5. สร้างแอปพลิเคชันอื่น

มันใช้งานได้ดีจริงๆขอบคุณ มีวิธีใดบ้างที่จะเปลี่ยนแอปพลิเคชันใหม่ที่ปรากฏในเมนู Mine ปรากฎใน Applications-> Other
SteveP

0

คำตอบก่อนหน้านี้จาก Thomas Nyman และ Dudi Boy นั้นดีมากและมีรายละเอียด ฉันโพสต์สิ่งนี้เพราะฉันไม่พบคำตอบสำหรับข้อสงสัยของฉันในโพสต์อื่น ๆ และฉันต้องค้นหาในปัญหาคอมไพล์

หลังจากที่ฉันทำตามขั้นตอนอย่างที่ Thomas Nyman แนะนำฉันสามารถทำไอคอนให้โปรแกรมของฉันปรากฏในเมนูแอพได้ ปัญหานี่คือฉันใช้ Dash to Dock เป็นแถบด้านข้างและฉันไม่สามารถปักหมุดไอคอนเป็นรายการโปรดเหมือนไอคอนอื่น ๆ หลังจากค้นหาฉันพบว่าคุณต้องเพิ่มบรรทัดStartupWMClass=ApplicationNameใน.desktopไฟล์ หลังจากนั้นตัวเลือกในการเพิ่มในรายการโปรดจะปรากฏขึ้นโดยคลิกขวาที่ไอคอนใน Dash to Dock

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