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


10

มันเป็นเรื่องเล็กน้อยที่จะทำเช่นนี้ใน Ubuntu 10.04 คำถามเฉพาะสำหรับ Ubuntu 12.04

องค์ประกอบที่ใช้ dbus ซึ่งมีรายละเอียดการดำเนินงานในการติดตามจะหายไปด้วยเหตุผลบางอย่างเพื่อให้อัตตาประกอบคำตอบ (กระบวนการเล็กน้อย แต่ค่อนข้างลำบากจะมีการอธิบายที่นี่ )

นี้การตอบสนองเกี่ยวกับการgdbusจะเป็นประโยชน์ แต่คำตอบที่เป็นประโยชน์ซุปเปอร์ - (ค่าใช้จ่ายในระบบนิ่งได้รับตอนนี้ลดลงไปที่ยอมรับ ~ 10%)

บางการอ้างอิงที่เกี่ยวข้อง
(src: คำตอบไปที่ความแตกต่างระหว่างตัวบ่งชี้และถาดระบบคืออะไร :
นี่คือเอกสารสำหรับตัวบ่งชี้:

แอปพลิเคชั่น
คู่มือผู้พัฒนาlibappindicator คู่มือผู้ใช้แอพ Ubuntu คู่มือ
อ้างอิง libappindicator

ด้วย

ref: แอปพลิเคชันที่ทำให้ไอคอนตัวระบุสามารถระบุได้อย่างไร (ลิงค์นี้ไม่เหมาะสมเปลี่ยนเส้นทางไปยัง/ubuntu/184589/how-can-menu-bars-that-require-a-right-click-be-activated-like-ubuntu-versions )
บุ๊ก: อย่างไร พบว่าแอปพลิเคชั่นใดที่เชื่อมโยงกับไอคอนตัวบ่งชี้ใน Ubuntu 12.04
เป็นคำถามที่จริงจังสำหรับเหตุผลและปัญหาที่ระบุไว้ด้านล่างและมีการลงทุนที่สำคัญและจำเป็นสำหรับการแก้ไข


รีวิว refs เพื่อค้นหาความละเอียดที่ถูกเตรียมไว้ ...
(อาจจำเป็นต้องมีตัวบ่งชี้ ap.)


สิ่งนี้ไม่มีอะไรให้ทำใช่ไหมกับการคลิกขวา

ไอคอนตัวบ่งชี้ใน Ubuntu 12.04 สามารถจับคู่กับโปรแกรมที่รับผิดชอบในการแสดงรายการที่แผงด้านบนได้อย่างไร

System Monitorรายการของโปรแกรมที่ทำงานสามารถรวมกระบวนการทั้งหมดใช้

กระบวนการจับคู่ที่ถูกต้องเป็นวิธีที่พบสำหรับตัวบ่งชี้อย่างไร

แอพพลิเคชั่นย่อยบ่งชี้ได้อย่างไร? นี่คือ aps ที่เกี่ยวข้องกับส่วนประกอบของเมนูตัวชี้วัดแบบหล่นลง (นี่เป็นคำถามที่แยกต่างหากและค่อนข้างเป็นไปตามการดำเนินการตามธรรมชาติมันถูกรวมไว้ที่นี่เนื่องจากเห็นได้ชัดว่าไม่มีการจัดเตรียมเพื่อติดตามการกระทำผิดต่อย่อยหรือแอพตัวบ่งชี้ได้อย่างง่ายดาย)

ผสมกับ daemons และงานพื้นหลังที่คาดหวังเช่น nm-applet ไม่เพียง แต่ Xorg และ compiz ต้องใช้เวลา CPU มากเกินไป แต่ผู้ติดตามก็ต้องมาด้วยเช่นกัน! การทำให้ปัญหาทวีความรุนแรงยิ่งขึ้น - ภาระผูกพันในการคำนวณของเราไม่สามารถทำงานได้อย่างมีประสิทธิภาพในสนามอีกต่อไป - ลดอายุการใช้งานแบตเตอรี่, ลดเวลาซีพียูสำหรับ ap ap แบบกำหนดเองเป็นต้น - และทั้งหมดนี้เร่งรัดจากการตรวจสอบว่า ตัวบ่งชี้ - สิ่งนี้เป็นและไม่ได้เป็นความคล่องแคล่ววาทศาสตร์หรือไม่ได้ใช้งาน แต่มีผลต่อการปรับใช้ที่น่าเชื่อถือ 12.04 เพื่อลดผลกระทบด้านลบของค่าใช้จ่ายในสภาพแวดล้อมการผลิต) ลดเวลาซีพียูสำหรับ ap.s แบบกำหนดเองเป็นต้น - และทั้งหมดนี้เร่งรัดจากการตรวจสอบว่าเกิดอะไรขึ้นกับแบตเตอรี่ ap ตัวบ่งชี้ - สิ่งนี้เป็นและไม่ได้เป็นความคล่องแคล่ววาทศาสตร์หรือไม่ได้ใช้งาน แต่มีผลต่อการปรับใช้ที่น่าเชื่อถือ 12.04 เพื่อลดผลกระทบด้านลบของค่าใช้จ่ายในสภาพแวดล้อมการผลิต) ลดเวลาซีพียูสำหรับ ap.s แบบกำหนดเองเป็นต้น - และทั้งหมดนี้เร่งรัดจากการตรวจสอบว่าเกิดอะไรขึ้นกับแบตเตอรี่ ap ตัวบ่งชี้ - สิ่งนี้เป็นและไม่ได้เป็นความคล่องแคล่ววาทศาสตร์หรือไม่ได้ใช้งาน แต่มีผลต่อการปรับใช้ที่น่าเชื่อถือ 12.04 เพื่อลดผลกระทบด้านลบของค่าใช้จ่ายในสภาพแวดล้อมการผลิต)

