Due to some reason, after discussion with my mentor, I decided my next mission to be written the GNOME Shell Extensions for GTG.
In order to develop the GNOME Shell Extensions, I read some materials from the following websites:
These information is very helpful and follow the tutorial I did my first simple GNOME Shell Extensions which adds a button in the panel and display hello world message.
But there are still lots problem occurs. My first question is how the extensions be loaded. It seems that the extensions will not be loaded itself when GNOME Shell start. We need to add the extension uid:
$gsettings set org.gnome.shell enabled-extensions "[m@heymendy.com]"
then
$gsettings get org.gnome.shell enable-extensions
But when I did some changes to the extension file, I log out the gnome and then log in so that the new files can be loaded. Then I found a way that can make GNOME Shell reload extensions without log out, which is press Alt + F2, and type r.
The next problem is debug. I did not know how to debug it. After lots Google searching, I finally know that all the log information was displayed through global.log() function, and the way to see it is press Alt + F2 and type lg. And the global.breakpoint() can force a gdb breakpoint from _javascript_.
The hardest problem is that I found there are few materials about GNOME Shell Extensions. So when some problem occurs it took longer time to solve. But lucky I download the GNOME Shell code, I am sure I can learn a lots of stuff from there.