วันอังคารที่ 6 ธันวาคม พ.ศ. 2554

มาเขียน Gnome Shell Extension ง่ายๆ กัน

ปัญหามีอยู่ว่าโปรแกรมที่เขียนบน Gnome 2 ที่ใช้การฝัง icon ในส่วน Notification Panel มันดันไม่แสดงผลบน Panel ข้างบนของ Gnome 3 เพราะของที่เคยอยู่ใน Notification Area มันไปฝังอยู่ด้านล่างขวาของจอภาพ จริงๆ ก็ไม่ใช้ความผิดของ Gnome 3 นะ -_-" แต่เราสามารถปรับแต่ง Gnome 3 ให้ถูกใจเราได้ โดยการเขียน Extension นั่นเอง สำหรับบทความนี้จะมาแนะนำการเขียน Gnome Extesion ในการแก้ปัญหานี้กันครับ :) ดูภาพประกอบครับ





แก้ไขแล้ว





ส่วนประกอบของ Gnome Extension ก็ง่ายมากครับมีอยู่ 3 ไฟล์




  • extension.js - เป็น script ที่เราจะเขียนกันครับ

  • metadata.json - เป็นข้อมูล metadata ของ extension เช่น จะใช้กับ gnome-shell รุ่นใดได้บ้าง extension นี้ชื่ออะไร เป็นต้น

  • stylesheet.css - กำหนดหน้าตา extenstion เป็น css นี่แหละครับ



มาลงมือกันเลย สร้าง dir ชื่อ gofris-hide-icon@redlinesoft.net เพื่อเป็นที่เก็บ extension จะตั้งชื่อเป็น ชื่อเรียก@โดเมนเนม ดังนี้



sudo mkdir /usr/share/gnome-shell/extensions/gofris-icon-hide@redlinesoft.net



จากนั้น ก็สร้างไฟล์ metadata.json ดังนี้



{
"shell-version": ["3.0.2","3.2", "3.2.1"],
"uuid": "gofris-icon-hide@redlinesoft.net",
"name": "Gofris Status Icon",
"description": "Integrates Gofris into System Status Icon"
}



แล้วก็มาเขียน extension.js กันดังนี้



const StatusIconDispatcher = imports.ui.statusIconDispatcher;

function enable() {
StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['gofris-en'] = 'gofris-en';
}

function disable() {
StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['gofris-en'] = '';
}

function init() {
}



จากนั้น chmod ให้ extension นี้สามารถทำงานได้



sudo chmod 755 -R /usr/share/gnome-shell/extensions/gofris-icon-hide@redlinesoft.net



เปิด gnome-tweak-tool ขึ้นมาแล้วกดเปิดการทำงานของ extension นี้





อ้ออย่าลืม restart gnome shell สักรอบครับ กด alt+f2 พิมพ์ r เท่านี้ก็ใช้งานได้แล้ว :) ข้อมูลเพิ่มเติมเกี่ยวกับการเขียน gnome-extension ลองดูได้ที่ลิงค์ข้างล่างครับ




ไม่มีความคิดเห็น:

แสดงความคิดเห็น