เป็นไปได้หรือไม่ที่จะทำให้ตัวบ่งชี้ - แอปmenuละเว้นแอปพลิเคชันเฉพาะ


40

ตัวบ่งชี้ -appmenu ใหม่ในไม่ฝักใฝ่ฝ่ายใดแบ่งเมนู LyX: เมนูแอปพลิเคชันจะไม่แสดงในหน้าต่างแอปพลิเคชันหรือในแอปเพล็ต (ดูรายงานข้อผิดพลาด )

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


คำตอบในปัจจุบันไม่สามารถใช้กับ Ubuntu 12.10 ได้ หากใครบางคนสามารถใส่ความโปรดปรานนี้ฉันจะขอบคุณ ฉันเพิ่มความโปรดปราน +100 และไม่ได้รับคำตอบ
Flimm

มันใช้งานได้สำหรับฉัน (บน 12.10) - ฉันรู้ว่ามันไม่ค่อยมีประโยชน์ แต่อาจตอบว่าทำไมไม่มีใครตอบคุณเพราะมันอาจเป็นสิ่งที่แปลกใหม่สำหรับระบบของคุณ อาจลองรายงานว่าเป็นข้อผิดพลาด
sup

คำตอบ:


40

เรียกใช้แอปพลิเคชัน

  • ในการเริ่มต้นแอปพลิเคชัน (เช่น. gcalctool) ด้วยเมนูภายในแอปพลิเคชั่นแทนที่จะอยู่ในพาเนลให้รันสิ่งต่อไปนี้ในเทอร์มินัล:

    UBUNTU_MENUPROXY= gcalctool
    

    ในการเริ่มต้นแอปพลิเคชันโดยเปิดใช้งานเมนูในแอปพลิเคชันและแผงควบคุมให้รัน:

    APPMENU_DISPLAY_BOTH=1 gcalctool
    
  • แทนที่จะใช้เทอร์มินัลคุณสามารถใช้ปุ่มลัดAlt+ F2เพื่อเริ่มกล่องโต้ตอบเรียกใช้ซึ่งคุณจะต้องป้อน:

    env UBUNTU_MENUPROXY= gcalctool
    

    หรือ

    env UBUNTU_DISPLAY_BOTH=1 gcalctool
    

แก้ไขโปรแกรมเรียกใช้งานใน Ubuntu 10.10

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

  • Gnome-panel และ desktop: เพียงคลิกขวาที่ตัวเรียกใช้เลือก "Properties" และเติมenv UBUNTU_MENUPROXY=หรือenv UBUNTU_DISPLAY_BOTH=1ค่าในฟิลด์ "Command": (ที่มา: xrmb2.net )


  • เมนู: คลิกขวาที่เมนูและเลือก "แก้ไขเมนู" ในหน้าต่างใหม่ค้นหาตัวเรียกใช้ที่คุณต้องการแก้ไขและคลิกปุ่ม "คุณสมบัติ" ทางด้านขวา อีกครั้งเพียงเติมตัวแปรเช่นข้างต้น (อย่าลืม 'env') คลิกที่ "ปิด" สองครั้งและคุณควรจะทำ

