How can I move window titles to the center of the title bar in 12.10?

By default the window titles are on the left side of the title bar. Is there a way to center the titles?


Solution 1:

Yes there is a way, open up your terminal and go to the folder /usr/share/themes/YourTheme/metacity-1/

in my case that would be Ambience

cd /usr/share/themes/Ambiance/metacity-1/

in this folder should be a file called metacity-theme-1.xml, open this file in your favorite editor, you need sudo rights though!

search for this part

<draw_ops name="draw_title_text_normal">
<title color="#333" x="10" y="(((height - title_height) / 2) `max` 0)+1"/>
<title color="#333" x="10" y="(((height - title_height) / 2) `max` 0)-1"/>
<title color="#333" x="9" y="(((height - title_height) / 2) `max` 0)"/>
<title color="#333" x="11" y="(((height - title_height) / 2) `max` 0)"/>
<title color="#dfdbd2" x="10" y="(((height - title_height) / 2) `max` 0)"/>
</draw_ops>

and replace all the x="" numbers with

((width - title_width) / 2) max 0

so it'll look like this at the end

<draw_ops name="draw_title_text_normal">
<title color="#333" x="((width - title_width) / 2) `max` 0" y="(((height - title_height) / 2) `max` 0)+1"/>
<title color="#333" x="((width - title_width) / 2) `max` 0" y="(((height - title_height) / 2) `max` 0)-1"/>
<title color="#333" x="((width - title_width) / 2) `max` 0" y="(((height - title_height) / 2) `max` 0)"/>
<title color="#333" x="((width - title_width) / 2) `max` 0" y="(((height - title_height) / 2) `max` 0)"/>
<title color="#dfdbd2" x="((width - title_width) / 2) `max` 0" y="(((height - title_height) / 2) `max` 0)"/>
</draw_ops>

save the changes, logout and login again, and the titles are centered!

Solution 2:

I'd found that Stefan's solution only works in theory, and the title ends up anchoring itself to the left of the titlebar. I'm not sure if my installation is wonky or if the math is wrong, but this is what worked for me:

width/2 - title_width/2 `max` 0

And I also pasted it in the inactive title section. So this part of the file would look like this:

<draw_ops name="draw_title_text_normal">
  <title color="#333" x="width/2 - title_width/2 `max` 0" y="(((height - title_height) / 2) `max` 0)+1"/>
  <title color="#333" x="width/2 - title_width/2 `max` 0" y="(((height - title_height) / 2) `max` 0)-1"/>
  <title color="#333" x="width/2 - title_width/2 `max` 0" y="(((height - title_height) / 2) `max` 0)"/>
  <title color="#333" x="width/2 - title_width/2 `max` 0" y="(((height - title_height) / 2) `max` 0)"/>
  <title color="#dfdbd2" x="width/2 - title_width/2 `max` 0" y="(((height - title_height) / 2) `max` 0)"/>
</draw_ops>

<draw_ops name="draw_title_text_unfocused">
  <title color="#333" x="width/2 - title_width/2 `max` 0" y="(((height - title_height) / 2) `max` 0)+1"/>
  <title color="#333" x="width/2 - title_width/2 `max` 0" y="(((height - title_height) / 2) `max` 0)-1"/>
  <title color="#333" x="width/2 - title_width/2 `max` 0" y="(((height - title_height) / 2) `max` 0)"/>
  <title color="#333" x="width/2 - title_width/2 `max` 0" y="(((height - title_height) / 2) `max` 0)"/>
  <title color="#807d78" x="width/2 - title_width/2 `max` 0" y="(((height - title_height) / 2) `max` 0)"/>
</draw_ops>

But I wouldn't have figured this out without Stefan's lead, so kudos to you on that. ;)