(ฉันมีปัญหากับไฟแสดงสถานะแบตเตอรี่ - บางครั้งมี% และเวลาอื่น hh: mm - จำเป็นต้องทราบ ap. & v. เพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับการควบคุมเดียวกัน ditto: มีปัญหากับ aps ตัวบ่งชี้อื่น ๆ : NM เทียบกับ iwlist / iwconfig ขัดแย้ง, BT ap. vs สวิตช์ RF, แบตเตอรี่ ap. ไม่มีการหยุดชั่วคราว / พักสำหรับการใช้งานแบตเตอรีต่ำ, ... รายการดำเนินต่อไป)

รายละเอียดจาก:
ฉันจะหา ID ตัวบ่งชี้แอปพลิเคชันได้อย่างไร

แนะนำให้ดูที่:
ไฟล์: ////usr/share/indicator-application/ordering-override.keyfile

[Ordering Index Overrides]
nm-applet=1
gnome-power-manager=2
ibus=3
gst-keyboard-xkb=4
gsd-keyboard-xkb=5

ซึ่งแก้ปัญหาแบตเตอรี่หมด รหัสและน่าจะเป็น NetworkManager สำหรับไอคอน rf แต่ซองจดหมาย, ฟันสีฟ้าและตัวบ่งชี้ลำโพง aps ยังคงเป็นปริศนา (นอกจากนี้การสั่งซื้อไม่มีความสัมพันธ์)

ในใจคุณมันเป็นเรื่องง่ายในอดีตที่จะเพียงคลิกขวาเพื่อรับAboutตัวเลือกในการค้นหา ap & v. ข้อมูล

เรียกดูรอบ ๆ และเกี่ยวกับ:

ไฟล์: ///usr/share/indicator-application/ordering-override.keyfile

ตรวจสอบแล้ว:
file: /// usr / share /
ไฟล์indicator : /// usr / share / ตัวชี้วัด / ข้อความ / applications /
...

บางที? / สันนิษฐาน? ข้อมูลที่ค้นหาอาจถูกฝังอยู่ใน
ไฟล์: /// usr / share / ตัวชี้วัด

การอ้างอิงในความคิดเห็นได้รับ:
ความแตกต่างระหว่างตัวบ่งชี้และถาดระบบคืออะไร?
การอ้างอิงจากแหล่งที่มา ...

น่าเสียดายที่ตัวบ่งชี้เดสก์ท็อปยังไม่ได้บันทึกไว้อย่างดี: ฉันไม่พบเอกสารข้อกำหนด ...

ดี ... เอกสารจริง
https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators#S สรุป
ไม่ได้ช่วยอะไรมาก แต่เป็นข้อมูลที่มีอยู่ให้ข้อมูลเชิงลึกมาก ...


และแอปพลิเคชันนั้นคือ ... ?
Amos Annoy

"ตัวบ่งชี้ BT มักจะถูกใช้โดย Blueman (หรือคล้ายกัน)" - แต่ฉันจะรู้ได้อย่างไร? ฉันอาจใช้ "หรือคล้ายกัน"? สิ่งนี้ไม่ช่วย - คุณสามารถบอกฉันได้อย่างแม่นยำว่าจะตรวจสอบระบบของฉันได้อย่างไรเพื่อกำหนดว่าแอปพลิเคชันใดที่เชื่อมโยงกับตัวบ่งชี้แต่ละตัวได้อย่างชัดเจน? unity-panel-service มีหน้าที่รับผิดชอบต่อการแสดงออกของสภาพแวดล้อมดังกล่าว แต่แอปพลิเคชันที่มีการเติมข้อมูลมีความเกี่ยวข้องกับตัวบ่งชี้แต่ละตัวอย่างไร
Amos Annoy

