SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
Moblin2
Window Manager(Mutter)
Plugin
William.L
wiliwe@gmail.com
2009-07-10
2
• What is Mutter?
• When/Where does the window manager load plugin?
• Plugin common interfaces
• Where is the Clutter stage?
• How the window manager show Clutter stage?
• Where to add customized Clutter contents
• How the window manager choose plugins?
• Where is X-window client init script?
• How to add debug messages in codes?
Outline
3
What is Mutter?
Metacity Clutter
Metacity
A lightweight window manager written by Havoc
Pennington from Red Hat
Implemented with the GTK+ 2.x toolkit
Integrates well with the GNOME 2.x platform
Clutter
An open source (LGPL 2.1) software library for creating
portable and dynamic graphical user interfaces
Uses OpenGL for rendering (optional OpenGL|ES on
mobile and embedded platforms)
Wraps an easy to use API around GL’s complexity
4
When/Where does the Window Manager
load Plugin? (1/2)
Main Entry
MetacitySrc/src/core/ main.c
When it enter window manager main() and then
call meta_display_open()
Finally, meta_display_open() indirectly calls
mutter_plugin_manager_load() and loads
PluginName.so plugin
Use GModule to load plugin, PluginName.so
5
When/Where does the Window Manager
load Plugin? (2/2)
Store loaded plugin contents in a object of type of
GtypeModule (MutterModule class)
Default plugin file path is store in global variable
MUTTER_PLUGIN_DIR
The path to plugin files
/usr/lib/metacity/plugins/clutter/
Current available default plugin files are
default.so
moblin-netbook.so
6
Plugin common interfaces (1/2)
Defined in
MetacitySrc/src/include/ mutter-plugin.h
struct _MutterPluginClass
7
Plugin common interfaces (2/2)
Interfaces
minimize()
maximize()
unmaximize()
map()
destroy()
switch_workspace()
kill_effect()
xevent_filter()
plugin_info()
8
Where is the Clutter stage?
MetacitySrc/src/compositor/mutter/compositor-
mutter.c
struct _MetaCompScreen
The Clutter stage’s initialization is in
clutter_cmp_manage_screen()
9
How the window manager show Clutter
stage?
Put Clutter stage on Overlay window layer that
is between Normal window and Screen Saver
window(the most top layer)
MetacitySrc/src/compositor/mutter/compositor-
mutter.c
TheXwinOfStage = clutter_x11_get_stage_window(CLUTTER_STAGE
(ClutterStage));
OverlayWin = XCompositeGetOverlayWindow (XDisplay, XRootWindow);
XreparentWindow (XDisplay, TheXwinOfStage, OverlayWin, 0, 0);
10
Where to add customized Clutter contents?
In customized plugin class's constructed()
function
11
How to choose plugins?
One more plugins but only one could be used in
Gconf
key - “apps/metacity/general/clutter_plugins“
Where is X-window client init script?
/etc/X11/moblin/xinitrc
How to add debug messages in codes?
Using code:
g_debug("n [%]... n", G_STRLOC, ...);

Weitere ähnliche Inhalte

Andere mochten auch (12)

Introdunction To Network Management Protocols SNMP & TR-069
Introdunction To Network Management Protocols SNMP & TR-069Introdunction To Network Management Protocols SNMP & TR-069
Introdunction To Network Management Protocols SNMP & TR-069
 
CWMP TR-069 Training (Chinese)
CWMP TR-069 Training (Chinese)CWMP TR-069 Training (Chinese)
CWMP TR-069 Training (Chinese)
 
Qt Development Tools
Qt Development ToolsQt Development Tools
Qt Development Tools
 
Android Logging System
Android Logging SystemAndroid Logging System
Android Logging System
 
IPv6 Overview
IPv6 OverviewIPv6 Overview
IPv6 Overview
 
Asterisk (IP-PBX) CDR Log Rotation
Asterisk (IP-PBX) CDR Log RotationAsterisk (IP-PBX) CDR Log Rotation
Asterisk (IP-PBX) CDR Log Rotation
 
MGCP Overview
MGCP OverviewMGCP Overview
MGCP Overview
 
Android Storage - Internal and External Storages
Android Storage - Internal and External StoragesAndroid Storage - Internal and External Storages
Android Storage - Internal and External Storages
 
Introduction to SIP(Session Initiation Protocol)
Introduction to SIP(Session Initiation Protocol)Introduction to SIP(Session Initiation Protocol)
Introduction to SIP(Session Initiation Protocol)
 
MTP & PTP
MTP & PTPMTP & PTP
MTP & PTP
 
Usage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP LanguagesUsage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP Languages
 
Android Storage - Vold
Android Storage - VoldAndroid Storage - Vold
Android Storage - Vold
 

Ähnlich wie Moblin2 - Window Manager(Mutter) Plugin

Java Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage EssayJava Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage Essay
Liz Sims
 
