ฉันจะลบรายการเมนูเริ่มต้นกำพร้าได้อย่างไร


14

ด้วยเหตุผลบางอย่างฉันมีรายการเมนูเริ่มต้นด้านซ้ายจากแอปพลิเคชัน (เช่น Gnome Do, Synapse, Leafpad) และสงสัยว่ามีวิธีลบรายการเด็กกำพร้าทั้งหมดสำหรับแอปพลิเคชันที่ไม่ได้ติดตั้งอีกต่อไปหรือไม่

คำตอบ:


33

คุณสามารถใช้คำสั่งต่อไปนี้เพื่อแสดงรายการไอคอนแอปพลิเคชันที่ลิงก์ไปยังโปรแกรมที่ไม่มีอยู่:

for i in {/usr,~/.local}/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || echo $i; done

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

for i in ~/.local/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || trash $i; done

หรือแน่นอนเรียกดู~/.local/share/applications/ใน Nautilus และถังขยะผ่านอินเทอร์เฟซแบบกราฟิก


นั่นเป็นเคล็ดลับ! ฉันสามารถเปลี่ยนให้เป็นทางลัดที่ฉันสามารถเรียกใช้เมื่อสิ่งนั้นเกิดขึ้นอีกครั้งหรือไม่
Alan

3

หากตามเมนูเริ่มคุณหมายถึงเมนู 'แอปพลิเคชัน' คุณสามารถแก้ไขได้โดยไปที่: ระบบ -> การตั้งค่า -> เมนูหลัก

คุณสามารถเพิ่มจัดเรียงใหม่แก้ไขและลบรายการได้ตามต้องการ


สวัสดี Eugenio ถูกต้อง แต่ฉันต้องผ่านแต่ละคนยืนยันว่าเป็นเด็กกำพร้าจริง ๆ หรือไม่แล้วลบ ฉันกำลังมองหาวิธีที่จะทำสิ่งนี้ให้ฉันทั้งหมดเนื่องจากฉันมีรายการมากกว่า 40 รายการที่ฉันต้องการลบ
อลัน

อาจเป็นคำตอบที่เป็นมิตรมากที่สุด +1
tir38

3

เมื่อถอนการติดตั้งแอปพลิเคชั่นควรลบรายการเมนูที่ติดตั้งไว้ และใช้วิธีนี้กับเครื่องของฉัน

ถ้ามันทำงานแตกต่างกันมันเป็นข้อผิดพลาดของแพคเกจเฉพาะหรือปัญหาในระบบของคุณ ฉันไม่อยากเชื่อว่าคุณมีเด็กกำพร้ามากกว่า 40 คน มันจะเป็นอาการของปัญหา


มันแปลกมากฉันไม่เคยมีปัญหานี้จนกว่าฉันจะอัพเกรดเป็น Natty Narwhal ฉันอาจลดระดับเป็น 10.04LTS และรอสักครู่จนกว่า 11.04 จะไม่มีข้อผิดพลาดอีกเล็กน้อย
Alan

มีโปรแกรมที่ติดตั้งเอง แต่ไม่มีตัวติดตั้งจริง พวกเขาได้รับกำพร้าถ้าไบนารีถูกย้าย
Pointy

2

อันนี้ยาก แต่ฉันต้องการอย่างน้อยก็เพื่อบอกคุณว่าปัญหาคืออะไร

Gnome เก็บแอปพลิเคชันที่ติดตั้งไว้ใน / usr / share / แอปพลิเคชันด้วยไฟล์ที่ลงท้ายด้วย. desktop (ดังนั้นโปรแกรม vlc จะถูกเรียกใช้โดย vlc.desktop)

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

อันนั้นอยู่นอกขอบเขตของฉันนิดหน่อยเพราะทุกคำสั่ง (dpkg, apt-get, ฯลฯ .. ) จะกลับทางออกที่ดีเสมอเมื่อพวกเขาบอกว่าไม่ได้ติดตั้งแพ็คเกจดังนั้นเราต้องอ่านทางออกจากแอพนั้นเพื่อค้นหา String (fi "ไม่ได้ติดตั้ง") ตรวจสอบและถ้ามี String อยู่หมายความว่าแอปพลิเคชันไม่ได้ติดตั้งและสามารถลบ .desktop ได้

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

ฉันหวังว่านี่จะช่วยได้บ้าง


สวัสดีเดวิดขอบคุณสำหรับความช่วยเหลือของคุณ! เคล็ดลับเกี่ยวกับการเข้าสู่ / usr / share / applications นั้นแน่นอนว่าเป็นการประหยัดเวลาเมื่อเทียบกับการลบลิงค์ที่เสียหายทีละรายการในเครื่องมือแก้ไขเมนู
Alan

0

ทางเลือก:

ทำตามคำตอบ @ ændrükต่อไปนี้เป็นโซลูชันที่คล้ายกันที่สนับสนุนช่องว่างในพา ธ และโฟลเดอร์ย่อยซึ่งสามารถใช้กับโฟลเดอร์เฉพาะหรือทั้งดิสก์เพื่อค้นหา.desktopไฟล์ที่เสียหาย(ทางลัด)

find {/usr,~/.local,/usr/local,}/share/applications/ -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line;  done

สำหรับดิสก์ทั้งหมด

find / -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line;  done

หมายเหตุ:วิธีการใด ๆ ที่สามารถแสดงการตรวจสอบเป็นบวกเท็จพบไฟล์สองครั้งก่อนที่จะลบพวกเขา


0

นี่อาจเป็นคำถามที่โพสต์เก่า แต่ฉันคิดว่าฉันควรจะพูดสอดต่อไปเนื่องจากฉันมีปัญหาเดียวกัน แต่ไม่มีคำแนะนำเหล่านี้ทำงาน แต่ฉันพบว่าบนอินเทอร์เน็ตเป็นคนฉลาดมากที่รู้จักโปรแกรมที่เรียกว่า Alacarte (แก้ไขเมนู GNOME ง่าย ๆ ) โปรแกรมที่ติดตั้งโดยใช้ตัวจัดการซอฟต์แวร์และฉันก็ตื่นเต้นที่มันยังคงมีอยู่เพราะมันใช้การติดตั้งเป็นค่าเริ่มต้น แต่ไม่ใช่ตอนนี้และไม่ใช่โปรแกรมที่รู้จักกันดี แต่ฉันดีใจที่มันยังมีให้ผ่านทางตัวจัดการซอฟต์แวร์และ ใช้งานง่ายมากเพียงคลิกที่เพื่อไฮไลต์รายการโปรแกรมที่ถอนการติดตั้งที่คุณต้องการกำจัดแล้วคลิกลบทางด้านขวาและทำเสร็จแล้ว อาจจะช่วยได้ถ้าคำแนะนำอื่น ๆ เหล่านี้ไม่เหมาะกับคุณ

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