เมื่อ aps ที่ถูกต้อง มีการกำหนดเป้าหมายสิ่งต่าง ๆ เช่น: bluetooth-applet --help (bluetooth-applet:25165): BluetoothApplet-WARNING **: Applet is already running, exitingสามารถทำได้ - ตัวบ่งชี้การส่งข้อความคืออะไร มันน่าจะดึงเนื้อหาของเมนูแบบเลื่อนลงได้จาก:file:///usr/share/indicators/messages/applications/
Amos Annoy Ann

คำตอบที่คุณเสนอนั้นล้าสมัยฉันได้อัปเดตแล้วหวังว่าจะช่วยได้
Jorge Castro

TQ - หวังเช่นนั้น - รับความคิดที่ดีเกี่ยวกับโครงสร้างตัวบ่งชี้
Amos Annoy

คำตอบ:


3

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

gdbus call --session --dest com.canonical.indicator.application --object-path /com/canonical/indicator/application/service --method com.canonical.indicator.application.service.GetApplications

คุณจะได้สิ่งที่ไม่มีประโยชน์กลับคืนมาเพราะมันอยู่ในรูปแบบ psuedo-JSON หากคุณเขียนสคริปต์คุณสามารถดึงมันลงใน parser และทำงานกับมัน หากคุณอยากรู้เกี่ยวกับการทำเพียงครั้งเดียวให้อ่านข้อความ คุณกำลังมองหาฟิลด์ที่มีลักษณะดังนี้: :1.XXX นั่นคือที่อยู่ DBus สำหรับตัวบ่งชี้

เมื่อคุณมีที่อยู่สำหรับตัวบ่งชี้คุณสามารถถาม DBus ว่า PID สำหรับตัวบ่งชี้นั้นคืออะไร คุณขอ PID :1.123เช่นนี้:

gdbus call --session --dest org.freedesktop.DBus --object-path / --method org.freedesktop.DBus.GetConnectionUnixProcessID :1.123

หลังจากคุณมี PID แล้วคุณสามารถขอ/procข้อมูลเกี่ยวกับกระบวนการได้ ตัวอย่างเช่นหากคุณต้องการทราบว่าคำสั่งใช้เพื่อเรียกใช้หมายเลขกระบวนการ1คุณสามารถทำได้:

cat /proc/1/cmndline

โชคดี!


หวาน! - ไม่ทราบเกี่ยวกับgdbusหวังว่ามีอินเทอร์เฟซระดับสูงอยู่! - แม้ว่าจะไม่ใช่ API (ตัวบ่งชี้แผงแอปพลิเคชัน) แต่ก็ไม่ควรยากที่จะ "ทำให้เป็นเช่นนั้น" - หวังว่าจะทำให้มันเป็นข้อตกลงที่เสร็จสิ้นแล้ว - PS super sweet
Amos Annoy Ann

2

การทำซ้ำครั้งที่ 1

qdbus --literal   com.canonical.AppMenu.Registrar                  \
                 /com/canonical/Unity/Panel/Service                \
                  com.canonical.Unity.Panel.Service.Sync           \
| sed -e 's/[^{]*{\(.*\)}\]/\1/' | sed -e 's/\[[^"]*/[/g'          \
| sed -e 's/\[\(\(\("[^"]*"\|[^,"]*\), \)\{4\}\)[^]]*,\([^,]*\)\]/[\4, \1]/g' \
| sed -e 's/\[\([^,]*\, \)\("[^"]*",\)/[    \1\2                  /g'  \
| sed -e 's/\[ *\(....,.\{24\}\) */[\1/g'  | sed -e 's/\], \[/]\n[/g'  | sort -n -k2

การผลิต:

[  -1, "libprintersmenu.so",  "", "", "", ]
[   0, "libappmenu.so",       "0x9581b90", "", "_File", ]
[   1, "libappmenu.so",       "0x9582ad0", "", "_Edit", ]
[   2, "libappmenu.so",       "0x9583cf0", "", "_View", ]
[   3, "libappmenu.so",       "0x9585828", "", "_Search", ]
[   4, "libappmenu.so",       "0x9586da8", "", "_Tools", ]
[   5, "libappmenu.so",       "0x96575a0", "", "_Documents", ]
[   6, "libappmenu.so",       "0x96596e0", "", "_Help", ]
[ 200, "libmessaging.so",     "0x9238c7c", "indicator-messages", "", ]
[ 250, "libpower.so",         "0x9346c54", "indicator-power", "", ]
[ 300, "libapplication.so",   "0x86a6368", "bluetooth-manager", "", ]
[ 450, "libapplication.so",   "0x930f650", "nm-applet", "", ]
[ 500, "libsoundmenu.so",     "0x9346cac", "indicator-sound", "", ]
[ 550, "libdatetime.so",      "0x931581c", "indicator-datetime", " 4:59:07 PM", ]
[ 600, "libsession.so",       "0x92ed45c", "indicator-session-devices", "", ]

การทำซ้ำครั้งที่ 2

(w / ไอคอนยืนยันการเชื่อมโยง)

