เราจะสร้างแอพเพล็ตง่ายๆสำหรับ อบเชย. ในการเริ่มต้นเราต้องรู้ว่า อบเชย เสนอแอพเพล็ตประเภทต่างๆ:
- TextApplet (แสดงฉลากบนแผงควบคุม)
- ไอคอนแอปเพล็ต (แสดงไอคอนบนแผงควบคุม)
- ข้อความIconApplet (ระบุทั้งไอคอนและป้ายกำกับบนแผงควบคุม)
- แอพเพล็ต (สำหรับนักพัฒนาที่ไม่ยอมใครง่ายๆซึ่งแสดงช่องว่างที่คุณสามารถกรอกเองได้)
ในบทช่วยสอนนี้เราเพียงแค่ต้องการแสดงไอคอนบนแผงควบคุมดังนั้นเราจะใช้ "IconApplet" เพื่อตั้งโปรแกรมแอพเพล็ตของเราให้ อบเชยหรือ Gnome เราจำเป็นต้องรู้และรู้บางอย่างเกี่ยวกับการเขียนโปรแกรม Javascript
ตำแหน่งของรหัสของเรา
ก่อนอื่นมาดูตำแหน่งของไฟล์ของเรา ตำแหน่งของแอพเพล็ตของเรามีให้ตามที่อยู่ต่อไปนี้:
/.local/share/cinnamon/applets
en o /usr/share/cinnamon/applets
ไฟล์ที่ประกอบเป็นแอพเพล็ตของเรา
เราดำเนินการกำหนด applet.js
ตอนนี้เรามาดูรหัสของ applet.js และอธิบายแต่ละประโยค:
รหัส applet.js เริ่มต้น
มาดูแต่ละประโยคของโค้ดก่อนหน้านี้
const Lang = imports.lang; / * เราเรียกใช้ไลบรารี Gtk และ Lang ซึ่งเป็นส่วนพื้นฐานของแอปพลิเคชัน GNOME ทำให้เราสามารถสร้างหน้าต่างวิดเจ็ตและเชื่อมโยงได้ * / Const Applet = imports.ui.applet; / * เราเรียกใช้ไลบรารี Applet ที่ช่วยให้เราสร้างแอพเพล็ตสำหรับ Cinnamon และ Gnome และในเวลาเดียวกันก็ให้คุณสมบัติและฟังก์ชันแก่เรา * / Const GLib = imports.gi.GLib; / * GLib เป็นไลบรารีวิธีใช้ที่ช่วยให้เราสามารถทำสิ่งต่างๆใน GNOME ได้เช่นบอกว่าไฟล์ hellognome.html อยู่ที่ไหนมันเป็นไลบรารีที่รับผิดชอบสัญญาณ * / Const Gettext = imports.gettext.domain ('cinnamon -applets '); const _ = Gettext.gettext; // ไลบรารี Gettext ที่อนุญาตให้เรานำเข้าลักษณะเฉพาะของเราเองสำหรับเดสก์ท็อป Cinnamon const PopupMenu = imports.ui.popupMenu; / * PopupMenu เป็นไลบรารีสำหรับใช้ตัวจัดการเมนูช่วยให้เราสามารถเรียกใช้วิดเจ็ตเมนูป๊อปอัพที่มักใช้ในแอพเพล็ต * / Function MyApplet (การวางแนว) {this._init (การวางแนว); }
ตัวสร้างแอพเพล็ตของเราถูกกำหนดไว้ด้านล่างลองดูคลาสหรือคลาสของเรา:
เรามาดูนิยามของแต่ละประโยคต่อไป
MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // เรากำหนด Class หรือ Class _init: function (orientation) ของเรา {Applet.IconApplet.prototype._init.call (นี่คือการวางแนว); / * เรากำหนดทิศทางผ่าน Cinnamon เราตั้งค่าว่าจะให้แผงแอพเพล็ตอยู่ที่ด้านบนหรือด้านล่าง (สิ่งนี้มีผลต่อการวางแนวของเมนูแอพเพล็ต) * / ลอง {// Do something} Catch (e) {// จะเกิดอะไรขึ้นหากเกิดข้อผิดพลาด } / * เราใช้การลอง / จับเพื่อตรวจจับข้อผิดพลาดที่อาจเกิดขึ้นในแอพเพล็ตของเราและเพื่อให้แน่ใจว่ามีการเขียนลงในบันทึกข้อผิดพลาดส่วนกลาง วิธีนี้หากมีข้อผิดพลาดคุณจะเห็นข้อผิดพลาดใน Looking Glass: กด Alt F2 พิมพ์ "lg" แล้วคลิกแท็บ "error" * / This.menuManager = new PopupMenu.PopupMenuManager (this); // สร้างเมนูป๊อปอัพและตั้งค่าตัวจัดการเมนู this.menu = new Applet.AppletPopupMenu (นี่คือการวางแนว); // เราสร้างเมนู this.menuManager.addMenu (this.menu); // เราเพิ่มเมนูลงในเมนูป๊อปอัพ this.makeMenu (); // เมนู makeMenu เราสร้างเมนูที่เรียกว่า makeMenu this.buildContextMenu (); // buildContextMenu เราสร้างเมนูที่เรียกว่า buildContextMenu this.set_applet_icon_name ("โฟลเดอร์"); / * เราสร้างแอพเพล็ตกรณีนี้ไม่ซ้ำกันไอคอนที่เลือกคือโฟลเดอร์หรือโฟลเดอร์เรายังสามารถสร้างแอพเพล็ตข้อความได้หากต้องการ * /
ตัวอย่างเช่นเปลี่ยนชื่อ "โฟลเดอร์" เป็น "เทอร์มินัล" "docky" เพื่อสร้างชื่อใหม่ดูชื่อไอคอน Gnome หรือ Cinnamon หรือธีมไอคอนอื่น ๆ
/usr/share/icons
this.set_applet_tooltip (_ ("คลิกที่นี่เพื่อฆ่าหน้าต่าง")); // จับเพื่อตรวจจับข้อผิดพลาดที่อาจเกิดขึ้นในแอพเพล็ตของเรา จับ (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (PopupMenu.PopupMenuItem ใหม่ ("ข้อความทดสอบ", {reactive: true})); }, / * เรากำหนดชื่อของเมนู makeMenu และลักษณะของมัน ในกรณีนี้ป้ายกำกับคือ Test Message "เราจะกำหนด {reactive: true} เรากำหนดว่าพื้นหลังของ menuitem จะเปลี่ยนไปเมื่อตัวชี้ผ่าน menuitem ผ่าน true ถ้าเป็นเท็จสิ่งที่ตรงกันข้ามจะเกิดขึ้น * / BuildContextMenu: function () {this.menu .addMenuItem (PopupMenu.PopupMenuItem ใหม่ ("show", {reactive: true}));}, // เรากำหนดชื่อของเมนู makeMenu และลักษณะเฉพาะในกรณีนี้ป้ายกำกับคือ "show ". on_applet_clicked: function (event) {this.menu.toggle ();} // สัญญาณที่ปล่อยออกมาจากแอพเพล็ตเพื่อเรียกใช้ฟังก์ชันเมนูป๊อปอัพ main (metadata, orientation) {ให้ myApplet = new MyApplet (orientation); return myApplet;} / * สุดท้ายเราต้องเพิ่มฟังก์ชัน "main" ซึ่งน่าจะเหมือนกันในแต่ละแอปเพล็ตอินสแตนซ์ของแอพเพล็ตของเราถูกสร้างขึ้นและส่งกลับไปที่ Cinnamon * / // ปิดลูปส่งคืน myApplet ;
เราดำเนินการกำหนด metadata.json
"last-modified": "1331990905", // ฉบับล่าสุด. "description": "คลิกที่แอพเพล็ตเพื่อแสดงเมนู gtk ที่กำหนดเอง", // คำอธิบายแอปเพล็ต "icon": "docky", // ไอคอนที่ใช้สำหรับคำอธิบายแอพเพล็ต ดังตัวอย่างเช่นเปลี่ยนชื่อ "docky" เป็น "terminal", "folder" "uuid": "black" // โฟลเดอร์ที่มีไฟล์ metadata.json ของเรา "name": "Custom gtk menu" // ชื่อแอปเพล็ต
หมายเหตุ: หากต้องการตั้งชื่อใหม่ให้ดูชื่อของไอคอน Gnome หรือ Cinnamon หรือธีมไอคอนอื่น ๆ ให้ไปที่ที่อยู่ระบบไฟล์
/usr/share/icons
ภาพแอพเพล็ตที่สร้างขึ้น
Qt, Gtk, Vala และภาษาอื่น ๆ ที่ใช้สร้างแอพเพล็ตสำหรับ Cinnamon หรือ Gnome
มาดูตำแหน่งของแอพเพล็ตของเราสำหรับ Cinnamon
ตำแหน่งของแอพเพล็ตของเรามีให้ตามที่อยู่ต่อไปนี้:
/.local/share/cinnamon/applets
en o
/usr/share/cinnamon/applets
องค์ประกอบของแอพเพล็ตของเรา
เราดำเนินการกำหนด applet.js
เริ่มต้นรหัส applet.js
ท้าย applet.js
ตอนนี้เรามาดูโค้ด applet.js และอธิบายคำสั่ง
โค้ดที่เขียนจะเหมือนกับตัวอย่างก่อนหน้านี้ที่เขียนด้วย Javascript
เฉพาะสัญญาณเท่านั้นที่มีการเปลี่ยนแปลงซึ่งจะเรียกใช้งานอัตโนมัติของเรา
on_applet_clicked: function (เหตุการณ์) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }
ระบบปฏิบัติการอัตโนมัติของเราสามารถเขียนด้วย Qt, Gtk, Gtkmm, wxWidget, Vala และอื่น ๆ ภาษาที่สามารถสร้างไฟล์ปฏิบัติการได้เอง เรียกใช้งานอัตโนมัติของเราเรียกว่า Menu และอยู่ในโฟลเดอร์ Qtmenu
นอกจากนี้เรายังสามารถใช้ภาษาโปรแกรมอื่น ๆ ที่มีการผูกสำหรับ Gtk เช่นในกรณีของ PyGTK, Ruby Gtk, Perl Gtk เป็นต้น ซึ่งสามารถใช้โดยใช้สคริปต์เพื่อรันโค้ดที่เขียนด้วยภาษาเหล่านั้น หลักการเหมือนกันเสมอในการเรียกโปรแกรมสร้างเมนูป๊อปอัพและหน้าต่างป๊อปอัพตามความต้องการของเรา
มาดูโค้ดของระบบปฏิบัติการอัตโนมัติของเราที่เขียนด้วย Qt
เราดำเนินการกำหนด metadata.json
โค้ดเขียนในลักษณะเดียวกับตัวอย่างก่อนหน้านี้
รูปภาพของแอพเพล็ตที่สร้างด้วย Qt
รูปภาพของแอพเพล็ตที่สร้างด้วย Gtk 3.10
ฉันฝากตัวอย่างเล็ก ๆ ของแอพเพล็ตที่ใช้ไฟล์ปฏิบัติการที่เขียนด้วย Gtk ในกรณีนี้เราใช้เมนู myGtkMenu ที่ใช้ใน OpenBox
เป็นเมนูที่ดำเนินการเอง
บทความน่ารู้ ...
ขอขอบคุณ . ของฉันคือเราเรียนรู้วันละนิดทุกวัน
ดีมากฉันชอบมากฉันอยากรู้มาตลอดว่าแอปเพล็ตประเภทนี้เกิดขึ้นได้อย่างไร
การแก้ไขเล็กน้อย Gettext ไม่มีอะไรเฉพาะเจาะจงสำหรับ Cinnamon ตามที่กล่าวไว้ในบทความมันเป็นไลบรารีที่ทำให้การแปลอัตโนมัติเป็นไปได้และจากเทมเพลต
บทช่วยสอนดีมากและทั้งหมดนั้น แต่สิ่งสำคัญที่คุณไม่ได้ใส่: ลิงก์ไปยังวอลเปเปอร์?
ดาวน์โหลดวอลเปเปอร์ Linux Mint 16 Petra
แพคเกจนี้เรียกว่า mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra
บทความที่น่าสนใจมาก ความจริงก็คือฉันสงสัยมาตลอดว่าแอพเพล็ตเหล่านี้ถูกสร้างขึ้นมาได้อย่างไร บางทีฉันอาจจะได้รับการสนับสนุนให้สร้างแอพเพล็ตเครื่องเล่นขนาดเล็กสำหรับ MPD หรืออะไรที่คล้ายกัน
ขอบคุณสำหรับการแบ่งปัน!
ยอดเยี่ยมฉันแค่หาวิธีแก้ไขแอพเพล็ต cinnamon nm-applet (ตัวจัดการเครือข่าย) เพื่อให้มันเปลี่ยนสีเมื่อฉันไม่มีอินเทอร์เน็ต (ฉันมีการ์ด wifi) และสิ่งนี้ช่วยให้ฉันปรับทิศทางตัวเองได้เล็กน้อย
มาเรียนที่นั่นฉันไม่รู้ว่าคุณโพสต์ที่นี่ ความนับถือ.
ขณะที่คุณเดิน Matute … .. ฉันมักจะเดินไปรอบ ๆ ส่วนเหล่านี้ ไชโย
บทความที่ดี
ไม่พบไฟล์ถูกปิดใช้งานเนื่องจากละเมิดลิขสิทธิ์
สิ่งที่ฉันหมายถึงคือถ้าคุณมีคุณสามารถอัปโหลดอีกครั้งได้หรือไม่ได้โปรด
ขอขอบคุณ.