<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alexander Larsson &#187; General</title>
	<atom:link href="http://blogs.gnome.org/alexl/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/alexl</link>
	<description>Cool links and commentary</description>
	<lastBuildDate>Thu, 26 Jan 2012 20:24:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Resources in glib</title>
		<link>http://blogs.gnome.org/alexl/2012/01/26/resources-in-glib/</link>
		<comments>http://blogs.gnome.org/alexl/2012/01/26/resources-in-glib/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 20:24:17 +0000</pubDate>
		<dc:creator>alexl</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=293</guid>
		<description><![CDATA[Last week I landed a new feature in Glib that I&#8217;ve been wanting to do for a long time: A resource framework. Resources are things that are naturally part of an application or library, but not really normal code. For instance, our code increasingly uses xml  to describe user interfaces and menus. Traditionally these either [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I landed a new feature in Glib that I&#8217;ve been wanting to do for a long time: A resource framework. Resources are things that are naturally part of an application or library, but not really normal code. For instance, our code increasingly uses xml  to describe user interfaces and menus.</p>
<p>Traditionally these either had to be manually inserted into the code, like so:</p>
<pre>static const gchar *ui_info =
"&lt;ui&gt;"
"  &lt;menubar name='MenuBar'&gt;"
"    &lt;menu action='FileMenu'&gt;"
"      &lt;menuitem action='Quit'/&gt;"
"    &lt;/menu&gt;"
"  &lt;/menubar&gt;"
"&lt;/ui&gt;";</pre>
<p>Or a file was stored in /usr/share/$application/ and you had to write code to manually find and load the file, and cache it if used often. This is not a lot of code, but it can be tricky as all I/O code needs to handle errors and the external file makes it harder to make the library/app relocatable.</p>
<p>Instead, with resources you store your data file as plain files in your source tree, edit them with your favourite editor, with full syntax highlighting, automatic indentation, etc. Then you reference these files from a resource description file (another xml file) and use <em>glib-compile-resources</em> to compile these into a binary chunk which is linked into the application.</p>
<p>The resource framework then automatically registers all such resource bundles in a global namespace, where you can quickly look up resource data by a resource path. There are API calls to get the data as a direct pointer, as well as streaming data, but in most cases there are helper functions that let you just specify the pathname. So, for instance, you can just do:</p>
<pre> gtk_builder_add_from_resource (builder, "/org/gnome/appname/menu.ui", &amp;error);</pre>
<p>Which would handle all the work for you. And while this looks like an I/O operation its really just a hashtable lookup on linked-in data, reading from the (shared, readonly) data section in your executable, so its very fast and safe.</p>
<p>Additionally there are some tricks the resource compiler can do for you. For instance, you can specify that a resource should be compressed, which means that the data is stored compressed, and the APIs uncompress for you automatically. You can also specify that xml files should be pre-processed to strip away whitespace, which avoids wasting time and memory on something that is not useful at runtime.</p>
<p>There is also support for resource:// URIs, which means you can easily reference resource data like icons from e.g. CSS and UI files.</p>
<p>On Linux we use some gcc specific extensions to store the resources in separate ELF sections, which means its very easy to extract resource data from the binaries. Glib even ships with a tool that lets you do this:</p>
<pre>$ gresource list libgtk-3.so
/org/gtk/libgtk/cursor/dnd-ask.png
/org/gtk/libgtk/cursor/dnd-copy.png
/org/gtk/libgtk/cursor/dnd-link.png
/org/gtk/libgtk/cursor/dnd-move.png
/org/gtk/libgtk/cursor/dnd-none.png
/org/gtk/libgtk/gtk-default.css
/org/gtk/libgtk/gtk-win32.css
$ gresource extract libgtk-3.so /org/gtk/libgtk/gtk-default.css
@define-color fg_color #000;
@define-color bg_color #dcdad5;
@define-color text_color #000;
...</pre>
<p>If you&#8217;re interested in using resources in your application, check out the <a title="GResource docs" href="http://developer.gnome.org/gio/unstable/gio-GResource.html">documentation</a>, or look at this <a href="http://git.gnome.org/browse/nautilus/commit/?id=733c890a5d7e4615b754accc0c7906545b9a0b59">example commit</a> that converts Nautilus to use resources.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/alexl/2012/01/26/resources-in-glib/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Gtk+ work on windows</title>
		<link>http://blogs.gnome.org/alexl/2011/11/25/gtk-work-on-windows/</link>
		<comments>http://blogs.gnome.org/alexl/2011/11/25/gtk-work-on-windows/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 16:18:39 +0000</pubDate>
		<dc:creator>alexl</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=276</guid>
		<description><![CDATA[The last few weeks I have been working on the Gtk+ win32 port. Since the client side windows work landed in Gtk+ 2.18 the Windows port has been a bit broken, but now I finally sat down and fixed the remaining issues. So, the newly released Gtk+ 2.24.8 is now officially the best ever Gtk+ [...]]]></description>
			<content:encoded><![CDATA[<p>The last few weeks I have been working on the Gtk+ win32 port. Since the client side windows work landed in Gtk+ 2.18 the Windows port has been a bit broken, but now I finally sat down and fixed the remaining issues. So, the newly released Gtk+ 2.24.8 is now officially the best ever Gtk+ 2.x release on windows.</p>
<p>Then I forward ported all the work to the current Gtk 3 tree. It was mostly trivial, but one thing that changed a lot in Gtk3 is theming. The old windows theme was mostly a custom themeing engine, but in Gtk+ 3 we want to use engines less in favour of CSS. So, I had to completely redo the windows theme using CSS.</p>
<p>I added a few CSS extensions that access the win32 theming APIs, so you can get theme backgrounds, theme colors and theme sizes. Then the rest is just traditional CSS to bind the things together.</p>
<p>Here is an image of the current state:</p>
<p><a href="http://blogs.gnome.org/alexl/files/2011/11/widget-factor1.png"><img class="alignnone size-full wp-image-281" src="http://blogs.gnome.org/alexl/files/2011/11/widget-factor1.png" alt="Widget Factory on Windows" width="397" height="309" /></a></p>
<p>There are clearly still some issues that need fixing, but it works impressively well for just being some CSS. <a title="gtk-win32.css" href="http://git.gnome.org/browse/gtk+/tree/gtk/gtk-win32.css">Check it out</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/alexl/2011/11/25/gtk-work-on-windows/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>A contacts update, in which robots take over the world</title>
		<link>http://blogs.gnome.org/alexl/2011/08/19/a-contacts-update-in-which-robots-take-over-the-world/</link>
		<comments>http://blogs.gnome.org/alexl/2011/08/19/a-contacts-update-in-which-robots-take-over-the-world/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 09:47:12 +0000</pubDate>
		<dc:creator>alexl</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=245</guid>
		<description><![CDATA[After a vacation and an excellent week in Berlin at the Desktop Summit I&#8217;m now back working on Gnome Contacts. I&#8217;m slowly getting most of the UI mockups implemented in preparation for the UI freeze next week, and the evolution-data-server backend in libfolks has landed and been made the default. We also have support in [...]]]></description>
			<content:encoded><![CDATA[<p>After a vacation and an excellent week in Berlin at the Desktop Summit I&#8217;m now back working on Gnome Contacts.</p>
<p>I&#8217;m slowly getting most of the UI mockups implemented in preparation for the UI freeze next week, and the evolution-data-server backend in libfolks has landed and been made the default. We also have support in evolution-data-server for the new Online Accounts system. This means we&#8217;re currently in a pretty good shape for Gnome 3.2, although there is still a lot of work to do, like getting contacts linking working.</p>
<p>However, today I&#8217;d like to talk about something else that I&#8217;ve been working on. As you can see in my <a href="http://blogs.gnome.org/alexl/2011/06/13/announcing-gnome-contacts/">last update</a> Gnome Contacts relies a great deal on avatars in the UI, and its often the case that your address book contains a lot of people that don&#8217;t have one. All these default avatar icons makes it hard to scan the contact lists.</p>
<p>To solve this I&#8217;ve been talking to the guy behind the <strong>awesome</strong> <a href="http://robohash.org/">robohash</a> site. It turns out that he&#8217;s actually somewhat of a Gnome fan, even helping out with <a href="http://news.gnome.org/">news.gnome.org</a> a long time ago. He&#8217;s agreed to let us use the source images and code (in exchange for pimping <a href="http://robohash.org/">robohash.org</a>, which you should use! It&#8217;s awesome!). I&#8217;ve been working on turning the code and images into a library that can be used locally by gnome-contacts. It&#8217;s still a work in progress, but here is a screenshot:</p>
<p><a href="http://blogs.gnome.org/alexl/files/2011/08/robohash-contacts.png"><img class="alignnone size-full wp-image-248" src="http://blogs.gnome.org/alexl/files/2011/08/robohash-contacts.png" alt="" width="413" height="306" /></a></p>
<p>This is still a work in progress, but I&#8217;m very hopeful that we can land this for Gnome 3.2.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/alexl/2011/08/19/a-contacts-update-in-which-robots-take-over-the-world/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Announcing gnome-contacts</title>
		<link>http://blogs.gnome.org/alexl/2011/06/13/announcing-gnome-contacts/</link>
		<comments>http://blogs.gnome.org/alexl/2011/06/13/announcing-gnome-contacts/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 19:31:48 +0000</pubDate>
		<dc:creator>alexl</dc:creator>
				<category><![CDATA[contacts]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=233</guid>
		<description><![CDATA[For the last few weeks we&#8217;ve been working on the new Gnome contacts applications. Allan day has done most of the design for this and blogged about this recently. Today I did the first release of the ﻿code for the Gnome 3.1.2 release. The code is still at an early state, but most non-editing functionality [...]]]></description>
			<content:encoded><![CDATA[<p>For the last few weeks we&#8217;ve been working on the new Gnome contacts applications. Allan day has done most of the design for this and blogged about this <a href="http://afaikblog.wordpress.com/2011/06/09/presenting-gnome-contacts/">recently</a>. Today I did the <a href="http://ftp.acc.umu.se/pub/gnome/sources/gnome-contacts/0.1/">first release</a> of the  ﻿code for the Gnome 3.1.2 release.</p>
<p>The code is still at an early state, but most non-editing functionality works, even if its not fully polished. Here are some screenshots to show the current state:</p>
<p><a href="http://blogs.gnome.org/alexl/files/2011/06/Screenshot-Contacts.png"></a><a href="http://blogs.gnome.org/alexl/files/2011/06/Screenshot-Contacts.png"><img class="aligncenter size-full wp-image-234" src="http://blogs.gnome.org/alexl/files/2011/06/Screenshot-Contacts.png" alt="" width="640" height="385" /></a></p>
<p><a href="http://blogs.gnome.org/alexl/files/2011/06/Screenshot-Contacts-1.png"><img class="aligncenter size-full wp-image-235" src="http://blogs.gnome.org/alexl/files/2011/06/Screenshot-Contacts-1.png" alt="" width="640" height="426" /></a></p>
<p>While Allans post showed how the UI looks I&#8217;d like to go a bit deeper into the technical side.</p>
<p>Gnome contacts uses <a href="http://telepathy.freedesktop.org/wiki/Folks">libfolks</a> for all access to contacts information. Folks then aggregates multiple sources of contact data, linking pieces of contacts into a whole. For instance, via telepathy it gets IM contacts and information about them, including presence status. Traditional addressbook information is taken from evolution-data-server (currently <a href="https://bugzilla.gnome.org/show_bug.cgi?id=638281">in progress</a>) It can also connect to social websites such as facebook or twitter via libsocialweb.</p>
<p>The social website integration at first seemed like a very interesting source of information for contacts, but it turns out that there are some non-technical problems with it. All these sites require an application specific key for API access that is generally not distributable, which is not very compatible with open source. Furthermore they have really harsh terms of service that limit what you can do with the service data and how you are able to present it (for instance twitter recently did some <a href="http://mashable.com/2011/03/12/twitter-api-clients/">very harsh changes</a> for 3rd party apps).</p>
<p>So, while libsocialweb support is still available in Gnome 3.2 if you manage to set it up we&#8217;re primary focusing on IM integration (telepathy) and regular vcard style contacts.</p>
<p>The default contacts store for libfolks will be evolution-data-server, which supports several backends including local databases and google contacts. These two will be the primary focus initially so that people can use local databases or easy sync with e.g. android devices via google contacts.</p>
<p>Tomorrow I&#8217;m leaving for the <a href="https://live.gnome.org/Hackfests/IMContactsSocial2011">IM, social and contacts</a> hackfest in Cambridge where I hope to continue working on the contacts application and the frameworks its using. Also, we want to work on integrating contacts with other applications, including the gnome shell. For instance, it would be very nice if contacts appeared in the gnome-shell overview search. </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/alexl/2011/06/13/announcing-gnome-contacts/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Broadway update 3</title>
		<link>http://blogs.gnome.org/alexl/2011/04/18/broadway-update-3/</link>
		<comments>http://blogs.gnome.org/alexl/2011/04/18/broadway-update-3/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 21:01:28 +0000</pubDate>
		<dc:creator>alexl</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[gtk+]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=217</guid>
		<description><![CDATA[This week saw some new updates of the broadway backend. We now have a in-browser window manager for the non-toplevel window mode, and the backend now support a bunch more features. I don&#8217;t want to bore you with technical mumbo jumbo though. Lets see some video instead! (Original source availible here) This will be the [...]]]></description>
			<content:encoded><![CDATA[<p>This week saw some new updates of the broadway backend. We now have a in-browser window manager for the non-toplevel window mode, and the backend now support a bunch more features.</p>
<p>I don&#8217;t want to bore you with technical mumbo jumbo though. Lets see some video instead! (Original source <a href="http://people.gnome.org/~alexl/broadway-screencast-3.webm">availible here</a>)</p>
<p><p><a href="http://blogs.gnome.org/alexl/2011/04/18/broadway-update-3/"><em>Click here to view the embedded video.</em></a></p><br />
This will be the last update in a while, as I need to spend time on other things. The code is in a pretty good shape though. There are still things to do, but most things work.</p>
<p><strong>Update:</strong> Tested this with safari on OSX, and it worked too. Also we now have nicer browser-side <a href="http://people.gnome.org/~alexl/confusion.png">window decorations</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/alexl/2011/04/18/broadway-update-3/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>Broadway update 2</title>
		<link>http://blogs.gnome.org/alexl/2011/04/07/broadway-update-2/</link>
		<comments>http://blogs.gnome.org/alexl/2011/04/07/broadway-update-2/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 19:36:57 +0000</pubDate>
		<dc:creator>alexl</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=203</guid>
		<description><![CDATA[With Gnome 3.0 being released I had some time to spend on the broadway Gtk+ backend. I managed to get rid of all roundtrips, which should make remote access snappier. I also fixed a bunch of bugs and added some missing features (including in-process cut and paste). All that stuff  is nice, but not really [...]]]></description>
			<content:encoded><![CDATA[<p>With Gnome 3.0 being released I had some time to spend on the <a href="http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update">broadway Gtk+ backend.</a></p>
<p>I managed to get rid of all roundtrips, which should make remote access snappier. I also fixed a bunch of bugs and added some missing features (including in-process cut and paste). </p>
<p>All that stuff  is nice, but not really all that interesting to show off.</p>
<p>
However, I also implemented a cool idea I&#8217;ve had for a while about using chromeless browser windows with a canvas inside to get real toplevel windows. It turns out that this works pretty well. Although you have to disable the dom.disable_window_feature_open.location config option to get rid of the location bar at the top of each window.</p>
<p>Here is a short video showing how this looks: (<a href="http://people.gnome.org/~alexl/gtk-broadway-update.webm">original webm source here</a>)</p>
<p><a href="http://blogs.gnome.org/alexl/2011/04/07/broadway-update-2/"><em>Click here to view the embedded video.</em></a></p>
<p>Cool, eh? Its all in git, go play with it.</p>
<p>PS: I have no idea why google thinks I&#8217;m in france&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/alexl/2011/04/07/broadway-update-2/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Gnome 3.0 released!</title>
		<link>http://blogs.gnome.org/alexl/2011/04/07/gnome-3-0-released/</link>
		<comments>http://blogs.gnome.org/alexl/2011/04/07/gnome-3-0-released/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 09:50:33 +0000</pubDate>
		<dc:creator>alexl</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=200</guid>
		<description><![CDATA[I can&#8217;t believe we finally released 3.0! The last months have been crazy with energy. The whole project feels revitalized. Also, I&#8217;ve been using gnome-shell now for some time, and I&#8217;m really liking it. Going back to gnome 2 now feels clumsy and painful. You should all try it out and make up your own [...]]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t believe we finally released 3.0! The last months have been crazy with energy. The whole project feels revitalized.</p>
<p>Also, I&#8217;ve been using gnome-shell now for some time, and I&#8217;m really liking it. Going back to gnome 2 now feels clumsy and painful. You should all <a href="http://gnome3.org/tryit.html">try it out</a> and make up your own mind, but please try to avoid immediately tweaking it to your old ways, instead try the new defaults for a while, you might like it more than you expect.</p>
<p>Make sure to read the <a href="https://live.gnome.org/GnomeShell/CheatSheet">cheat sheet</a> to learn all the new tricks. I really like the new alt-&lt;key over tab&gt; feature!</p>
<p><a title="Help promote GNOME 3!" href="https://live.gnome.org/ThreePointZero/Promote"><img border="0" alt="I am GNOME" src="http://www.gnome.org/wp-content/uploads/2011/04/iamgnome.png" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/alexl/2011/04/07/gnome-3-0-released/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Multimonitor support in gnome shell</title>
		<link>http://blogs.gnome.org/alexl/2011/03/22/multimonitor-support-in-gnome-shell/</link>
		<comments>http://blogs.gnome.org/alexl/2011/03/22/multimonitor-support-in-gnome-shell/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 14:46:16 +0000</pubDate>
		<dc:creator>alexl</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=180</guid>
		<description><![CDATA[I recently switched to using gnome-shell in my day to day work, and so far I like it a lot. However, I use a dual monitor setup, and the gnome-shell support for multihead was very rudimentary. Here is an example desktop with a 1920&#215;1080 primary monitor and a 1280&#215;1024 monitor on the left: And the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently switched to using gnome-shell in my day to day work, and so far I like it a lot. However, I use a dual monitor setup, and the gnome-shell support for multihead was very rudimentary.</p>
<p>Here is an example desktop with a 1920&#215;1080 primary monitor and a 1280&#215;1024 monitor on the left:</p>
<p><a href="http://blogs.gnome.org/alexl/files/2011/03/before-1.png"><img class="aligncenter size-large wp-image-181" title="Before desktop" src="http://blogs.gnome.org/alexl/files/2011/03/before-1-1024x345.png" alt="" width="450" height="151" /></a>And the corresponding overview:<a href="http://blogs.gnome.org/alexl/files/2011/03/before-2.png"><img class="aligncenter size-large wp-image-182" title="Before overview" src="http://blogs.gnome.org/alexl/files/2011/03/before-2-1024x345.png" alt="" width="450" height="151" /></a></p>
<p>There are a number of issues here:</p>
<ul>
<li>All previews are on a single monitor. So, while we have a lot of space for normal windows with two monitors we need to cram them all into part of a single monitor in overview mode. This makes the windows way to small to be usable.</li>
<li>Due to internal issues the part of the overview that shows the windows is always the same aspect ratio as the screen (i.e. the total size of all monitors). This is fine in the case of one monitor, but with two monitors it doesn&#8217;t match the monitor aspect ratio making windows even smaller.</li>
<li>During the overview switch the windows on the extra monitor fly a long way, making the animation not work really well, as well as breaking the natural grouping of related windows being on the same monitor.</li>
<li>The extra monitor space is unused</li>
<li>The thumbnails that normally slide in from the side in a slick way instead overlap the other monitor and its hard to make slide in since the mouse enters the other monitor instead.</li>
<li>The thumbnails include the &#8220;dead&#8221; area due to the different sized monitors and generally look weird.</li>
</ul>
<p>Additionally, but not visible here:</p>
<ul>
<li>Its hard to hit the hot corner on the primary monitor if there is a monitor to the left. (And to hit the menu in the right corner if there is a monitor to the right.)</li>
<li>If the top-left monitor is not the primary there is no hot corner in the easy to reach corner, instead you have to mouse into the primary and then try to hit the corner.</li>
<li>If another monitor is taller than the primary, its very hard to hit the message tray on the bottom of the primary monitor, as the pointer passed over to the dead area.</li>
<li>In most typical cases the external monitor is used to show something static, like always visible information, a presentation on a projector, or a movie on a TV. However, the extra monitors are connected to the same virtual workspaces as the primary, so when you switch workspace the apps on the extra monitors switch around too.</li>
</ul>
<p>The last few weeks I&#8217;ve been working on this, and these changes have now landed in git.</p>
<p>Here is how it looks now:</p>
<p><a href="http://blogs.gnome.org/alexl/files/2011/03/after-1.png"><img class="aligncenter size-large wp-image-183" title="Now desktop" src="http://blogs.gnome.org/alexl/files/2011/03/after-1-1024x345.png" alt="" width="450" height="151" /></a>And the overview:</p>
<p><a href="http://blogs.gnome.org/alexl/files/2011/03/after-2.png"><img class="aligncenter size-large wp-image-184" title="Now overview" src="http://blogs.gnome.org/alexl/files/2011/03/after-2-1024x345.png" alt="" width="450" height="151" /></a>We can see here:</p>
<ul>
<li>There is a window overview on each monitor, showing the windows on that monitor.</li>
<li>The window overview area is not artificially constrained by aspect ratios but as large as it can be, so the windows are larger in the overview.</li>
<li>The thumbnails are always slided in if there is a monitor to the right of the primary monitor.</li>
<li>The thumbnails only show the primary monitor. This is because the whole workspace feature only affects the primary monitor. Windows on extra monitors stay in place when switching workspaces, only the primary monitor changes.</li>
</ul>
<p>Additionally some things we can&#8217;t see:</p>
<ul>
<li>Every monitor with a natural top-left corner (i.e. the top left monitor, or a monitor to the right that is taller but aligned at the bottom) gets a hot corner that activates the overview.</li>
<li>The ever-rocking <a href="http://ajaxxx.livejournal.com/">ajax</a> has added pointer barrier support to the Xserver for us. If this is available (he backported it to Fedora 15, yay!) we add one-sided barriers in the panel and the message tray so that its easier to hit these, even if there are monitors on the sides.</li>
<li>Additionally, as part of the pointer barrier support the Xserver now automatically blocks the mouse from entering the dead areas that are not shown on any monitor. This is great if monitors have different resolutions.</li>
</ul>
<p>These are not enormous changes, but the difference in day to day use in a multimonitor setup is like day and night. These should be in the next release which is out soon, so if you&#8217;re a multimonitor user, do try it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/alexl/2011/03/22/multimonitor-support-in-gnome-shell/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Yo Dawg!</title>
		<link>http://blogs.gnome.org/alexl/2011/03/16/yo-dawg/</link>
		<comments>http://blogs.gnome.org/alexl/2011/03/16/yo-dawg/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 12:53:20 +0000</pubDate>
		<dc:creator>alexl</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=172</guid>
		<description><![CDATA[Yo dawg! I herd you like browsers, so i put a browser in your browser so you can browse while you browse.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://blogs.gnome.org/alexl/files/2011/03/broadway-webkit1.png"><img class="aligncenter size-full wp-image-175" title="broadway-webkit" src="http://blogs.gnome.org/alexl/files/2011/03/broadway-webkit1.png" alt="" width="488" height="453" /></a></p>
<p>Yo dawg! I herd you like browsers, so i put a browser in your browser so you can browse while you browse.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/alexl/2011/03/16/yo-dawg/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Gtk+ HTML backend update</title>
		<link>http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update/</link>
		<comments>http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 13:13:35 +0000</pubDate>
		<dc:creator>alexl</dc:creator>
				<category><![CDATA[gtk+]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=158</guid>
		<description><![CDATA[The last few days I spent fixing up some more details in the new HTML5 gdk backend. Not everything is supported yet (keyboard input in particular is very weak), but much more things work now. Even thought the backend is not of production quality it is now good enough that I think its interesting for [...]]]></description>
			<content:encoded><![CDATA[<p>The last few days I spent fixing up some more details in the new <a href="http://blogs.gnome.org/alexl/2010/11/23/gtk3-vs-html5/">HTML5 gdk backend</a>. Not everything is supported yet (keyboard input in particular is very weak), but much more things work now. Even thought the backend is not of production quality it is now good enough that I think its interesting for a larger audience to play around with. So, today I merged the branch into the Gtk+ master branch (i.e. what will be Gtk+ 3.2).</p>
<p>The new multi-backends setup in Gtk+ 3.0 makes this much easier to test. All you have to do is build Gtk+ with <strong>&#8211;enable-x11-backend &#8211;enable-broadway-backend</strong>.This will give you a normal X11-based Gtk+ where you can enable the broadway backend at runtime by setting the GDK_BACKEND enviroment variable.</p>
<p>The backend only supports firefox 4 atm, and Mozilla disabled websockets by default, so you have to enable <a href="http://techdows.com/2010/12/turn-on-websockets-in-firefox-4.html">enable websockets</a> for any input to work. However when this is done you can test any app by running:</p>
<pre style="padding-left: 30px;">GDK_BACKEND=broadway your-application&amp;
firefox http://127.0.0.1:8080/</pre>
<p>I recorded a small screencast to show this stuff: (<a href="http://www.gnome.org/~alexl/broadway-screencast.webm">webm source file here</a>)</p>
<p><a href="http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update/"><em>Click here to view the embedded video.</em></a></p>
<p>Note that the recording is using a local connection, it will be slower over the network depending on the network bandwidth.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update/feed/</wfw:commentRss>
		<slash:comments>60</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  blogs.gnome.org/alexl/category/general/feed/ ) in 1.39318 seconds, on Feb 10th, 2012 at 9:46 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 10th, 2012 at 10:46 am UTC -->