qdbus --literal   com.canonical.AppMenu.Registrar                  \
                 /com/canonical/Unity/Panel/Service                \
                  com.canonical.Unity.Panel.Service.Sync           \
| sed -e 's/[^{]*{\(.*\)}\]/\1/' | sed -e 's/\[[^"]*/[/g'          \
| sed -e 's/\[\(\(\("[^"]*"\|[^,"]*\), \)\{4\}\)\([^,]*, \)\{3\}\("[^"]*"\)[^]]*,\([^,]*\)\]/[\6, \1 <\5>]/g' \
| sed -e 's/<"">\]/]/g'  | sed -e 's/<"\([^"]*">\]\)/<img src="data:image\/png;base64,\1/g'    \
| sed -e 's/\], \[/<\/td><\/tr>\n<tr><td>/g'  | sort -n -k2 | sed -e 's/, /<\/td><td>/g'        \
| sed -e 's/\[/<html><table>\n<tr><td>/' | sed -e 's/\]/<\/td><\/tr>\n<\/table><\/html>/' >hapi.html

การผลิต:

hapi.png

นี่คือ hapi.html (ไม่มีพื้นหลังสีดำของเซลล์):

<tr><td> -1</td><td>"libprintersmenu.so"</td><td>""</td><td>""</td><td>""</td><td> </td></tr>   /*  oops  */
<html><table>
<tr><td> 0</td><td>"libappmenu.so"</td><td>"0x8b12b38"</td><td>""</td><td>"_File"</td><td> </td></tr>
<tr><td> 1</td><td>"libappmenu.so"</td><td>"0x8a1cd30"</td><td>""</td><td>"_Edit"</td><td> </td></tr>
<tr><td> 2</td><td>"libappmenu.so"</td><td>"0x8b01b28"</td><td>""</td><td>"_View"</td><td> </td></tr>
<tr><td> 3</td><td>"libappmenu.so"</td><td>"0x8b35700"</td><td>""</td><td>"_Search"</td><td> </td></tr>
<tr><td> 4</td><td>"libappmenu.so"</td><td>"0x8b11350"</td><td>""</td><td>"_Terminal"</td><td> </td></tr>
<tr><td> 5</td><td>"libappmenu.so"</td><td>"0x8b142f0"</td><td>""</td><td>"Ta_bs"</td><td> </td></tr>
<tr><td> 6</td><td>"libappmenu.so"</td><td>"0x8b37528"</td><td>""</td><td>"_Help"</td><td> </td></tr>
<tr><td> 200</td><td>"libmessaging.so"  </td><td>"0x85c8c7c"</td><td>"indicator-messages"   </td><td>""</td><td> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABHNCSVQICAgIfAhkiAAAAd9JREFUOI3t0UFP02AcBvDnfRvMSDzwBUy2CpZwwCN6Mc4FE8iQs9/BCzOytWxzm4EYMWEQMMHExE+gF+JxnuwYRtcWNlrcIurttRuY7WLCeD0V6+iE4cmEJ2nS9/n3/0ubAuf5b0Ocm92KkeEcUQAXzmj9BMFioH84CgDUaTnnSqlsrtXre9vdirVafbtUNt/wQz7ldPT3mAii6B9MpWYV9t02TosyZusPU7MxUfRLhJAeDxjo9fmGstknsWR6TrHtk3HGbF1OpOWlxXml1+cbcs9o+8OU0pGVpadxOfHorzhjth6dScaeP8smKKUjxxyvJYHSa6vLC8q0kpK9cMZsfSoiT79YXX4gCMJ1L8MTBoBms3kxErm3lc48ju/v/7Ccvl7bKyczczNy/H6p0Wj0ddo/yudPBneuwrucFgrdDFctbb1qaevB4I077/NvjT/6Hf1DeOz2xIaaK7p3O8IFNaePjgbHK5aWd7qKWVQlSbolSVKwYhbVo97SPk6GxyYKak5vh4kbBgBrp/pyoD9wiVIaOvEzAbRarfyXr992xYD/LgAEBoZJG6wfAEQ4DdYpnPMD8crVHsD184zN8ivOcfgPbMvY3HrtnIhrMgjgclvXlQygCsA8+8udp5v8AnS3+yjTJl0RAAAAAElFTkSuQmCC"></td></tr>
<tr><td> 250</td><td>"libpower.so"      </td><td>"0x86da454"</td><td>"indicator-power"      </td><td>""</td><td> <img src="data:image/png;base64,. GThemedIcon battery-charged battery-full-charged-symbolic battery-full-charged gpm-battery-charged gpm-battery-100-charging "></td></tr>
<tr><td> 300</td><td>"libapplication.so"</td><td>"0x86a6368"</td><td>"bluetooth-manager"    </td><td>""</td><td> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAWCAYAAAAW5GZjAAAABHNCSVQICAgIfAhkiAAAAchJREFUKJHNkc9LVFEUx7/3YUJF5EhgM6+GoBiEaNEy8g8ogihI2rSXYDIQNxW0EHEROdIsJkwEJ19kDWXRrjSKBgNzHO4d6um7b7xji9RZyFNxMVPvnjYpPXSyRYu+y3M+fL/nB/B/SjlipuTyW9v1jC0VhhgR61aycGNnGKTfZycGAeqplbCpOYd/N00z9jwz/FhJoZXkVwPOSoqEcvkZACAisizr64PBoUS1Ul354eubAdjzvOOk8bLkFM4BoKamfaHUvUSKGUZdMnm/OxBtmuapieybyTmHV4qzvFp0+JS082vxeNs1APu3LBqJRFo+ZscmlRTk2vn19njbdQAN211Dp9Ppwt49u+sBgBnGrtZLF74B8H6HGQDMz4uQX6FxX/tHGYz6crkswuGDJxljl48cOzEacPYr+gmRbh4YSHdprf2unju3FxaXuNZ6pOSKs4GBRzNWX2dHeweARsfOrQ7394ej0WjLTOFTuTjLFza4OgC42HolCWAFwDIAagyF6N3Yq/OMsQOvx9/erfE/wPmS86SdSygpdCrZ2wfgUE3YtfPrSgrKjDy0AByuCQLA9NSHzy+ePXoKIPZH8JdOA2j+G/Df6SfH0s58lIXOZQAAAABJRU5ErkJggg=="></td></tr>
<tr><td> 450</td><td>"libapplication.so"</td><td>"0x869f258"</td><td>"nm-applet"            </td><td>""</td><td> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABHNCSVQICAgIfAhkiAAAAvJJREFUOI3tkk9sVFUUxn/n3XmP6WBk/gBCojDTMJPSocNURJSV2qW6EKIkBaRRE5WYsCAahJCMbtREjEkTEzHRhmJFYnRhZGFMmhIWTUmpxVJDZpipmbSdMm1RoH2vnb53XTA11NSWrQm/3T0n35fvnHPhPv9bZLFiNptd4fPsmChvPaJCrqv9BlgAKGPGc+dmDNGTniEjjmMOJZPJ2SWNi8Ur4YrtbTPE26hFDIDKTGV22rFtd9atAChLmYHAyhrTVBaA1tozxJfXKnApFov9ucA4k8kYLXtfSAOPahFjfHxisr9vYLTtq/byhZ6eaWAO8KoaA/A1NTUFDjTvWlu/Jbk+EgmHRIurtdEbjdf3i4gWgKFc/zMa2XTr1tTUF1+2DbS2fl4CpgC7UCiYWt9OaI2lPNd1DXOitra+KCIKqAEC7x8/8vCePbuTln+FX/Cy0U3pTgEY6O/eXSpdnznwypu/Dg8Pl4cGB8NYbrPWulkgpcH3rxXe1JqLhkhHBf938Xi8kk7XPfTpiU8aIpFQTUP6ybPzO14HVDKZzI2X9+06aGg+0PCA57n2WHl8oDQ6VnAcx1bKp4LBVeE1qyPRYHBVQkR8CKN4HI0lUqeAMHdClBYcL5/9bb+gTzm2ff2Xzq6vT3zcen6oWBwB/qru2QD8wIONjakNh946+NTOJ7a/ZFpmUDR7o4lUx7zXghHPfHM2X7c5ceadd9/ryOVyfedOn765+fGGZ0XkaY1s0KLnxGNYoOuHn74/1/LqG92PNTb+fOzY4Rd/H7xa+M/vBgSAR4Brf2SvJDzcH4FaFidvoJ7fGE/mgBhQBKYXTVxtXAUolcfS4VAw0nupr729/duuzvNdZaUsY8eO7aHXX2tpSm/d8tzkjfE0MDivWSrx3awDUkAeGAHsat1fnSoKXAZKi4mXMv6HQvbyh8Dbd176o1h869HlNOpejH2WMusS8Z2O40ycPNn2WXfPxWvLae4pMbAS2AZooJe7jnSfZfkbe1wfX9DFYSoAAAAASUVORK5CYII="></td></tr>
<tr><td> 500</td><td>"libsoundmenu.so"  </td><td>"0x86da4ac"</td><td>"indicator-sound"      </td><td>""</td><td> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAWCAYAAADafVyIAAAABHNCSVQICAgIfAhkiAAAAudJREFUSIntkF1ok1cYx38njTW1rSkOZGjFK52fbKCCzsgWkIF4sV0IAxljIIiyi+mFCOLdwJuJn5tuQ7AVh1VX2Vjpqq6aZc5araZ5bWOak7dvl5W1YtOPtE1i3o+zC410Npoh1St/V+c8zzn/3zkPvOZVYEjtdyOunVRKuZ7uTSq8CP39900Unxmx9u1TkQdAT1z7skdqnwP4fKvfj3a0Depd4ZSut3knnnvmD/rD4XIjrgUNqQUK9dPjmQ0Kjuh6u+/atRt/trTerHW5RKWTc20pKlBKudIefkCxDnhPqXMlAIYMb++Wdz8A+O5E7RFQysra+wDzZG3d947j5EzT3FxU0KN3HBAu8WF+HwhEBIBp2rtQTn0iemfO4aPHfurru3+7tHTa2kT0zpxgMCiTyWSHx+N5W0o5fZKgO6b9ZkhNGVJTKPVFIfGVwB91QoiKtGV/AqT+SvReAlypdHY9YI2OjXcKIdy58eElhX7gLxQ6kWis6xxAOpNZCWA6uRDAWDq9CMAyzV6AgcGBec8d0bOIROISQCBmA1SWlQ8CWLZVCSBEyQiAbVtVLyQ4dGjfTIBMNpMC8FbN8gJksw9HATye0hkAIyOj2UmCZDIZKSZQtrXh0dnBKEBlxYxlAAPJ4e5HAs+bAGOZ8b78HXd+sWqNfyvwBsCvDfXbFr21YOPTglL39L22bWUaG5ouAFSUl3/kOE6usakxCFBW5lnuOI5VU1P35LHuCfdb8otNH3+aaGr4saq6eu7aiYLW1ps/9yQSyeMnakKGDK8GsaL3n77rp06dNXS9zYvlXjk0NHyvubl5qNg0xNKFC323Wq7ebbsRiADicX0+MBtARkPt3THN3rN752YAGQntMKSmzp+p+apYeJ4SYA3wbqHmxcYLp7/9+uBBwPt3Z+eseDT0IHbvdsrv9y/9v4JiLAbmAehd7fWG1NTxbw7s579jnxo6Qi2dVy//cgWonvLwx/iAd15W+HP5F1PVVGkwY49EAAAAAElFTkSuQmCC"></td></tr>
<tr><td> 550</td><td>"libdatetime.so"   </td><td>"0x86a581c"</td><td>"indicator-datetime"   </td><td>" 5:25:55 PM"</td><td> </td></tr>
<tr><td> 600</td><td>"libsession.so"    </td><td>"0x867cc5c"</td><td>"indicator-session-devices"</td><td>""</td><td> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABHNCSVQICAgIfAhkiAAAAlZJREFUOI3tlE9IVFEUxr/z/tgkKBHpJhEkRF4LV1GOIC2yRcxEEmGLJHAIhXCjCzdu3BVBC3VTi9rr2iwt9Q0ElTmO8yZtnOv4JKHIHi7m5XvlDJ4WOTA8549uow/u4p7znd89F869wH8dV6Yw2BQGH9UvFQomEokqIZZqyhWvr8dqE4lE1ZHAQojqCun3tMSKLkSsblPEQ16PmTS6hYjVSfvQVfr1SghRXRacTEYrHcepkQjnFdAmg58daofwXAFtEpHmum5tMhmtLAsOBDp3+geGBpk5C0B2XPe71+O47jYAmZmz/QNDg4FA505ZMIC9sZGH9USkOLvO1zt37/V6Dd3d93udXecbESmjIw/qAOwdBQxmdAHAm/nwk+Xl+JQ3vxCJTM3Nh58CAIO6CjGU/I13nCLRpXEAGQBoaGy+nn+r2NKniWDw2vBJn+9irq6hsZlKdpxTS8vlH3nbyYMFAGhrb98uVetVEEAw8iG8agqDP8cXbhYzrsYXbpvC4MX3+mquLj/v7XgSwGQqtfESABRVeWSa0VNe6NbKyukKVX0MAKnUxgvvbQqBAQBzs2/HmTmryMo5zsgfzXWj4+9rFNUbInYrq2YNWZbPMnM2rL+bKMQgb2BtbfGMSuosETUzY5+o6OTsE0FiZiPDmStNTReskh3regTptC3Z9s8voZ6+0PTr2THLsoxc3rIsY2ZmbjTU0xeybXsrnbZJ1yOFzj4kRdO0q62tl24A8AGoB+DP+938BzFfW5u/Q9O0dnjGtiQcQEV+oMi3eeI40GI6NFL/lv4A7ogQZ4Yx+nYAAAAASUVORK5CYII="></td></tr>
</table></html>