The Listening: Email Client Backdoor
The Listening: Email Client BackdoorThe Listening: Email Client Backdoor
The Listening: Email Client Backdoor
Michael Scovetta
 

Ähnlich wie Moblin2 - Window Manager(Mutter) Plugin (20)

Import golang; struct microservice
Import golang; struct microserviceImport golang; struct microservice
Import golang; struct microservice
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo Quickstart
 
229 Convergence In Device Software
229   Convergence In Device Software229   Convergence In Device Software
229 Convergence In Device Software
 
Qtframework
QtframeworkQtframework
Qtframework
 
Import golang; struct microservice - Codemotion Rome 2015
Import golang; struct microservice - Codemotion Rome 2015Import golang; struct microservice - Codemotion Rome 2015
Import golang; struct microservice - Codemotion Rome 2015
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
 
Scaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdf
 
Kushal
KushalKushal
Kushal
 
Mobile Application Development class 001
Mobile Application Development class 001Mobile Application Development class 001
Mobile Application Development class 001
 
G T K+ 101
G T K+ 101G T K+ 101
G T K+ 101
 
MeeGo Architecture
MeeGo ArchitectureMeeGo Architecture
MeeGo Architecture
 
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE SystemsXPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
 
Next generation of frontend architectures - Luca Mezzalira - Codemotion Milan...
Next generation of frontend architectures - Luca Mezzalira - Codemotion Milan...Next generation of frontend architectures - Luca Mezzalira - Codemotion Milan...
Next generation of frontend architectures - Luca Mezzalira - Codemotion Milan...
 
The State of the Veil Framework
The State of the Veil FrameworkThe State of the Veil Framework
The State of the Veil Framework
 
Java Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage EssayJava Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage Essay
 
Developing and Benchmarking Qt applications on Hawkboard with Xgxperf
Developing and Benchmarking Qt applications on Hawkboard with XgxperfDeveloping and Benchmarking Qt applications on Hawkboard with Xgxperf
Developing and Benchmarking Qt applications on Hawkboard with Xgxperf
 
The Listening: Email Client Backdoor
The Listening: Email Client BackdoorThe Listening: Email Client Backdoor
The Listening: Email Client Backdoor
 
09 gui 13
09 gui 1309 gui 13
09 gui 13
 
DEVELOPMENT TOOLS FOR MICROCONTROLLERS.pdf
DEVELOPMENT TOOLS FOR MICROCONTROLLERS.pdfDEVELOPMENT TOOLS FOR MICROCONTROLLERS.pdf
DEVELOPMENT TOOLS FOR MICROCONTROLLERS.pdf
 
Csharp dot net
Csharp dot netCsharp dot net
Csharp dot net
 

Mehr von William Lee

Study of Chromium OS
Study of Chromium OSStudy of Chromium OS
Study of Chromium OS
William Lee
 
More Details about TR-069 (CPE WAN Management Protocol)
More Details about TR-069 (CPE WAN Management Protocol)More Details about TR-069 (CPE WAN Management Protocol)
More Details about TR-069 (CPE WAN Management Protocol)
William Lee
 
Introdunction to Network Management Protocols - SNMP & TR-069
Introdunction to Network Management Protocols - SNMP & TR-069Introdunction to Network Management Protocols - SNMP & TR-069
Introdunction to Network Management Protocols - SNMP & TR-069
William Lee
 

Mehr von William Lee (19)

Usage Note of SWIG for PHP
Usage Note of SWIG for PHPUsage Note of SWIG for PHP
Usage Note of SWIG for PHP
 
Upgrade GCC & Install Qt 5.4 on CentOS 6.5
Upgrade GCC & Install Qt 5.4 on CentOS 6.5 Upgrade GCC & Install Qt 5.4 on CentOS 6.5
Upgrade GCC & Install Qt 5.4 on CentOS 6.5
 
Usage Notes of The Bro 2.2 / 2.3
Usage Notes of The Bro 2.2 / 2.3Usage Notes of The Bro 2.2 / 2.3
Usage Notes of The Bro 2.2 / 2.3
 
Viewing Android Source Files in Eclipse (Chinese)
Viewing Android Source Files in Eclipse  (Chinese)Viewing Android Source Files in Eclipse  (Chinese)
Viewing Android Source Files in Eclipse (Chinese)
 
Usage Note of Microsoft Dependency Walker
Usage Note of Microsoft Dependency WalkerUsage Note of Microsoft Dependency Walker
Usage Note of Microsoft Dependency Walker
 
Usage Note of PlayCap
Usage Note of PlayCapUsage Note of PlayCap
Usage Note of PlayCap
 
Qt4 App - Sliding Window
Qt4 App - Sliding WindowQt4 App - Sliding Window
Qt4 App - Sliding Window
 
GTK+ 2.0 App - Desktop App Chooser
GTK+ 2.0 App - Desktop App ChooserGTK+ 2.0 App - Desktop App Chooser
GTK+ 2.0 App - Desktop App Chooser
 
