Reputation: 229491
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
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