ยืนยัน: [crud] เป็นข้อมูลภาพไอคอนตาม data:image/png;base64,[crud]

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAWCAYAAADafVyIAAAABHNCSVQICAgIfAhkiAAAAudJREFUSIntkF1ok1cYx38njTW1rSkOZGjFK52fbKCCzsgWkIF4sV0IAxljIIiyi+mFCOLdwJuJn5tuQ7AVh1VX2Vjpqq6aZc5araZ5bWOak7dvl5W1YtOPtE1i3o+zC410Npoh1St/V+c8zzn/3zkPvOZVYEjtdyOunVRKuZ7uTSq8CP39900Unxmx9u1TkQdAT1z7skdqnwP4fKvfj3a0Depd4ZSut3knnnvmD/rD4XIjrgUNqQUK9dPjmQ0Kjuh6u+/atRt/trTerHW5RKWTc20pKlBKudIefkCxDnhPqXMlAIYMb++Wdz8A+O5E7RFQysra+wDzZG3d947j5EzT3FxU0KN3HBAu8WF+HwhEBIBp2rtQTn0iemfO4aPHfurru3+7tHTa2kT0zpxgMCiTyWSHx+N5W0o5fZKgO6b9ZkhNGVJTKPVFIfGVwB91QoiKtGV/AqT+SvReAlypdHY9YI2OjXcKIdy58eElhX7gLxQ6kWis6xxAOpNZCWA6uRDAWDq9CMAyzV6AgcGBec8d0bOIROISQCBmA1SWlQ8CWLZVCSBEyQiAbVtVLyQ4dGjfTIBMNpMC8FbN8gJksw9HATye0hkAIyOj2UmCZDIZKSZQtrXh0dnBKEBlxYxlAAPJ4e5HAs+bAGOZ8b78HXd+sWqNfyvwBsCvDfXbFr21YOPTglL39L22bWUaG5ouAFSUl3/kOE6usakxCFBW5lnuOI5VU1P35LHuCfdb8otNH3+aaGr4saq6eu7aiYLW1ps/9yQSyeMnakKGDK8GsaL3n77rp06dNXS9zYvlXjk0NHyvubl5qNg0xNKFC323Wq7ebbsRiADicX0+MBtARkPt3THN3rN752YAGQntMKSmzp+p+apYeJ4SYA3wbqHmxcYLp7/9+uBBwPt3Z+eseDT0IHbvdsrv9y/9v4JiLAbmAehd7fWG1NTxbw7s579jnxo6Qi2dVy//cgWonvLwx/iAd15W+HP5F1PVVGkwY49EAAAAAElFTkSuQmCC