แก้ไขตัวเรียกใช้งานใน Unity-based Compiz ใน Ubuntu 11.04

  • วิธีสกปรก: เปลี่ยนไฟล์ .desktop ของตัวเรียกใช้งานใน/usr/share/applicationsไดเรกทอรี:

    • ตัวอย่างเช่นเรียกใช้

      gksudo gedit /usr/share/applications/gcalctool.desktop
      
    • ตอนนี้แก้ไขExec=-line เพื่อให้มีหนึ่งในสองตัวแปรจากด้านบนเช่น:

      Exec=env UBUNTU_MENUPROXY= gcalctool
      
    • บันทึกไฟล์และเรียกใช้ gcalctool จากแถบตัวเรียกใช้ของ Unity ควรรันด้วยเมนูภายในแอปพลิเคชัน

    ข้อเสียของวิธีนี้: จะเปลี่ยนตัวเรียกใช้งานสำหรับผู้ใช้ทั้งหมดและอาจถูกเปลี่ยนกลับโดยการอัปเดตระบบ

  • วิธีที่ดีกว่า:

    • หากเพิ่มแล้วให้เลิกตรึงตัวเรียกใช้งานจากแถบตัวเรียกใช้งาน
    • คัดลอกไฟล์ .desktop ที่เกี่ยวข้องไปยังไดเรกทอรีบ้านของคุณ:

      cp /usr/share/applications/gcalctool.desktop ~/.local/share/applications
      
    • เช่นเดียวกับวิธีการด้านบนแก้ไขExec=-line เพื่อให้มีหนึ่งในสองตัวแปร:

      Exec=env UBUNTU_MENUPROXY= gcalctool
      
    • ทำให้ไฟล์ปฏิบัติการ:

      chmod +x ~/.local/share/applications/gcalctools.desktop
      
    • เริ่ม Nautilus ในโฟลเดอร์นั้นและดับเบิลคลิกไฟล์. desktop (ซึ่งควรอ่าน "เครื่องคิดเลข" ในตัวอย่าง):

      nautilus ~/.local/share/applications
      
    • ตอนนี้คุณควรเห็นไอคอนตัวเรียกใช้งานในแถบตัวเรียกใช้ - ปักหมุดผ่านทางรายการด่วนแล้วเสร็จ


หมายเหตุ:เพื่อให้การทำงานข้างต้นด้วยโปรแกรมของ KDE แทนที่ด้วยUBUNTU_MENUPROXY=QT_X11_NO_NATIVE_MENUBAR=1


2
งานนี้ขอบคุณ ฉันได้เรียนรู้ว่า QT_X11_NO_NATIVE_MENUBAR = 1 ใช้ได้
topyli

น่าสนใจที่จะทราบว่าคุณใช้ ALT + F2 ซึ่งไม่พร้อมใช้งานใน Natty กับ Unity และเราไม่มีวิธีการดูแลรักษารายการตัวเรียกใช้กราฟิกใน Natty ดังนั้นคุณต้องใช้วิธีสกปรก :(
popey

1
@popey: ใน compizconfig ของฉัน natty, "Run command" สำหรับ Ubuntu Unity Plugin มีค่าเริ่มต้นเป็น Alt-F2 นั่นไม่ได้ผลสำหรับคุณ? ถ้าเป็นเช่นนั้นให้ลองปิดการใช้งานทางลัดใน Gnome Compatibility
idbrii

คุณสามารถทำ "แก้ไขเมนู" ใน 11.04 ค้นหาเมนูในประและเลือก "เมนูหลัก" หรือการใช้ Alt-F2 alacarteเพื่อวิ่ง
idbrii

วิธีนี้ใช้กับ Ubuntu 12.10 ได้ไหม?
Flimm

4

การทำงานอื่น ๆ ที่จะไม่ให้เมนูสองรายการแก่คุณคือเริ่มต้น LyX ด้วย:

UBUNTU_MENUPROXY= lyx

การยกเลิกการตั้งค่าตัวแปรสภาพแวดล้อม UBUNTU_MENUPROXY จะไม่สนใจ appmenu อย่างสมบูรณ์


4

ที่ควรจะเป็น:

#!/bin/sh
export APPMENU_DISPLAY_BOTH=1
exec lyx

เพื่อกำจัดกระบวนการเชลล์ที่ยังคงอยู่


1

ฉันสร้างเชลล์สคริปต์ชื่อ "lyx_unity" ซึ่งเรียกใช้งาน APPMENU_DISPLAY_BOTH = 1 ก่อนหน้า lyx และแก้ไขรายการเมนูเพื่อให้เรียกใช้งาน "lyx_unity" แทนที่จะเป็น "lyx"


สคริปต์มีลักษณะอย่างไร ฉันไม่คุ้นเคย คุณช่วยกรุณาโพสต์ได้ไหม

1

@waluylo, (และอาจเป็น Robert ของฉันด้วย) lyx wrapper มีลักษณะเช่นนี้

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