เป็นไปได้ที่จะเพิ่มไอคอนไปที่แผงด้านบนของหน้าจอเข้าสู่ระบบ


10

เป็นไปได้หรือไม่ที่จะเพิ่มไอคอน (นอกเหนือจากค่าเริ่มต้น) ไปที่แผงด้านบนของหน้าจอเข้าสู่ระบบ?

ป้อนคำอธิบายรูปภาพที่นี่

ถ้าใช่แล้วไอคอนแอปพลิเคชันใดที่จะถูกเพิ่มลงในแผงด้านบนของหน้าจอเข้าสู่ระบบนอกเหนือจากค่าเริ่มต้น ( onboard, sound, network-manager, ฯลฯ ) ฉันจะเพิ่มมันได้อย่างไร?

ฉันใช้ Ubuntu 13.10


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

1
ฉันจะได้วอลล์เปเปอร์นี้?

@Utkarsh ฉันดาวน์โหลดภาพด้านบนจากการค้นหาภาพของ Google
Avinash Raj

คำตอบ:


14

ฉันอายุ 12.04 แต่จะใช้งานได้ในเวลา 13.10 ด้วย

ใช่มันเป็นไปได้ที่จะเปลี่ยนตัวบ่งชี้สำหรับความสามัคคี เราสามารถใช้ GSettings เพื่อแก้ไขการตั้งค่า แต่เนื่องจากผู้ใช้ lightdm ทำงานแบบ unity-greeter เท่านั้น (ดังนั้นการตั้งค่าจึงไม่ส่งผลกระทบต่อผู้อื่น) จึงเป็นการง่ายที่สุดในการเขียน.overrideไฟล์

1. ตรวจสอบตัวบ่งชี้เริ่มต้น

คุณสามารถดูตัวบ่งชี้เริ่มต้นของคุณในdconf-editorหรือ/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xmlไฟล์ ในไฟล์หลังคุณจะเห็นคีย์คล้ายกับสิ่งนี้:

 <key name="indicators" type="as">
  <default>['ug-keyboard', 'ug-accessibility', 'session', 'datetime', 'power', 'soundmenu', 'application']</default>
  <summary>Which indicators to load</summary>
</key>

นั่นคือค่าเริ่มต้นสำหรับฉัน ตรวจสอบของคุณก่อน

ใน 13.10 คีย์นี้มีลักษณะเช่นนี้:

<key name="indicators" type="as">
  <default>['ug-accessibility', 'com.canonical.indicator.keyboard', 'com.canonical.indicator.session', 'com.canonical.indicator.datetime', 'com.canonical.indicator.power', 'com.canonical.indicator.sound', 'application']</default>
  <summary>Which indicators to load</summary>
</key>

2. ตรวจสอบตัวบ่งชี้ที่มีอยู่

คุณสามารถตรวจสอบตัวบ่งชี้ที่มีอยู่ใน/usr/lib/indicators3/7/ไดเรกทอรีหรือใน/usr/share/unity/indicators/ไดเรกทอรี

3. เขียนไฟล์แทนที่

เพียงแค่เขียนไฟล์ที่มีเนื้อหาคล้ายกันและบันทึกเป็น /usr/share/glib-2.0/schemas/myoverride.gschema.override

สำหรับ 12.04

[com.canonical.unity-greeter]
indicators=['ug-keyboard', 'ug-accessibility', 'session', 'datetime', 'power', 'soundmenu', 'application', 'messaging']

สำหรับ 13.10

[com.canonical.unity-greeter]
indicators=['ug-accessibility', 'com.canonical.indicator.keyboard', 'com.canonical.indicator.session', 'com.canonical.indicator.datetime', 'com.canonical.indicator.power', 'com.canonical.indicator.sound', 'application', 'messages']