ในทางกลับกันแทนที่จะเป็น HTML สคริปต์ทุบตีจะเติมแผงตัวบ่งชี้ด้วยตัวระบุไอคอน HAPI แบบบูรณาการซึ่งรวมถึงเวอร์ชัน aps ของผู้อาศัยจะช่วยให้สามารถแยกข้อมูลเฉพาะของรุ่น nuances และฟังก์ชันที่เป็นเอกลักษณ์ได้
george rowell

การพูดจาโผงผางปรากฏใน 2 วิธี - วิธีที่ 2 อยู่ที่นี่พร้อมกับภาษาประดิษฐ์ที่นำเสนอในวันที่ 1 ด้วยภาษาธรรมชาติและเกิดจากความรำคาญความรำคาญหรือความรำคาญที่เกิดขึ้นตามปกติ รบกวนโดยไม่ระบุชื่อ) ดังนั้นอัตตา - อาโมส Annoy (เอ็ด)
george rowell

หมายเหตุ: ฟิลด์ไอคอนตัวบ่งชี้พลังงานค่อนข้างเกะกะและแปลกใหม่หรือไม่? เมื่อเทียบกับการใช้งานภาคสนามใช้ข้อมูลภาพ w / ไอคอนโดย aps อื่น ๆ - แม้แต่ผู้ที่เปลี่ยนไอคอนเช่น NM
george rowell

