วิธีการบังคับให้โหลด Unity ~ / .local / share / applications /


66

สมมติว่าผมเปลี่ยน / เพิ่มบางไฟล์ที่myapp.desktop ~/.local/share/applications/บางครั้ง Ubuntu Unity จะยังคงแสดงทางลัดไปยังแอปพลิเคชันเก่า ๆ ที่ Unity lens ภายใต้ปุ่ม Ubuntu จะใช้เวลาสักครู่ (หรือเพียงแค่รีสตาร์ทครั้งเดียว) เพื่อรับรายการแอปพลิเคชันที่อัปเดตที่นั่น

ฉันจะบังคับให้ Unity ทำการรีโหลด~/.local/share/applicationsและสะท้อนให้เห็นถึงทางลัดอย่างถูกต้องในเลนส์ได้อย่างไร?


คุณเคยลองunity --resetไหม
sayantankhan

การแก้ไข unityมันก็ควรจะเป็น กด alt + F2 แล้วพิมพ์คำสั่ง
sayantankhan

ใช่. มันไม่ได้ช่วยอะไร มันยังคงแสดงชื่อแอปพลิเคชันเก่าหลังunityหรือunity --reset(ซึ่งเป็นก่อนที่ฉันจะแก้ไขไฟล์ myapp.desktop)
vladimir

มันดูเหมือนว่าจะทำงานได้ดีเมื่อฉันทำสิ่งเดียวกับที่คุณกำลังทำอยู่ ทำให้แน่ใจว่า.desktopไฟล์นั้นสามารถเรียกใช้งานได้หรือไม่
sayantankhan

มันทำงานได้เฉพาะหลังจากออกจากระบบ / รีสตาร์ท ลองเปลี่ยนชื่อแอพพลิเคชั่นที่มีอยู่ในไฟล์เดสก์ท็อป อย่าเปลี่ยนอะไรอย่างอื่น ตัวอย่างเช่นเพิ่ม "ทดสอบ" ในชื่อของแอพที่มีอยู่บางแอป ตอนนี้กดปุ่ม Ubuntu และเริ่มพิมพ์ชื่อแอปพลิเคชัน - ยังคงแสดงชื่อเดิมโดยไม่ต้อง "ทดสอบ" สำหรับฉัน ฉันทำซ้ำทั้งในบ้านและที่ทำงานและในแล็ปท็อปของภรรยา ฉันคิดว่ามันสามารถทำซ้ำได้ประมาณ 100%
vladimir

คำตอบ:


69

สายเล็กน้อย แต่ฉันก็สะดุดกับหัวข้อนี้ก่อนที่จะหาวิธีแก้ปัญหาของฉันอย่างน้อยก็ไปทำสิ่งที่เกี่ยวข้องกับ googling เกือบจะยอมแพ้

ตามคำแนะนำนี้help.ubuntu.comไม่เพียงแค่แก้ไขหรือสร้าง.desktopไฟล์ในหรือ/usr/local/share/applications ~/.local/share/applicationsให้สร้างไฟล์แทนที่อื่นและใช้แทน

desktop-file-install <your_file.desktop>

เพื่อเพิ่มไฟล์

เช่นคุณสร้าง~/myapp.desktopและทำ

desktop-file-install --dir=$HOME/.local/share/applications ~/myapp.desktop

ไฟล์ที่มีอยู่ในชื่อเดียวกันจะถูกเขียนทับและมีการอัปเดตเป็นเอกภาพคุณสามารถใช้--delete-originalหากไม่ต้องการแหล่งที่มาอีกต่อไปหรือ

sudo desktop-file-install ~/myapp.desktop

เพื่อติดตั้งสำหรับผู้ใช้ทั้งหมด


+1 ใช้งานได้ สคริปต์การแก้ไขคร่าวๆที่ใช้สูตรนี้อยู่ที่gist.github.com/hilbix/f468fcbb15c3f68670d8
Tino

4
เพียงวางสำเนาของไฟล์. เดสก์ท็อปใน ~ / .local / share / applications ที่ทำงานให้ฉัน
chrismarx

.local/share/applications/ฉันมักจะแก้ไขด้วยตนเองไฟล์และเพิ่มเข้าไป พยายามใช้คำสั่งด้วย--delete-originalและฉันได้รับคำเตือน: warning: key "Keywords[uk]" is a list and does not have a semicolon as trailing character, fixing. ผลลัพธ์คือไฟล์ต้นฉบับที่ถูกลบและไม่มีการคัดลอกไปยังไดเรกทอรีเป้าหมาย Evil OS ... โดยทั่วไปแล้วจะทำการลบไฟล์ของฉันและฉันต้องสร้างไฟล์ใหม่ตั้งแต่เริ่มต้น
Daniel

2
ฉันยังคงได้รับปัญหา OP สังเกตแม้ว่าจะทำเช่นนี้
JAB

ฉันยังคงได้รับปัญหา OP สังเกตแม้ว่าจะทำเช่นนี้ (และแม้หลังจากรีสตาร์ท) (Ubuntu 16.04)
Dan Nissenbaum

17

วิธีการทำเช่นนี้คือการเรียกใช้คำสั่ง