ในรุ่น 12.04 ฉันเพิ่มตัวบ่งชี้การส่งข้อความไปยังรายการเริ่มต้นที่ 12.04 ในเวอร์ชั่น 13.10 ฉันเพิ่มตัวบ่งชี้ข้อความไปยังรายการเริ่มต้นของ 13.10 ฉันเพิ่งเพิ่มพวกเขาไปยังรายการเริ่มต้นที่แสดงในขั้นตอนที่ 1คุณสามารถทำเช่นนั้นได้หรือลบบางส่วนออกจากตัวบ่งชี้เริ่มต้นหากคุณไม่ต้องการให้ปรากฏบนหน้าจอเข้าสู่ระบบ (ระวังเครื่องหมายอะโพสโทรฟี) สิ่งสำคัญ : ในวันที่ 12.04 คุณจะต้องมีตัวบ่งชี้' แป้นพิมพ์ ug'และตัว'เซสชัน'ในรายการดังนั้นอย่าลบออกหากคุณมีพวกเขาในบรรทัดเริ่มต้นหรือ lightdm จะติดอยู่ ในการวนซ้ำไม่รู้จบ (เช่นที่นี่ )

แบบแผนการตั้งชื่อในไฟล์แทนที่:สำหรับไฟล์ใน/usr/lib/indicators3/7/ไดเรกทอรีชื่อไฟล์ก่อนหน้า "lib" และตอนจบ ".so" นั้นไม่สำคัญดังนั้นสำหรับไฟล์ชื่อ libmessaging.so เราสามารถใช้ 'libmessaging.so', 'libmessaging' หรือ 'ส่งข้อความ' สำหรับไฟล์ใน/usr/share/unity/indicators/ไดเรกทอรีชื่อไฟล์ก่อนหน้านี้คือ "com.canonical.indicator" ไม่สำคัญดังนั้นสำหรับไฟล์ "com.canonical.indicator.bluetooth" เราสามารถใช้ 'com.canonical.indicator.bluetooth' หรือเพียงแค่ "บลูทู ธ "

4. สำรองข้อมูล (ในกรณี)

ทำการสำรองข้อมูลของ/usr/share/glib-2.0/schemas/gschemas.compiledไฟล์

5. รวบรวม

หลังจากทั้งหมดนี้ทำงาน

sudo glib-compile-schemas /usr/share/glib-2.0/schemas

6. ตรวจสอบผลลัพธ์

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

lightdm --test-mode

หรือ

unity-greeter --test-mode 

สำหรับฉันในวันที่ 12.04 ตัวบ่งชี้การส่งข้อความใช้งานได้ตัวบ่งชี้เครื่องพิมพ์เมนูของฉันไม่ทำงาน ใน 13.10 ฉันทดสอบกับตัวบ่งชี้ข้อความและมันไม่ปรากฏขึ้น แต่ไม่มีการสร้างข้อผิดพลาดดังนั้นฉันเดาว่ามันเป็นเพราะการออกแบบที่ไม่ปรากฏบนหน้าจอหน้าจอเพราะมันไม่มีประโยชน์ที่นั่น ดังนั้นฉันจึงตรวจสอบ/usr/share/unity/indicators/com.canonical.indicator.messagesไฟล์และยืนยันว่าไม่มีส่วน [desktop_greeter] เช่นตัวบ่งชี้เซสชันมี ดังนั้นหากคุณไม่ได้ตัวบ่งชี้ข้อความ (หรือตัวบ่งชี้อื่นที่ไม่มีส่วน [desktop_greeter]) ปรากฏขึ้นบนหน้าจอเข้าสู่ระบบ (แม้ว่าส่วนใหญ่จะไม่มีประโยชน์ที่นั่น) คุณจะต้องแก้ไขไฟล์ใน/usr/share/unity/indicators/ไดเรกทอรีและ ทำสำเนาของส่วน [เดสก์ท็อป] ในไฟล์นั้นและเปลี่ยนชื่อสำเนาเป็นส่วน [desktop_greeter] เช่นสำหรับตัวบ่งชี้ข้อความฉันลงเอยด้วยไฟล์นี้สำหรับ/usr/share/unity/indicators/com.canonical.indicator.messages:

[Indicator Service]
Name=indicator-messages
ObjectPath=/com/canonical/indicator/messages
Position=50

[desktop]
ObjectPath=/com/canonical/indicator/messages/desktop

[phone]
ObjectPath=/com/canonical/indicator/messages/phone

[desktop_greeter]
ObjectPath=/com/canonical/indicator/messages/desktop

หลังจากทำการเปลี่ยนแปลงในไฟล์ตัวบ่งชี้ข้อความก็ปรากฏขึ้นบนหน้าจอเข้าสู่ระบบสำหรับ 13.10 เช่นกัน

หากมีบางสิ่งไม่ดีและหน้าจอเข้าสู่ระบบไม่ปรากฏขึ้นให้เปลี่ยนไปใช้คอนโซลเสมือนCTRL+ ALT+ F1และกู้คืนgschemas.compiledไฟล์สำรองของคุณ หรือลบmyoverride.gschema.overrideไฟล์ของคุณแล้วรันsudo glib-compile-schemas /usr/share/glib-2.0/schemasอีกครั้ง หาก lighdtm หยุดนิ่งในการวนรอบที่ไม่มีที่สิ้นสุดและคุณไม่สามารถสลับไปที่คอนโซลเสมือนได้เพียงกดปุ่มALT+ PrtSc+ Eแป้นผสมคำสั่งนี้จะฆ่า lightdm และหลังจากนี้คุณสามารถสลับไปที่คอนโซลเสมือนและทำการซ่อมแซม

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

แหล่งที่มาของสิ่งเหล่านี้? ฉันมองเข้าไปในรหัส: ลิงค์และลิงค์


คุณต้องการที่จะพูดคือหาlibmessaging.soไฟล์แล้วคัดลอกวางใน/usr/lib/indicators3/7ไดเรกทอรีฉันถูกต้องหรือไม่
Avinash Raj

@AvinashRaj ไม่ฉันหมายความว่าเป็นไปได้ว่าไดเรกทอรีที่ unity-greeter ค้นหาตัวบ่งชี้นั้นแตกต่างกันไปตามรุ่น จากซอร์สโค้ดที่ฉันทำได้เพียงว่ามี 2 ไดเรกทอรีที่ unity-greeter ค้นหาตัวบ่งชี้ /usr/share/unity/indicatorsลักษณะเดียวกันต่อรุ่น แต่/usr/lib/indicators3/7ผู้อำนวยการจะแตกต่างกันโดยรุ่น ดังนั้นฉันหมายถึงการค้นหาตัวบ่งชี้เริ่มต้นที่ติดตั้งดูที่ที่เก็บไว้และดูในไดเรกทอรีนั้นเพื่อดูว่ามีตัวบ่งชี้อะไรบ้างจากนั้นคุณสามารถใช้ชื่อในรายการ
falconer


@AvinashRaj คุณสามารถลองใช้ตัวบ่งชี้ทั้งหมดจาก 2 ไดเรกทอรีเหล่านั้น ถ้าคุณใช้จากusr/lib/...ไดเรกทอรีแล้วการตั้งชื่อสิ่งที่ผมเขียนข้างต้นถือจึงsyncindicatorเป็นพอ แต่คุณสามารถใช้libsyncindicator.soยัง สำหรับไดเรกทอรีอื่นคุณยังสามารถใช้ชื่อเต็มของไฟล์หรือคุณสามารถออกจากcom.canonical.indicator.ส่วน ดังนั้นในกรณีของคุณบรรทัดที่ถูกต้องในไฟล์แทนที่จะเป็นดังนี้:indicators=['libsyncindicator.so', 'printersmenu', 'libapplication', 'com.canonical.indicator.sound', 'messages']
falconer

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