2

น่าเสียดาย -

gdbus call --session --dest com.canonical.indicator.application                \
             --object-path /com/canonical/indicator/application/service        \
                   --method com.canonical.indicator.application.service.GetApplications

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

qdbusใช้งานง่ายกว่าและd-feetให้ GUI เพื่อทำสิ่งเดียวกันและแสดงรายการค่าคุณสมบัติได้อย่างง่ายดาย

ใช้qdbusดังต่อไปนี้:

qdbus  --literal | sort

คลิกสามครั้งเพื่อเลือกcom.canonical.indicator.applicationw / nl ในเอาต์พุต

...  
:1.97  
:1.98  
 ca.desrt.dconf  
 com.canonical.AppMenu.Registrar  
 com.canonical.hud  
 com.canonical.indicator.application  
 com.canonical.indicator.datetime  
 com.canonical.indicator.messages  
 com.canonical.indicator.printers
 com.canonical.indicator.session
 com.canonical.indicator.sound
 com.canonical.Unity
 ...  

เขียนคำสั่งถัดไปด้วยคำสั่งbash historyทำซ้ำ uparrow (ลบ| sort เพื่อทิ้งไว้เพียงqdbus --literal) และกดปุ่มกลางของเมาส์เพื่อทำคำสั่งให้สมบูรณ์:

qdbus  --literal  com.canonical.indicator.application

คลิกสามครั้งที่บรรทัดสุดท้าย

/
/org
/org/ayatana
/org/ayatana/indicator
/org/ayatana/indicator/service
/com
/com/canonical
/com/canonical/indicator
/com/canonical/indicator/application
/com/canonical/indicator/application/service