killall unity-scope-home

หลังจากเปิด dash กระบวนการจะเริ่มต้นขึ้นโดยอัตโนมัติอีกครั้ง

ไอคอนที่ถูกต้องจะปรากฏขึ้น ...


1
ไม่ทำงานที่ด้านข้างของฉัน ฉันลบ.desktopไฟล์และยังคงปรากฏในcompizแถบเปิดใช้งาน
Tino

ดีติดอยู่กับBUG 1287663การแก้ปัญหาคือการใช้gsettings setตามด้วย( unity --replace & )
Tino

ฉันไม่รู้ว่าคุณหมายถึงอะไรกับ compiz launch bar?! ฉันคิดว่าคุณกำลังพูดถึงเส้นประ?
wa4557

ทำงานได้ดีสำหรับฉันแอปพลิเคชั่นจะแสดงรายการอีกครั้ง
Sjaak Trekhaak

ทางเลือกใดใน 15.10? ฉันจะได้รับunity-scope-home: no process found
ardila

10

update-desktop-databaseเป็นคำสั่งเพื่อรีเฟรช.desktopฐานข้อมูล


สิ่งนี้ไม่ได้ผลสำหรับฉัน ใช้งาน Ubuntu 16.04 ฉันยังไม่เห็นไอคอนตัวเรียกใช้งานการเปลี่ยนแปลงที่เกิดขึ้นในไฟล์ .desktop
RichArt

2
คำสั่งนี้อัพเดตฐานข้อมูลชนิด MIME เท่านั้น ไม่ปรับปรุงการเปลี่ยนแปลงอื่น ๆ ดู: manpages.ubuntu.com/manpages/zesty/man1/…
hife

มันใช้งานได้สำหรับฉัน
aless80

ใช้ได้กับฉันด้วย sudo
Mahoor13

8

ตามคำตอบนี้ (และคุณสามารถหาคนอื่น ๆ ได้ในแง่เดียวกัน) น่าเสียดายที่ไม่มีคำสั่งให้ unity-applications-daemon รีเฟรชแคชแอปพลิเคชัน แต่ผมสามารถยืนยันได้ว่ามีความเป็นเอกภาพจะตรวจจับการเปลี่ยนแปลงใด ๆ โดยอัตโนมัติด้วยไฟล์ใน.desktop ~/.local/share/applicationsหากการเปลี่ยนแปลงเหล่านี้ไม่สามารถใช้งานได้ทันทีให้ลองออกจากระบบและลองอีกครั้งเพื่อรีเฟรช


3
ใช่มันจะตรวจจับ .... โดยอัตโนมัติในหนึ่งชั่วโมง ...
vladimir

@ vladimir ตามที่ฉันได้กล่าวไว้หากคุณต้องการให้การเปลี่ยนแปลงพร้อมใช้งานทันทีให้ลองออกจากระบบและรีเฟรชอีกครั้ง
Radu Rădeanu

3
ฉันได้รับคำตอบของคุณอย่างเต็มที่และอาจจะยอมรับได้ คุณเข้าใจข้อเสียของการออกจากระบบ - ปิดแอพที่เปิดทั้งหมด มันไม่ใช่วิธีแก้ปัญหา แต่เป็นวิธีแก้ปัญหาและไม่ใช่วิธีแก้ปัญหาสำหรับผู้ใช้ คุณเป็นนักพัฒนาโดยบังเอิญหรือไม่? ถ้าใช่คุณช่วยชี้ฉันไปยังแหล่งภูตได้ไหม ฉันเดาว่ามันคือunity-lens-applications daemon.vala
vladimir

3

คำตอบนี้ไม่เกี่ยวข้องกับการรีสตาร์ทเดสก์ทอป


update-desktop-databaseแม้ว่าจะค่อนข้างดึกมีคำสั่งยูทิลิตี้เพื่ออัปเดตแคชฐานข้อมูลคอมพิวเตอร์ที่มีชื่อว่า

อัปเดตเนื้อหาที่เพิ่มเข้า$HOME/.local/share/applications/ใช้:

>> update-desktop-database

การอัปเดต stuffs addded ในคนทั่วโลกเช่น/usr/share/ubuntu/applications, /usr/share/gnome/applications, /usr/share/applicationsฯลฯ ใช้:

>> sudo update-desktop-database

มันใช้งานได้สำหรับฉัน
Honghe.Wu

0

บางแอปพลิเคชันอาจหยุดทำงานอย่างถูกต้องหลังจากคำสั่งนี้ ตัวอย่างเช่น Chrome กลายเป็นสีดำทั้งหมด

unity --replace

คุณช่วยชี้แจงคำเตือนของคุณได้ไหม?
Zanna

0

ฉันมีปัญหาที่คล้ายกันแก้ไขเมื่อรีสตาร์ท ฉันใช้ Ubuntu 16.04

ฉันมักจะสร้าง.desktopไฟล์/usr/share/applications/ถ้าฉันต้องการแชร์ไฟล์เดสก์ท็อปกับผู้ใช้รายอื่นและ~/.local/share/applicationsสำหรับผู้ใช้คนเดียวเท่านั้น และฉันมักจะเริ่มต้นใหม่

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