Claudiu
Claudiu

Reputation: 229491

updating gtk to latest version made apps look UGLY

I preivously had gtk 2.14.6 installed, using it through python 2.5 with pygtk 2.12. I just downloaded the gtk 2.22 bundle and extracted it, replacing the old one. (I didn't extract it over the old folder, I just moved the old folder and extracted the new bundle in the same place). However, the same app went from looking very much like a native Windows 7 app to looking very ugly, clunky.. more like a Windows XP theme but it didn't even mimic that well.

How does GTK theming work? How can I get the newest version of GTK (I updated due to instability issues), but have the theme? And why did the older version look better than the newer one?

Upvotes: 1

Views: 972

Answers (1)

Matthew Talbert
Matthew Talbert

Reputation: 6048

In your distribution, in etc/gtk-2.0/gtkrc, you need to make sure that "style" is set to "msw-default" and engine set to "wimp". Here's my entire gtkrc, just to make sure you have it:

gtk-icon-sizes = "gtk-menu=13,13:gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-dnd=32,32"
gtk-toolbar-icon-size = small-toolbar

# disable images in buttons. i've only seen ugly delphi apps use this feature.
gtk-button-images = 1

# enable/disable images in menus. most "stock" microsoft apps don't use these, except sparingly.
# the office apps use them heavily, though.
gtk-menu-images = 1

# use the win32 button ordering instead of the GNOME HIG one, where applicable
gtk-alternative-button-order = 1

# use the win32 sort indicators direction, as in Explorer
gtk-alternative-sort-arrows = 1

# Windows users don't expect the PC Speaker beeping at them when they backspace in an empty textview and stuff like that
gtk-error-bell = 0

style "msw-default"
{
  GtkWidget::interior-focus = 1
  GtkOptionMenu::indicator-size = { 9, 5 }
  GtkOptionMenu::indicator-spacing = { 7, 5, 2, 2 }
  GtkSpinButton::shadow-type = in

  # Owen and I disagree that these should be themable
  GtkUIManager::add-tearoffs = 0
  #GtkComboBox::add-tearoffs = 0

  GtkComboBox::appears-as-list = 1
  GtkComboBox::focus-on-click = 0

  GOComboBox::add_tearoffs = 0

  GtkTreeView::allow-rules = 0
  GtkTreeView::expander-size = 12

  GtkExpander::expander-size = 12

  GtkScrolledWindow::scrollbar_spacing = 1

  GtkSeparatorMenuItem::horizontal-padding = 2

  engine "wimp" 
  {
  }

 }
class "*" style "msw-default"

binding "ms-windows-tree-view"
{
  bind "Right" { "expand-collapse-cursor-row" (1,1,0) }
  bind "Left" { "expand-collapse-cursor-row" (1,0,0) }
}

class "GtkTreeView" binding "ms-windows-tree-view"

style "msw-combobox-thickness" = "msw-default"
{
  xthickness = 0 
  ythickness = 0
}


widget_class "*TreeView*ComboBox*" style "msw-combobox-thickness"
widget_class "*ComboBox*GtkFrame*" style "msw-combobox-thickness"

Upvotes: 3

Related Questions