กดปุ่มบอกตำแหน่งซ้ำแถบพื้นที่และปุ่มกลางของเมาส์เพื่อเขียน:

qdbus  --literal  com.canonical.indicator.application  /com/canonical/indicator/application/service

ดับเบิลคลิกเพื่อเลือกวิธีที่ต้องการในผลลัพธ์และกด uparrow, space bar และปุ่มกลางของเมาส์เพื่อสร้างคำสั่งและกด enter เพื่อเรียกใช้ (เพิ่มความต่อเนื่องของบรรทัดเพื่อความชัดเจนในตัวอย่างนี้):

qdbus  --literal  com.canonical.indicator.application                \
                 /com/canonical/indicator/application/service        \
                  com.canonical.indicator.application.service.GetApplications

เอาต์พุตนี้จะแสดงเฉพาะข้อมูลตัวบ่งชี้ BT และ NM (พิมพ์สวยเพื่อการแสดงผลที่นี่)

[Argument: a(sisossssss)
  {[Argument: (sisossssss)
    "bluetooth-active", 
    0, 
    ":1.155",
    [ObjectPath: /org/ayatana/NotificationItem/bluetooth_manager/Menu],
    "",
    "",
    "",
    "Bluetooth: On",
    "bluetooth-manager",
    "Bluetooth"],
    [Argument: (sisossssss) 
    "nm-signal-75", 
    1, 
    ":1.21", 
    [ObjectPath: /org/ayatana/NotificationItem/nm_applet/Menu], 
    "", 
    "", 
    "", 
    "Wireless network connection 'office WiFi 1' active: office WiFi (77%)", 
    "nm-applet", 
    "Network"]
  }
]

ตัวบ่งชี้อื่น ๆ ถูกอ้างถึงเป็นcom.canonical.indicator. ...อินเทอร์เฟซอื่น ๆ(อยู่ที่จุดเริ่มต้น) อย่างไรก็ตามนี่อาจเป็นสิ่งที่ต้องใช้ แต่ตัวบ่งชี้เมนูย่อย aps ยังคงไม่ปรากฏชื่อ:

qdbus --literal   com.canonical.AppMenu.Registrar               \
                 /com/canonical/Unity/Panel/Service             \
                  com.canonical.Unity.Panel.Service.Sync

แม้ว่าจะมี crud อยู่เป็นจำนวนมาก (อาจเป็นไอคอนอิมเมจบิต) เอาท์พุตที่ pruned และ prettied คือ:

[Argument: a(ssssbbusbbi) {
[Argument: (ssssbbusbbi) "libappmenu.so", "0x9733fe0", "", "_File", true, true, 0, "", false, false, 0],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x97352e0", "", "_Edit", true, true, 0, "", false, false, 1],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x9737868", "", "_View", true, true, 0, "", false, false, 2],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x9738920", "", "_Search", true, true, 0, "", false, false, 3],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x9739e10", "", "_Terminal", true, true, 0, "", false, false, 4],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x973c070", "", "Ta_bs", true, false, 0, "", false, false, 5],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x973d6a0", "", "_Help", true, true, 0, "", false, false, 6],
[Argument: (ssssbbusbbi) "libapplication.so", "0x90cdcd0", "bluetooth-manager",  "", false, false, 1, "<... crud ...>", true, true, 300],
[Argument: (ssssbbusbbi) "libapplication.so", "0x8e861a8", "nm-applet",          "", false, false, 1, "<... crud ...>", true, true, 450],
[Argument: (ssssbbusbbi) "libprintersmenu.so", "", "", "", false, false, 0, "", false, false, -1],
[Argument: (ssssbbusbbi) "libmessaging.so",   "0x8dabc7c", "indicator-messages", "", false, false, 1, "<... crud ...>", true, true, 200],
[Argument: (ssssbbusbbi) "libpower.so",       "0x8f0405c", "indicator-power",    "", true, false, 6,
   ". GThemedIcon battery-charged battery-full-charged-symbolic battery-full-charged gpm-battery-charged gpm-battery-100-charging ", true, true, 250],
[Argument: (ssssbbusbbi) "libsoundmenu.so",   "0x8f040b4", "indicator-sound",    "", false, false, 1, "<... crud ...>", true, true, 500],
[Argument: (ssssbbusbbi) "libdatetime.so",    "0x8e8881c", "indicator-datetime", " 1:16:10 AM", true, true, 0, "", false, false, 550],
[Argument: (ssssbbusbbi) "libsession.so",     "0x8e6045c", "indicator-session-devices", "", false, false, 1, "<... crud ...>", true, true, 600]}]

หมายเหตุ: หมายเลขที่ยกเลิก 600, 550, 500, 450, 300, 250, 200 ที่สัมพันธ์กันจากขวาไปซ้ายจับคู่ aps กับไอคอนตัวบ่งชี้


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