GTK+ 2.0 App - Icon Chooser
GTK+ 2.0 App - Icon ChooserGTK+ 2.0 App - Icon Chooser
GTK+ 2.0 App - Icon Chooser
 
Note of CGI and ASP
Note of CGI and ASPNote of CGI and ASP
Note of CGI and ASP
 
L.A.M.P Installation Note --- CentOS 6.5
L.A.M.P Installation Note --- CentOS 6.5L.A.M.P Installation Note --- CentOS 6.5
L.A.M.P Installation Note --- CentOS 6.5
 
C Program Runs on Wrong Target Platform(CPU Architecture)
C Program Runs on Wrong Target Platform(CPU Architecture)C Program Runs on Wrong Target Platform(CPU Architecture)
C Program Runs on Wrong Target Platform(CPU Architecture)
 
Internationalization(i18n) of Web Page
Internationalization(i18n) of Web PageInternationalization(i18n) of Web Page
Internationalization(i18n) of Web Page
 
Notes for SQLite3 Usage
Notes for SQLite3 UsageNotes for SQLite3 Usage
Notes for SQLite3 Usage
 
Cygwin Install How-To (Chinese)
Cygwin Install How-To (Chinese)Cygwin Install How-To (Chinese)
Cygwin Install How-To (Chinese)
 
Study of Chromium OS
Study of Chromium OSStudy of Chromium OS
Study of Chromium OS
 
More Details about TR-069 (CPE WAN Management Protocol)
More Details about TR-069 (CPE WAN Management Protocol)More Details about TR-069 (CPE WAN Management Protocol)
More Details about TR-069 (CPE WAN Management Protocol)
 
Introdunction to Network Management Protocols - SNMP & TR-069
Introdunction to Network Management Protocols - SNMP & TR-069Introdunction to Network Management Protocols - SNMP & TR-069
Introdunction to Network Management Protocols - SNMP & TR-069
 
Qt Animation
Qt AnimationQt Animation
Qt Animation
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Kürzlich hochgeladen (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Moblin2 - Window Manager(Mutter) Plugin

  • 2. 2 • What is Mutter? • When/Where does the window manager load plugin? • Plugin common interfaces • Where is the Clutter stage? • How the window manager show Clutter stage? • Where to add customized Clutter contents • How the window manager choose plugins? • Where is X-window client init script? • How to add debug messages in codes? Outline
  • 3. 3 What is Mutter? Metacity Clutter Metacity A lightweight window manager written by Havoc Pennington from Red Hat Implemented with the GTK+ 2.x toolkit Integrates well with the GNOME 2.x platform Clutter An open source (LGPL 2.1) software library for creating portable and dynamic graphical user interfaces Uses OpenGL for rendering (optional OpenGL|ES on mobile and embedded platforms) Wraps an easy to use API around GL’s complexity
  • 4. 4 When/Where does the Window Manager load Plugin? (1/2) Main Entry MetacitySrc/src/core/ main.c When it enter window manager main() and then call meta_display_open() Finally, meta_display_open() indirectly calls mutter_plugin_manager_load() and loads PluginName.so plugin Use GModule to load plugin, PluginName.so
  • 5. 5 When/Where does the Window Manager load Plugin? (2/2) Store loaded plugin contents in a object of type of GtypeModule (MutterModule class) Default plugin file path is store in global variable MUTTER_PLUGIN_DIR The path to plugin files /usr/lib/metacity/plugins/clutter/ Current available default plugin files are default.so moblin-netbook.so
  • 6. 6 Plugin common interfaces (1/2) Defined in MetacitySrc/src/include/ mutter-plugin.h struct _MutterPluginClass
  • 7. 7 Plugin common interfaces (2/2) Interfaces minimize() maximize() unmaximize() map() destroy() switch_workspace() kill_effect() xevent_filter() plugin_info()
  • 8. 8 Where is the Clutter stage? MetacitySrc/src/compositor/mutter/compositor- mutter.c struct _MetaCompScreen The Clutter stage’s initialization is in clutter_cmp_manage_screen()
  • 9. 9 How the window manager show Clutter stage? Put Clutter stage on Overlay window layer that is between Normal window and Screen Saver window(the most top layer) MetacitySrc/src/compositor/mutter/compositor- mutter.c TheXwinOfStage = clutter_x11_get_stage_window(CLUTTER_STAGE (ClutterStage)); OverlayWin = XCompositeGetOverlayWindow (XDisplay, XRootWindow); XreparentWindow (XDisplay, TheXwinOfStage, OverlayWin, 0, 0);
  • 10. 10 Where to add customized Clutter contents? In customized plugin class's constructed() function
  • 11. 11 How to choose plugins? One more plugins but only one could be used in Gconf key - “apps/metacity/general/clutter_plugins“
  • 12. Where is X-window client init script? /etc/X11/moblin/xinitrc
  • 13. How to add debug messages in codes? Using code: g_debug("n [%]... n", G_STRLOC, ...);