aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.themes/oomox-materia-dark/gtk-2.0/main.rc
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/.themes/oomox-materia-dark/gtk-2.0/main.rc')
-rw-r--r--dotfiles/.themes/oomox-materia-dark/gtk-2.0/main.rc2781
1 files changed, 2781 insertions, 0 deletions
diff --git a/dotfiles/.themes/oomox-materia-dark/gtk-2.0/main.rc b/dotfiles/.themes/oomox-materia-dark/gtk-2.0/main.rc
new file mode 100644
index 0000000..49130c4
--- /dev/null
+++ b/dotfiles/.themes/oomox-materia-dark/gtk-2.0/main.rc
@@ -0,0 +1,2781 @@
+# vim:set ft=gtkrc ts=2 sw=2 sts=2 ai et:
+#
+# This is the main theme file, handling all the default widgets and theme
+# properties. Since GTK+ 2 is old, we need to overcome some of its limitations,
+# which is also mostly done in this file. Sadly not all of them can be overcome
+# so there will always be a visible difference between the GTK+ 2 and 3 theme.
+
+style "default" {
+ xthickness = 1
+ ythickness = 1
+
+ ####################
+ # Style Properties #
+ ####################
+
+ GtkWidget::focus-padding = 0
+ GtkWidget::focus-line-width = 2
+ GtkWidget::focus-line-pattern = "\2\1"
+
+ GtkToolbar::space-size = 5 # 1 + 2*2 (separator + margins)
+ GtkToolbar::internal-padding = 2
+ GtkToolButton::icon-spacing = 4
+
+ GtkWidget::tooltip-radius = 2
+ GtkWidget::tooltip-alpha = 230
+ GtkWidget::new-tooltip-style = 1 #for compatibility
+
+ GtkWidget::link-color = @link_color
+ GtkWidget::visited-link-color = @visited_link_color
+ GnomeHRef::link_color = @link_color
+ GtkHTML::link-color = @link_color
+ GtkHTML::vlink-color = @visited_link_color
+ GtkIMHtml::hyperlink-color = @link_color
+ GtkIMHtml::hyperlink-visited-color = @visited_link_color
+
+ GtkSeparatorMenuItem::horizontal-padding = 0
+ GtkSeparatorMenuItem::wide-separators = 1
+ GtkSeparatorMenuItem::separator-height = 3
+
+ GtkButton::child-displacement-y = 0
+
+ GtkButton::default-border = {0, 0, 0, 0}
+ GtkButton::default-outside-border = {0, 0, 0, 0}
+ GtkButton::inner-border = {4, 4, 4, 4}
+
+ GtkEntry::state-hint = 1
+ GtkEntry::inner-border = {4, 4, 4, 4}
+
+ GtkPaned::handle-size = 8
+ GtkHPaned::handle-size = 8
+ GtkVPaned::handle-size = 8
+
+ GtkScrollbar::trough-border = 0
+ GtkRange::trough-border = 0
+ GtkRange::slider-width = 17
+ GtkRange::stepper-size = 0
+ GtkRange::activate-slider = 1
+
+ GtkScrollbar::activate-slider = 1
+ GtkScrollbar::stepper-size = 0
+ GtkScrollbar::has-backward-stepper = 0
+ GtkScrollbar::has-forward-stepper = 0
+ GtkScrollbar::min-slider-length = 32 # 24 + 2*4 (margins)
+ GtkScrolledWindow::scrollbar-spacing = 0
+ GtkScrolledWindow::scrollbars-within-bevel = 1
+
+ GtkScale::slider_length = 24
+ GtkScale::slider_width = 24
+ GtkScale::trough-side-details = 1
+
+ GtkProgressBar::min-horizontal-bar-height = 4
+ GtkProgressBar::min-vertical-bar-width = 4
+ GtkProgressBar::xspacing = 4
+ GtkProgressBar::yspacing = 4
+
+ GtkStatusbar::shadow_type = GTK_SHADOW_NONE
+ GtkSpinButton::shadow_type = GTK_SHADOW_NONE
+ GtkMenuBar::shadow-type = GTK_SHADOW_NONE
+ GtkToolbar::shadow-type = GTK_SHADOW_NONE
+ # TODO: find out what this comment means:
+ # ( every window is misaligned for the sake of menus ):
+ GtkMenuBar::internal-padding = 0
+ GtkMenu::horizontal-padding = 0
+ GtkMenu::vertical-padding = 4
+ GtkMenu::double-arrows = 0
+ GtkMenuItem::arrow-scaling = 1
+ GtkMenuItem::toggle-spacing = 12
+
+ GtkCheckButton::indicator-size = 24
+ GtkCheckButton::indicator_spacing = 2
+ GtkOptionMenu::indicator_spacing = {10, 10, 6, 6}
+
+ GtkTreeView::expander-size = 16
+ GtkTreeView::vertical-separator = 0
+ GtkTreeView::horizontal-separator = 4
+ GtkTreeView::allow-rules = 0
+ # Set this because some apps read it
+ GtkTreeView::odd-row-color = @base_color
+ GtkTreeView::even-row-color = @base_color
+
+ GtkExpander::expander-size = 16
+
+ GtkNotebook::tab-overlap = 0
+
+ ##########
+ # Colors #
+ ##########
+
+ bg[NORMAL] = @bg_color
+ bg[PRELIGHT] = @bg_color
+ bg[SELECTED] = @selected_bg_color
+ bg[INSENSITIVE] = @bg_color
+ bg[ACTIVE] = @bg_color
+
+ fg[NORMAL] = @fg_color
+ fg[PRELIGHT] = @fg_color
+ fg[SELECTED] = @selected_fg_color
+ fg[INSENSITIVE] = mix (0.4, @fg_color, @bg_color)
+ fg[ACTIVE] = @fg_color
+
+ text[NORMAL] = @text_color
+ text[PRELIGHT] = @text_color
+ text[SELECTED] = @selected_fg_color
+ text[INSENSITIVE] = mix (0.4, @text_color, @base_color)
+ text[ACTIVE] = @selected_fg_color
+
+ base[NORMAL] = @base_color
+ base[PRELIGHT] = mix (0.05, @text_color, @base_color)
+ base[SELECTED] = @selected_bg_color
+ base[INSENSITIVE] = mix (0.5, @base_color, @bg_color)
+ base[ACTIVE] = @selected_bg_color
+
+ # For succinctness, all reasonable pixmap options remain here
+
+ # Draw frame around menu in a non-compositied environment
+ # This needs to go before pixmap because we need to override some stuff
+ engine "adwaita" {}
+
+ engine "pixmap" {
+
+ #################
+ # Check Buttons #
+ #################
+
+ image {
+ function = CHECK
+ state = NORMAL
+ shadow = OUT
+ overlay_file = "assets/checkbox-unchecked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = PRELIGHT
+ shadow = OUT
+ overlay_file = "assets/checkbox-unchecked-hover.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = ACTIVE
+ shadow = OUT
+ overlay_file = "assets/checkbox-unchecked-active.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = SELECTED
+ shadow = OUT
+ overlay_file = "assets/checkbox-unchecked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = INSENSITIVE
+ shadow = OUT
+ overlay_file = "assets/checkbox-unchecked-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = NORMAL
+ shadow = IN
+ overlay_file = "assets/checkbox-checked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = PRELIGHT
+ shadow = IN
+ overlay_file = "assets/checkbox-checked-hover.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = ACTIVE
+ shadow = IN
+ overlay_file = "assets/checkbox-checked-active.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = SELECTED
+ shadow = IN
+ overlay_file = "assets/checkbox-checked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = INSENSITIVE
+ shadow = IN
+ overlay_file = "assets/checkbox-checked-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = NORMAL
+ shadow = ETCHED_IN
+ overlay_file = "assets/checkbox-mixed.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = PRELIGHT
+ shadow = ETCHED_IN
+ overlay_file = "assets/checkbox-mixed-hover.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = ACTIVE
+ shadow = ETCHED_IN
+ overlay_file = "assets/checkbox-mixed-active.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = SELECTED
+ shadow = ETCHED_IN
+ overlay_file = "assets/checkbox-mixed.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = INSENSITIVE
+ shadow = ETCHED_IN
+ overlay_file = "assets/checkbox-mixed-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ #################
+ # Radio Buttons #
+ #################
+
+ image {
+ function = OPTION
+ state = NORMAL
+ shadow = OUT
+ overlay_file = "assets/radio-unchecked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = PRELIGHT
+ shadow = OUT
+ overlay_file = "assets/radio-unchecked-hover.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = ACTIVE
+ shadow = OUT
+ overlay_file = "assets/radio-unchecked-active.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = SELECTED
+ shadow = OUT
+ overlay_file = "assets/radio-unchecked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = INSENSITIVE
+ shadow = OUT
+ overlay_file = "assets/radio-unchecked-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = NORMAL
+ shadow = IN
+ overlay_file = "assets/radio-checked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = PRELIGHT
+ shadow = IN
+ overlay_file = "assets/radio-checked-hover.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = ACTIVE
+ shadow = IN
+ overlay_file = "assets/radio-checked-active.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = SELECTED
+ shadow = IN
+ overlay_file = "assets/radio-checked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = INSENSITIVE
+ shadow = IN
+ overlay_file = "assets/radio-checked-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = NORMAL
+ shadow = ETCHED_IN
+ overlay_file = "assets/radio-mixed.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = PRELIGHT
+ shadow = ETCHED_IN
+ overlay_file = "assets/radio-mixed-hover.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = ACTIVE
+ shadow = ETCHED_IN
+ overlay_file = "assets/radio-mixed-active.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = SELECTED
+ shadow = ETCHED_IN
+ overlay_file = "assets/radio-mixed.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = INSENSITIVE
+ shadow = ETCHED_IN
+ overlay_file = "assets/radio-mixed-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ ##########
+ # Arrows #
+ ##########
+
+ # Overrides
+
+ # Disable arrows in spinbuttons
+ image {
+ function = ARROW
+ detail = "spinbutton"
+ }
+
+ # Disable arrows for qt in scrollbars
+
+ image {
+ function = ARROW
+ detail = "vscrollbar"
+ }
+
+ image {
+ function = ARROW
+ detail = "hscrollbar"
+ }
+
+ # Menu arrows
+
+ image {
+ function = ARROW
+ state = NORMAL
+ detail = "menuitem"
+ overlay_file = "assets/pan-left.png"
+ overlay_stretch = FALSE
+ arrow_direction = LEFT
+ }
+
+ image {
+ function = ARROW
+ state = PRELIGHT
+ detail = "menuitem"
+ overlay_file = "assets/pan-left.png"
+ overlay_stretch = FALSE
+ arrow_direction = LEFT
+ }
+
+ image {
+ function = ARROW
+ state = INSENSITIVE
+ detail = "menuitem"
+ overlay_file = "assets/pan-left-disabled.png"
+ overlay_stretch = FALSE
+ arrow_direction = LEFT
+ }
+
+ image {
+ function = ARROW
+ state = NORMAL
+ detail = "menuitem"
+ overlay_file = "assets/pan-right.png"
+ overlay_stretch = FALSE
+ arrow_direction = RIGHT
+ }
+
+ image {
+ function = ARROW
+ state = PRELIGHT
+ detail = "menuitem"
+ overlay_file = "assets/pan-right.png"
+ overlay_stretch = FALSE
+ arrow_direction = RIGHT
+ }
+
+ image {
+ function = ARROW
+ state = INSENSITIVE
+ detail = "menuitem"
+ overlay_file = "assets/pan-right-disabled.png"
+ overlay_stretch = FALSE
+ arrow_direction = RIGHT
+ }
+
+ image {
+ function = ARROW
+ state = INSENSITIVE
+ detail = "menu_scroll_arrow_up"
+ overlay_file = "assets/pan-up-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = ARROW
+ detail = "menu_scroll_arrow_up"
+ overlay_file = "assets/pan-up.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = ARROW
+ state = INSENSITIVE
+ detail = "menu_scroll_arrow_down"
+ overlay_file = "assets/pan-down-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = ARROW
+ detail = "menu_scroll_arrow_down"
+ overlay_file = "assets/pan-down.png"
+ overlay_stretch = FALSE
+ }
+
+ # Regular arrows
+
+ image {
+ function = ARROW
+ state = NORMAL
+ overlay_file = "assets/pan-up-alt.png"
+ overlay_stretch = FALSE
+ arrow_direction = UP
+ }
+
+ image {
+ function = ARROW
+ state = PRELIGHT
+ overlay_file = "assets/pan-up.png"
+ overlay_stretch = FALSE
+ arrow_direction = UP
+ }
+
+ image {
+ function = ARROW
+ state = ACTIVE
+ overlay_file = "assets/pan-up.png"
+ overlay_stretch = FALSE
+ arrow_direction = UP
+ }
+
+ image {
+ function = ARROW
+ state = INSENSITIVE
+ overlay_file = "assets/pan-up-alt-disabled.png"
+ overlay_stretch = FALSE
+ arrow_direction = UP
+ }
+
+ image {
+ function = ARROW
+ state = NORMAL
+ overlay_file = "assets/pan-down-alt.png"
+ overlay_stretch = FALSE
+ arrow_direction = DOWN
+ }
+
+ image {
+ function = ARROW
+ state = PRELIGHT
+ overlay_file = "assets/pan-down.png"
+ overlay_stretch = FALSE
+ arrow_direction = DOWN
+ }
+
+ image {
+ function = ARROW
+ state = ACTIVE
+ overlay_file = "assets/pan-down.png"
+ overlay_stretch = FALSE
+ arrow_direction = DOWN
+ }
+
+ image {
+ function = ARROW
+ state = INSENSITIVE
+ overlay_file = "assets/pan-down-alt-disabled.png"
+ overlay_stretch = FALSE
+ arrow_direction = DOWN
+ }
+
+ image {
+ function = ARROW
+ state = NORMAL
+ overlay_file = "assets/pan-left-alt.png"
+ overlay_stretch = FALSE
+ arrow_direction = LEFT
+ }
+
+ image {
+ function = ARROW
+ state = PRELIGHT
+ overlay_file = "assets/pan-left.png"
+ overlay_stretch = FALSE
+ arrow_direction = LEFT
+ }
+
+ image {
+ function = ARROW
+ state = ACTIVE
+ overlay_file = "assets/pan-left.png"
+ overlay_stretch = FALSE
+ arrow_direction = LEFT
+ }
+
+ image {
+ function = ARROW
+ state = INSENSITIVE
+ overlay_file = "assets/pan-left-alt-disabled.png"
+ overlay_stretch = FALSE
+ arrow_direction = LEFT
+ }
+
+ image {
+ function = ARROW
+ state = NORMAL
+ overlay_file = "assets/pan-right-alt.png"
+ overlay_stretch = FALSE
+ arrow_direction = RIGHT
+ }
+
+ image {
+ function = ARROW
+ state = PRELIGHT
+ overlay_file = "assets/pan-right.png"
+ overlay_stretch = FALSE
+ arrow_direction = RIGHT
+ }
+
+ image {
+ function = ARROW
+ state = ACTIVE
+ overlay_file = "assets/pan-right.png"
+ overlay_stretch = FALSE
+ arrow_direction = RIGHT
+ }
+
+ image {
+ function = ARROW
+ state = INSENSITIVE
+ overlay_file = "assets/pan-right-alt-disabled.png"
+ overlay_stretch = FALSE
+ arrow_direction = RIGHT
+ }
+
+ ######################
+ # Option Menu Arrows #
+ ######################
+
+ image {
+ function = TAB
+ state = NORMAL
+ overlay_file = "assets/pan-down-alt.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = TAB
+ state = PRELIGHT
+ overlay_file = "assets/pan-down.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = TAB
+ state = ACTIVE
+ overlay_file = "assets/pan-down.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = TAB
+ state = INSENSITIVE
+ overlay_file = "assets/pan-down-alt-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ #########
+ # Lines #
+ #########
+
+ image {
+ function = VLINE
+ file = "assets/border.png"
+ border = {1, 0, 0, 0}
+ }
+
+ image {
+ function = HLINE
+ file = "assets/border.png"
+ border = {0, 0, 1, 0}
+ }
+
+ #########
+ # Focus #
+ #########
+
+ image {
+ function = FOCUS
+ file = "assets/focus.png"
+ border = {2, 2, 2, 2}
+ stretch = TRUE
+ }
+
+ ###########
+ # Handles #
+ ###########
+
+ image {
+ function = HANDLE
+ detail = "handlebox"
+ overlay_file = "assets/handle-vert.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = HANDLE
+ state = NORMAL
+ overlay_file = "assets/handle-horz.png"
+ overlay_stretch = FALSE
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = HANDLE
+ state = PRELIGHT
+ overlay_file = "assets/handle-horz-hover.png"
+ overlay_stretch = FALSE
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = HANDLE
+ state = ACTIVE
+ overlay_file = "assets/handle-horz-active.png"
+ overlay_stretch = FALSE
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = HANDLE
+ state = NORMAL
+ overlay_file = "assets/handle-vert.png"
+ overlay_stretch = FALSE
+ orientation = VERTICAL
+ }
+
+ image {
+ function = HANDLE
+ state = PRELIGHT
+ overlay_file = "assets/handle-vert-hover.png"
+ overlay_stretch = FALSE
+ orientation = VERTICAL
+ }
+
+ image {
+ function = HANDLE
+ state = ACTIVE
+ overlay_file = "assets/handle-vert-active.png"
+ overlay_stretch = FALSE
+ orientation = VERTICAL
+ }
+
+ image {
+ function = RESIZE_GRIP
+ }
+
+ #############
+ # Expanders #
+ #############
+
+ image {
+ function = EXPANDER
+ expander_style = EXPANDED
+ state = NORMAL
+ file = "assets/pan-down-alt.png"
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = EXPANDED
+ state = PRELIGHT
+ file = "assets/pan-down.png"
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = EXPANDED
+ state = ACTIVE
+ file = "assets/pan-down.png"
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = EXPANDED
+ state = INSENSITIVE
+ file = "assets/pan-down-alt-disabled.png"
+ }
+
+ # LTR
+
+ image {
+ function = EXPANDER
+ expander_style = COLLAPSED
+ state = NORMAL
+ file = "assets/pan-right-alt.png"
+ direction = LTR
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = COLLAPSED
+ state = PRELIGHT
+ file = "assets/pan-right.png"
+ direction = LTR
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = COLLAPSED
+ state = ACTIVE
+ file = "assets/pan-right.png"
+ direction = LTR
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = COLLAPSED
+ state = INSENSITIVE
+ file = "assets/pan-right-alt-disabled.png"
+ direction = LTR
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = SEMI_COLLAPSED
+ file = "assets/pan-right-semi.png"
+ direction = LTR
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = SEMI_EXPANDED
+ file = "assets/pan-right-semi.png"
+ direction = LTR
+ }
+
+ # RTL
+
+ image {
+ function = EXPANDER
+ expander_style = COLLAPSED
+ state = NORMAL
+ file = "assets/pan-left-alt.png"
+ direction = RTL
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = COLLAPSED
+ state = PRELIGHT
+ file = "assets/pan-left.png"
+ direction = RTL
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = COLLAPSED
+ state = ACTIVE
+ file = "assets/pan-left.png"
+ direction = RTL
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = COLLAPSED
+ state = INSENSITIVE
+ file = "assets/pan-left-alt-disabled.png"
+ direction = RTL
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = SEMI_COLLAPSED
+ file = "assets/pan-left-semi.png"
+ direction = RTL
+ }
+
+ image {
+ function = EXPANDER
+ expander_style = SEMI_EXPANDED
+ file = "assets/pan-left-semi.png"
+ direction = RTL
+ }
+
+ #############
+ # Notebooks #
+ #############
+
+ # Left
+
+ image {
+ function = EXTENSION
+ state = NORMAL
+ file = "assets/tab.png"
+ border = {0, 1, 0, 0}
+ stretch = TRUE
+ gap_side = RIGHT
+ }
+
+ image {
+ function = EXTENSION
+ gap_side = RIGHT
+ }
+
+ # Right
+
+ image {
+ function = EXTENSION
+ state = NORMAL
+ file = "assets/tab.png"
+ border = {1, 0, 0, 0}
+ stretch = TRUE
+ gap_side = LEFT
+ }
+
+ image {
+ function = EXTENSION
+ gap_side = LEFT
+ }
+
+ # Up
+
+ image {
+ function = EXTENSION
+ state = NORMAL
+ file = "assets/tab.png"
+ border = {0, 0, 0, 1}
+ stretch = TRUE
+ gap_side = BOTTOM
+ }
+
+ image {
+ function = EXTENSION
+ gap_side = BOTTOM
+ }
+
+ # Down
+
+ image {
+ function = EXTENSION
+ state = NORMAL
+ file = "assets/tab.png"
+ border = {0, 0, 1, 0}
+ stretch = TRUE
+ gap_side = TOP
+ }
+
+ image {
+ function = EXTENSION
+ gap_side = TOP
+ }
+
+ # Inner frame
+
+ image {
+ function = BOX_GAP
+ detail = "notebook"
+ file = "assets/frame-notebook.png"
+ border = {1, 1, 1, 1}
+ stretch = TRUE
+ gap_file = "assets/tab.png"
+ gap_border = {1, 0, 0, 0}
+ gap_side = LEFT
+ }
+
+ image {
+ function = BOX_GAP
+ detail = "notebook"
+ file = "assets/frame-notebook.png"
+ border = {1, 1, 1, 1}
+ stretch = TRUE
+ gap_file = "assets/tab.png"
+ gap_border = {0, 1, 0, 0}
+ gap_side = RIGHT
+ }
+
+ image {
+ function = BOX_GAP
+ detail = "notebook"
+ file = "assets/frame-notebook.png"
+ border = {1, 1, 1, 1}
+ stretch = TRUE
+ gap_file = "assets/tab.png"
+ gap_border = {0, 0, 1, 0}
+ gap_side = TOP
+ }
+
+ image {
+ function = BOX_GAP
+ detail = "notebook"
+ file = "assets/frame-notebook.png"
+ border = {1, 1, 1, 1}
+ stretch = TRUE
+ gap_file = "assets/tab.png"
+ gap_border = {0, 0, 0, 1}
+ gap_side = BOTTOM
+ }
+
+ # Standalone frame
+ image {
+ function = BOX
+ detail = "notebook"
+ file = "assets/frame-notebook.png"
+ border = {1, 1, 1, 1}
+ stretch = TRUE
+ }
+
+ ##############
+ # Scrollbars #
+ ##############
+
+ image {
+ function = BOX
+ detail = "trough"
+ file = "assets/scrollbar-horz-trough.png"
+ border = {0, 0, 1, 0}
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = BOX
+ detail = "trough"
+ file = "assets/scrollbar-vert-ltr-trough.png"
+ border = {1, 0, 0, 0}
+ orientation = VERTICAL
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ detail = "trough"
+ file = "assets/scrollbar-vert-rtl-trough.png"
+ border = {0, 1, 0, 0}
+ orientation = VERTICAL
+ direction = RTL
+ }
+
+ # Horizontal sliders
+
+ image {
+ function = SLIDER
+ state = NORMAL
+ detail = "slider"
+ file = "assets/scrollbar-horz-slider.png"
+ border = {8, 8, 9, 8 }
+ stretch = TRUE
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = SLIDER
+ state = PRELIGHT
+ detail = "slider"
+ file = "assets/scrollbar-horz-slider-hover.png"
+ border = {8, 8, 9, 8 }
+ stretch = TRUE
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = SLIDER
+ state = ACTIVE
+ detail = "slider"
+ file = "assets/scrollbar-horz-slider-active.png"
+ border = {8, 8, 9, 8 }
+ stretch = TRUE
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = SLIDER
+ state = INSENSITIVE
+ detail = "slider"
+ file = "assets/scrollbar-horz-slider-disabled.png"
+ border = {8, 8, 9, 8 }
+ stretch = TRUE
+ orientation = HORIZONTAL
+ }
+
+ # Vertical sliders
+
+ image {
+ function = SLIDER
+ state = NORMAL
+ detail = "slider"
+ file = "assets/scrollbar-vert-ltr-slider.png"
+ border = {9, 8, 8, 8}
+ stretch = TRUE
+ orientation = VERTICAL
+ direction = LTR
+ }
+
+ image {
+ function = SLIDER
+ state = PRELIGHT
+ detail = "slider"
+ file = "assets/scrollbar-vert-ltr-slider-hover.png"
+ border = {9, 8, 8, 8}
+ stretch = TRUE
+ orientation = VERTICAL
+ direction = LTR
+ }
+
+ image {
+ function = SLIDER
+ state = ACTIVE
+ detail = "slider"
+ file = "assets/scrollbar-vert-ltr-slider-active.png"
+ border = {9, 8, 8, 8}
+ stretch = TRUE
+ orientation = VERTICAL
+ direction = LTR
+ }
+
+ image {
+ function = SLIDER
+ state = INSENSITIVE
+ detail = "slider"
+ file = "assets/scrollbar-vert-ltr-slider-disabled.png"
+ border = {9, 8, 8, 8}
+ stretch = TRUE
+ orientation = VERTICAL
+ direction = LTR
+ }
+
+ # RTL
+
+ image {
+ function = SLIDER
+ state = NORMAL
+ detail = "slider"
+ file = "assets/scrollbar-vert-rtl-slider.png"
+ border = {8, 9, 8, 8}
+ stretch = TRUE
+ orientation = VERTICAL
+ direction = RTL
+ }
+
+ image {
+ function = SLIDER
+ state = PRELIGHT
+ detail = "slider"
+ file = "assets/scrollbar-vert-rtl-slider-hover.png"
+ border = {8, 9, 8, 8}
+ stretch = TRUE
+ orientation = VERTICAL
+ direction = RTL
+ }
+
+ image {
+ function = SLIDER
+ state = ACTIVE
+ detail = "slider"
+ file = "assets/scrollbar-vert-rtl-slider-active.png"
+ border = {8, 9, 8, 8}
+ stretch = TRUE
+ orientation = VERTICAL
+ direction = RTL
+ }
+
+ image {
+ function = SLIDER
+ state = INSENSITIVE
+ detail = "slider"
+ file = "assets/scrollbar-vert-rtl-slider-disabled.png"
+ border = {8, 9, 8, 8}
+ stretch = TRUE
+ orientation = VERTICAL
+ direction = RTL
+ }
+
+ ##########
+ # Scales #
+ ##########
+
+ # Troughs, overrided later on. We set them here too because some widgets
+ # don't specify their orientation.
+
+ image {
+ function = BOX
+ detail = "trough-upper"
+ file = "assets/scale-horz-trough.png"
+ border = {6, 6, 0, 0}
+ stretch = TRUE
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ detail = "trough-upper"
+ file = "assets/scale-horz-trough-disabled.png"
+ border = {6, 6, 0, 0}
+ stretch = TRUE
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = BOX
+ detail = "trough-lower"
+ file = "assets/scale-horz-trough-active.png"
+ border = {6, 6, 0, 0}
+ stretch = TRUE
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ detail = "trough-lower"
+ file = "assets/scale-horz-trough-disabled.png"
+ border = {6, 6, 0, 0}
+ stretch = TRUE
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = BOX
+ detail = "trough-upper"
+ file = "assets/scale-vert-trough.png"
+ border = {0, 0, 6, 6}
+ stretch = TRUE
+ orientation = VERTICAL
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ detail = "trough-upper"
+ file = "assets/scale-vert-trough-disabled.png"
+ border = {0, 0, 6, 6}
+ stretch = TRUE
+ orientation = VERTICAL
+ }
+
+ image {
+ function = BOX
+ detail = "trough-lower"
+ file = "assets/scale-vert-trough-active.png"
+ border = {0, 0, 6, 6}
+ stretch = TRUE
+ orientation = VERTICAL
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ detail = "trough-lower"
+ file = "assets/scale-vert-trough-disabled.png"
+ border = {0, 0, 6, 6}
+ stretch = TRUE
+ orientation = VERTICAL
+ }
+
+ # Sliders
+
+ image {
+ function = SLIDER
+ state = NORMAL
+ detail = "hscale"
+ file = "assets/scale-slider.png"
+ }
+
+ image {
+ function = SLIDER
+ state = PRELIGHT
+ detail = "hscale"
+ file = "assets/scale-slider-hover.png"
+ }
+
+ image {
+ function = SLIDER
+ state = ACTIVE
+ detail = "hscale"
+ file = "assets/scale-slider-active.png"
+ }
+
+ image {
+ function = SLIDER
+ state = INSENSITIVE
+ detail = "hscale"
+ file = "assets/scale-slider-disabled.png"
+ }
+
+ image {
+ function = SLIDER
+ state = NORMAL
+ detail = "vscale"
+ file = "assets/scale-slider.png"
+ }
+
+ image {
+ function = SLIDER
+ state = PRELIGHT
+ detail = "vscale"
+ file = "assets/scale-slider-hover.png"
+ }
+
+ image {
+ function = SLIDER
+ state = ACTIVE
+ detail = "vscale"
+ file = "assets/scale-slider-active.png"
+ }
+
+ image {
+ function = SLIDER
+ state = INSENSITIVE
+ detail = "vscale"
+ file = "assets/scale-slider-disabled.png"
+ }
+
+ ###########
+ # Menubar #
+ ###########
+
+ # image {
+ # function = BOX
+ # detail = "menubar"
+ # file = "assets/border.png"
+ # border = {0, 0, 0, 1}
+ # }
+
+ #########
+ # Menus #
+ #########
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ detail = "menu_scroll_arrow_up"
+ file = "assets/border.png"
+ }
+
+ image {
+ function = BOX
+ detail = "menu_scroll_arrow_up"
+ file = "assets/border.png"
+ border = {0, 0, 0, 1}
+ }
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ detail = "menu_scroll_arrow_down"
+ file = "assets/border.png"
+ }
+
+ image {
+ function = BOX
+ detail = "menu_scroll_arrow_down"
+ file = "assets/border.png"
+ border = {0, 0, 1, 0}
+ }
+
+ ###########
+ # Entries #
+ ###########
+
+ image {
+ function = SHADOW
+ state = ACTIVE
+ detail = "entry"
+ file = "assets/entry-active.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = SHADOW
+ state = INSENSITIVE
+ detail = "entry"
+ file = "assets/entry-disabled.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = SHADOW
+ detail = "entry"
+ file = "assets/entry.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = FLAT_BOX
+ state = ACTIVE
+ detail = "entry_bg"
+ file = "assets/entry-background.png"
+ }
+
+ image {
+ function = FLAT_BOX
+ state = INSENSITIVE
+ detail = "entry_bg"
+ file = "assets/entry-background-disabled.png"
+ }
+
+ image {
+ function = FLAT_BOX
+ detail = "entry_bg"
+ file = "assets/entry-background.png"
+ }
+
+ #########
+ # Spins #
+ #########
+
+ # Spin-Up LTR
+
+ image {
+ function = BOX
+ state = NORMAL
+ detail = "spinbutton_up"
+ file = "assets/spin-ltr-up.png"
+ border = {0, 8, 8, 0}
+ stretch = TRUE
+ overlay_file = "assets/pan-up-alt.png"
+ overlay_stretch = FALSE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ detail = "spinbutton_up"
+ file = "assets/spin-ltr-up-hover.png"
+ border = {0, 8, 8, 0}
+ stretch = TRUE
+ overlay_file = "assets/pan-up.png"
+ overlay_stretch = FALSE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = ACTIVE
+ detail = "spinbutton_up"
+ file = "assets/spin-ltr-up-active.png"
+ border = {0, 8, 8, 0}
+ stretch = TRUE
+ overlay_file = "assets/pan-up.png"
+ overlay_stretch = FALSE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ detail = "spinbutton_up"
+ file = "assets/spin-ltr-up-disabled.png"
+ border = {0, 8, 8, 0}
+ stretch = TRUE
+ overlay_file = "assets/pan-up-alt-disabled.png"
+ overlay_stretch = FALSE
+ direction = LTR
+ }
+
+ # Spin-Up RTL
+
+ image {
+ function = BOX
+ state = NORMAL
+ detail = "spinbutton_up"
+ file = "assets/spin-rtl-up.png"
+ border = {8, 0, 8, 0}
+ stretch = TRUE
+ overlay_file = "assets/pan-up-alt.png"
+ overlay_stretch = FALSE
+ direction = RTL
+ }
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ detail = "spinbutton_up"
+ file = "assets/spin-rtl-up-hover.png"
+ border = {8, 0, 8, 0}
+ stretch = TRUE
+ overlay_file = "assets/pan-up.png"
+ overlay_stretch = FALSE
+ direction = RTL
+ }
+
+ image {
+ function = BOX
+ state = ACTIVE
+ detail = "spinbutton_up"
+ file = "assets/spin-rtl-up-hover.png"
+ border = {8, 0, 8, 0}
+ stretch = TRUE
+ overlay_file = "assets/pan-up.png"
+ overlay_stretch = FALSE
+ direction = RTL
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ detail = "spinbutton_up"
+ file = "assets/spin-rtl-up-disabled.png"
+ border = {8, 0, 8, 0}
+ stretch = TRUE
+ overlay_file = "assets/pan-up-alt-disabled.png"
+ overlay_stretch = FALSE
+ direction = RTL
+ }
+
+ # Spin-Down LTR
+
+ image {
+ function = BOX
+ state = NORMAL
+ detail = "spinbutton_down"
+ file = "assets/spin-ltr-down.png"
+ border = {0, 8, 0, 8}
+ stretch = TRUE
+ overlay_file = "assets/pan-down-alt.png"
+ overlay_stretch = FALSE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ detail = "spinbutton_down"
+ file = "assets/spin-ltr-down-hover.png"
+ border = {0, 8, 0, 8}
+ stretch = TRUE
+ overlay_file = "assets/pan-down.png"
+ overlay_stretch = FALSE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = ACTIVE
+ detail = "spinbutton_down"
+ file = "assets/spin-ltr-down-active.png"
+ border = {0, 8, 0, 8}
+ stretch = TRUE
+ overlay_file = "assets/pan-down.png"
+ overlay_stretch = FALSE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ detail = "spinbutton_down"
+ file = "assets/spin-ltr-down-disabled.png"
+ border = {0, 8, 0, 8}
+ stretch = TRUE
+ overlay_file = "assets/pan-down-alt-disabled.png"
+ overlay_stretch = FALSE
+ direction = LTR
+ }
+
+ # Spin-Down RTL
+
+ image {
+ function = BOX
+ state = NORMAL
+ detail = "spinbutton_down"
+ file = "assets/spin-rtl-down.png"
+ border = {8, 0, 0, 8}
+ stretch = TRUE
+ overlay_file = "assets/pan-down-alt.png"
+ overlay_stretch = FALSE
+ direction = RTL
+ }
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ detail = "spinbutton_down"
+ file = "assets/spin-rtl-down-hover.png"
+ border = {8, 0, 0, 8}
+ stretch = TRUE
+ overlay_file = "assets/pan-down.png"
+ overlay_stretch = FALSE
+ direction = RTL
+ }
+
+ image {
+ function = BOX
+ state = ACTIVE
+ detail = "spinbutton_down"
+ file = "assets/spin-rtl-down-active.png"
+ border = {8, 0, 0, 8}
+ stretch = TRUE
+ overlay_file = "assets/pan-down.png"
+ overlay_stretch = FALSE
+ direction = RTL
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ detail = "spinbutton_down"
+ file = "assets/spin-rtl-down-disabled.png"
+ border = {8, 0, 0, 8}
+ stretch = TRUE
+ overlay_file = "assets/pan-down-alt-disabled.png"
+ overlay_stretch = FALSE
+ direction = RTL
+ }
+
+ ##############
+ # Scrollbars #
+ ##############
+
+ image {
+ function = BOX
+ detail = "bar"
+ file = "assets/progressbar-progress.png"
+ stretch = TRUE
+ border = {0, 0, 0, 0}
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = BOX
+ detail = "bar"
+ file = "assets/progressbar-progress.png"
+ stretch = TRUE
+ border = {0, 0, 0, 0}
+ orientation = VERTICAL
+ }
+
+ #############
+ # Treeviews #
+ #############
+
+ # Disable active the column highlight
+ # We need to match specific cells or we break stuff
+ # Looking at you deadbeef
+
+ image {
+ function = FLAT_BOX
+ detail = "cell_even_sorted"
+ state = NORMAL
+ }
+
+ image {
+ function = FLAT_BOX
+ detail = "cell_odd_sorted"
+ state = NORMAL
+ }
+
+ # Disable all the other shadows
+ # This prevents the Raleigh effect
+ image {
+ function = SHADOW
+ }
+ }
+}
+
+style "menubar" {
+ bg[NORMAL] = @titlebar_bg_color
+ fg[NORMAL] = mix(0.7, @titlebar_fg_color, @titlebar_bg_color)
+ fg[PRELIGHT] = @titlebar_fg_color
+ fg[INSENSITIVE] = mix(0.3, @titlebar_fg_color, @titlebar_bg_color)
+ # Needed to fix Firefox's menubar text
+ bg[SELECTED] = mix(0.15, @titlebar_fg_color, @titlebar_bg_color)
+ fg[SELECTED] = @titlebar_fg_color
+}
+
+style "menubar_item" {
+ xthickness = 3
+ ythickness = 4
+
+ fg[NORMAL] = mix(0.7, @titlebar_fg_color, @titlebar_bg_color)
+ bg[PRELIGHT] = mix(0.15, @titlebar_fg_color, @titlebar_bg_color)
+ fg[PRELIGHT] = @titlebar_fg_color
+ fg[INSENSITIVE] = mix(0.3, @titlebar_fg_color, @titlebar_bg_color)
+}
+
+style "menu" {
+ xthickness = 0
+ ythickness = 0
+
+ bg[NORMAL] = @base_color
+ bg[INSENSITIVE] = @base_color
+ bg[PRELIGHT] = @base_color
+ bg[SELECTED] = mix(0.15, @fg_color, @base_color)
+}
+
+style "menu_item" {
+ xthickness = 4
+ ythickness = 4
+
+ bg[PRELIGHT] = mix(0.15, @fg_color, @base_color)
+ fg[PRELIGHT] = @fg_color
+ # Chromium uses this setting
+ bg[SELECTED] = mix(0.15, @fg_color, @base_color)
+ text[SELECTED] = @fg_color
+ # Some widgets use text, we need to handle that
+ text[NORMAL] = @fg_color
+ text[PRELIGHT] = @fg_color
+
+ # Unfortunately we can't tell regular and menu checks/radios apart
+ # Without the heirarchy
+ engine "pixmap" {
+
+ #################
+ # Check Buttons #
+ #################
+
+ image {
+ function = CHECK
+ state = NORMAL
+ shadow = OUT
+ overlay_file = "assets/menu-checkbox-unchecked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = PRELIGHT
+ shadow = OUT
+ overlay_file = "assets/menu-checkbox-unchecked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = ACTIVE
+ shadow = OUT
+ overlay_file = "assets/menu-checkbox-unchecked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = INSENSITIVE
+ shadow = OUT
+ overlay_file = "assets/menu-checkbox-unchecked-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = NORMAL
+ shadow = IN
+ overlay_file = "assets/menu-checkbox-checked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = PRELIGHT
+ shadow = IN
+ overlay_file = "assets/menu-checkbox-checked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = ACTIVE
+ shadow = IN
+ overlay_file = "assets/menu-checkbox-checked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = INSENSITIVE
+ shadow = IN
+ overlay_file = "assets/menu-checkbox-checked-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = NORMAL
+ shadow = ETCHED_IN
+ overlay_file = "assets/menu-checkbox-mixed.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = PRELIGHT
+ shadow = ETCHED_IN
+ overlay_file = "assets/menu-checkbox-mixed.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = ACTIVE
+ shadow = ETCHED_IN
+ overlay_file = "assets/menu-checkbox-mixed.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = CHECK
+ state = INSENSITIVE
+ shadow = ETCHED_IN
+ overlay_file = "assets/menu-checkbox-mixed-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ #################
+ # Radio Buttons #
+ #################
+
+ image {
+ function = OPTION
+ state = NORMAL
+ shadow = OUT
+ overlay_file = "assets/menu-radio-unchecked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = PRELIGHT
+ shadow = OUT
+ overlay_file = "assets/menu-radio-unchecked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = ACTIVE
+ shadow = OUT
+ overlay_file = "assets/menu-radio-unchecked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = INSENSITIVE
+ shadow = OUT
+ overlay_file = "assets/menu-radio-unchecked-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = NORMAL
+ shadow = IN
+ overlay_file = "assets/menu-radio-checked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = PRELIGHT
+ shadow = IN
+ overlay_file = "assets/menu-radio-checked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = ACTIVE
+ shadow = IN
+ overlay_file = "assets/menu-radio-checked.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = INSENSITIVE
+ shadow = IN
+ overlay_file = "assets/menu-radio-checked-disabled.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = NORMAL
+ shadow = ETCHED_IN
+ overlay_file = "assets/menu-radio-mixed.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = PRELIGHT
+ shadow = ETCHED_IN
+ overlay_file = "assets/menu-radio-mixed.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = ACTIVE
+ shadow = ETCHED_IN
+ overlay_file = "assets/menu-radio-mixed.png"
+ overlay_stretch = FALSE
+ }
+
+ image {
+ function = OPTION
+ state = INSENSITIVE
+ shadow = ETCHED_IN
+ overlay_file = "assets/menu-radio-mixed-disabled.png"
+ overlay_stretch = FALSE
+ }
+ }
+}
+
+style "separator_menu_item" {
+ xthickness = 0
+ ythickness = 2
+
+ engine "pixmap" {
+ image {
+ function = BOX
+ file = "assets/border.png"
+ border = {0, 0, 0, 1}
+ }
+ }
+}
+
+style "button_label" {
+ fg[NORMAL] = mix(0.75, @fg_color, @bg_color)
+ # fg[INSENSITIVE] = mix(0.3, @fg_color, @bg_color)
+
+ font_name = "Medium"
+}
+
+style "checkbutton_label" {
+ fg[NORMAL] = @fg_color
+ # fg[INSENSITIVE] = mix(0.4, @fg_color, @bg_color)
+
+ font_name = "Regular"
+}
+
+style "button" {
+ xthickness = 4
+ ythickness = 4
+
+ # For the sake of sanity style buttons this way
+ engine "pixmap" {
+
+ ###########
+ # Buttons #
+ ###########
+
+ image {
+ function = BOX
+ state = NORMAL
+ file = "assets/button.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ shadow = OUT
+ file = "assets/button-hover.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ # Don't add hover effect on pressed buttons
+ image {
+ function = BOX
+ state = PRELIGHT
+ shadow = IN
+ file = "assets/button-active.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = BOX
+ state = ACTIVE
+ file = "assets/button-active.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ file = "assets/button-disabled.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+ }
+}
+
+style "link_button" {
+ # Disable the button effect, leave just the link
+ engine "pixmap" {
+ image {
+ function = BOX
+ }
+ }
+}
+
+style "entry" {
+ # We set this same as the border of the border of the entry
+ # This way there's no overlap
+ xthickness = 6
+ ythickness = 6
+}
+
+style "combobox" {
+ xthickness = 6
+ ythickness = 6
+
+ # This affects only the button beside an entry
+ GtkButton::inner-border = {0, 0, 0, 0}
+}
+
+style "combobox_cellview" {
+ text[NORMAL] = mix(0.75, @fg_color, @bg_color)
+ # text[INSENSITIVE] = mix(0.3, @fg_color, @bg_color)
+
+ font_name = "Medium"
+}
+
+style "combobox_entry" {
+ # Since one side of the button is missing, we need to shift the arrow a little to the right
+ GtkButton::inner-border = {0, 2, 0, 0}
+
+ engine "pixmap" {
+
+ #############
+ # LTR entry #
+ #############
+
+ image {
+ function = SHADOW
+ state = NORMAL
+ detail = "entry"
+ file = "assets/combo-ltr-entry.png"
+ border = {8, 0, 8, 8}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ image {
+ function = SHADOW
+ state = ACTIVE
+ detail = "entry"
+ file = "assets/combo-ltr-entry-active.png"
+ border = {8, 0, 8, 8}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ image {
+ function = SHADOW
+ state = INSENSITIVE
+ detail = "entry"
+ file = "assets/combo-ltr-entry-disabled.png"
+ border = {8, 0, 8, 8}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ #############
+ # RTL entry #
+ #############
+
+ image {
+ function = SHADOW
+ state = NORMAL
+ detail = "entry"
+ file = "assets/combo-rtl-entry.png"
+ border = {0, 8, 8, 8}
+ stretch = TRUE
+ direction = RTL
+ }
+
+ image {
+ function = SHADOW
+ state = ACTIVE
+ detail = "entry"
+ file = "assets/combo-rtl-entry-active.png"
+ border = {0, 8, 8, 8}
+ stretch = TRUE
+ direction = RTL
+ }
+
+ image {
+ function = SHADOW
+ state = INSENSITIVE
+ detail = "entry"
+ file = "assets/combo-rtl-entry-disabled.png"
+ border = {0, 8, 8, 8}
+ stretch = TRUE
+ direction = RTL
+ }
+
+ ##############
+ # LTR button #
+ ##############
+
+ image {
+ function = BOX
+ state = NORMAL
+ detail = "button"
+ file = "assets/combo-ltr-button.png"
+ border = {0, 8, 8, 8}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ detail = "button"
+ file = "assets/combo-ltr-button-hover.png"
+ border = {0, 8, 8, 8}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = ACTIVE
+ detail = "button"
+ file = "assets/combo-ltr-button-active.png"
+ border = {0, 8, 8, 8}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ detail = "button"
+ file = "assets/combo-ltr-button-disabled.png"
+ border = {0, 8, 8, 8}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ ##############
+ # RTL button #
+ ##############
+
+ image {
+ function = BOX
+ state = NORMAL
+ detail = "button"
+ file = "assets/combo-rtl-button.png"
+ border = {8, 0, 8, 8}
+ stretch = TRUE
+ direction = RTL
+ }
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ detail = "button"
+ file = "assets/combo-rtl-button-hover.png"
+ border = {8, 0, 8, 8}
+ stretch = TRUE
+ direction = RTL
+ }
+
+ image {
+ function = BOX
+ state = ACTIVE
+ detail = "button"
+ file = "assets/combo-rtl-button-active.png"
+ border = {8, 0, 8, 8}
+ stretch = TRUE
+ direction = RTL
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ detail = "button"
+ file = "assets/combo-rtl-button-disabled.png"
+ border = {8, 0, 8, 8}
+ stretch = TRUE
+ direction = RTL
+ }
+ }
+}
+
+style "combo_button_padding" {
+ # Since one side of the button is missing, we need to shift the arrow a
+ # little to the right.
+ # This is the same thing we've done above but the combo, unlike the combobox,
+ # uses padding the same way as a button.
+ GtkButton::inner-border = {3, 6, 3, 3}
+}
+
+style "notebook" {
+ xthickness = 3
+ ythickness = 3
+}
+
+style "notebook_tab_label" {
+ fg[ACTIVE] = mix(0.75, @fg_color, @bg_color)
+
+ font_name = "Medium"
+}
+
+style "notebook_viewport" {
+ bg[NORMAL] = @base_color
+}
+
+style "notebook_bg" {
+ bg[NORMAL] = @base_color
+ bg[PRELIGHT] = @base_color
+ bg[INSENSITIVE] = @base_color
+}
+
+style "notebook_entry" {
+ engine "pixmap" {
+ image {
+ function = SHADOW
+ state = ACTIVE
+ detail = "entry"
+ file = "assets/notebook-entry-active.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = SHADOW
+ state = INSENSITIVE
+ detail = "entry"
+ file = "assets/notebook-entry-disabled.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = SHADOW
+ detail = "entry"
+ file = "assets/notebook-entry.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+ }
+}
+
+style "normal_bg" {
+ bg[NORMAL] = @bg_color
+ bg[PRELIGHT] = @bg_color
+ bg[INSENSITIVE] = @bg_color
+}
+
+style "normal_entry" {
+ engine "pixmap" {
+ image {
+ function = SHADOW
+ state = ACTIVE
+ detail = "entry"
+ file = "assets/entry-active.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = SHADOW
+ state = INSENSITIVE
+ detail = "entry"
+ file = "assets/entry-disabled.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = SHADOW
+ detail = "entry"
+ file = "assets/entry.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+ }
+}
+
+style "notebook_combo" {
+ engine "pixmap" {
+
+ #############
+ # LTR entry #
+ #############
+
+ image {
+ function = SHADOW
+ state = NORMAL
+ detail = "entry"
+ file = "assets/notebook-combo-ltr-entry.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ image {
+ function = SHADOW
+ state = ACTIVE
+ detail = "entry"
+ file = "assets/notebook-combo-ltr-entry-active.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ image {
+ function = SHADOW
+ state = INSENSITIVE
+ detail = "entry"
+ file = "assets/notebook-combo-ltr-entry-disabled.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ #############
+ # RTL entry #
+ #############
+
+ image {
+ function = SHADOW
+ state = NORMAL
+ detail = "entry"
+ file = "assets/notebook-combo-rtl-entry.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ direction = RTL
+ }
+
+ image {
+ function = SHADOW
+ state = ACTIVE
+ detail = "entry"
+ file = "assets/notebook-combo-rtl-entry-active.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ direction = RTL
+ }
+
+ image {
+ function = SHADOW
+ state = INSENSITIVE
+ detail = "entry"
+ file = "assets/notebook-combo-rtl-entry-disabled.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ direction = RTL
+ }
+ }
+}
+
+style "textview" {
+ bg[NORMAL] = @base_color
+}
+
+style "scale_horz" {
+ engine "pixmap" {
+ image {
+ function = BOX
+ detail = "trough-upper"
+ file = "assets/scale-horz-trough.png"
+ border = {6, 6, 0, 0}
+ stretch = TRUE
+ }
+
+ image {
+ function = BOX
+ detail = "trough-lower"
+ file = "assets/scale-horz-trough-active.png"
+ border = {6, 6, 0, 0}
+ stretch = TRUE
+ }
+ }
+}
+
+style "scale_vert" {
+ engine "pixmap" {
+ image {
+ function = BOX
+ detail = "trough-upper"
+ file = "assets/scale-vert-trough.png"
+ border = {0, 0, 6, 6}
+ stretch = TRUE
+ }
+
+ image {
+ function = BOX
+ detail = "trough-lower"
+ file = "assets/scale-vert-trough-active.png"
+ border = {0, 0, 6, 6}
+ stretch = TRUE
+ }
+ }
+}
+
+style "progressbar" {
+ xthickness = 0
+ ythickness = 0
+
+ fg[PRELIGHT] = @selected_fg_color
+
+ engine "pixmap" {
+ image {
+ function = BOX
+ detail = "trough"
+ file = "assets/progressbar-trough.png"
+ border = {0, 0, 0, 0}
+ stretch = TRUE
+ orientation = HORIZONTAL
+ }
+
+ image {
+ function = BOX
+ detail = "trough"
+ file = "assets/progressbar-trough.png"
+ border = {0, 0, 0, 0}
+ stretch = TRUE
+ orientation = VERTICAL
+ }
+ }
+}
+
+style "treeview_header" {
+ xthickness = 2
+ ythickness = 2
+
+ fg[NORMAL] = mix(0.75, @fg_color, @base_color)
+ fg[PRELIGHT] = @fg_color
+
+ font_name = "Medium"
+
+ GtkButton::inner-border = {4, 4, 0, 2}
+
+ engine "pixmap" {
+ image {
+ function = BOX
+ state = NORMAL
+ file = "assets/treeview-ltr-button.png"
+ border = {0, 1, 0, 1}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ file = "assets/treeview-ltr-button-hover.png"
+ border = {0, 1, 0, 1}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = ACTIVE
+ file = "assets/treeview-ltr-button-active.png"
+ border = {0, 1, 0, 1}
+ stretch = TRUE
+ direction = LTR
+ }
+
+ image {
+ function = BOX
+ state = NORMAL
+ file = "assets/treeview-rtl-button.png"
+ border = {1, 0, 0, 1}
+ stretch = TRUE
+ direction = RTL
+ }
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ file = "assets/treeview-rtl-button-hover.png"
+ border = {1, 0, 0, 1}
+ stretch = TRUE
+ direction = RTL
+ }
+
+ image {
+ function = BOX
+ state = ACTIVE
+ file = "assets/treeview-rtl-button-active.png"
+ border = {1, 0, 0, 1}
+ stretch = TRUE
+ direction = RTL
+ }
+
+ image {
+ function = ARROW
+ state = NORMAL
+ overlay_file = "assets/pan-up-alt.png"
+ overlay_stretch = FALSE
+ arrow_direction = UP
+ }
+
+ image {
+ function = ARROW
+ state = PRELIGHT
+ overlay_file = "assets/pan-up.png"
+ overlay_stretch = FALSE
+ arrow_direction = UP
+ }
+
+ image {
+ function = ARROW
+ state = ACTIVE
+ overlay_file = "assets/pan-up.png"
+ overlay_stretch = FALSE
+ arrow_direction = UP
+ }
+
+ image {
+ function = ARROW
+ state = NORMAL
+ overlay_file = "assets/pan-down-alt.png"
+ overlay_stretch = FALSE
+ arrow_direction = DOWN
+ }
+
+ image {
+ function = ARROW
+ state = PRELIGHT
+ overlay_file = "assets/pan-down.png"
+ overlay_stretch = FALSE
+ arrow_direction = DOWN
+ }
+
+ image {
+ function = ARROW
+ state = ACTIVE
+ overlay_file = "assets/pan-down.png"
+ overlay_stretch = FALSE
+ arrow_direction = DOWN
+ }
+ }
+}
+
+style "scrolled_window" {
+ engine "pixmap" {
+ image {
+ function = SHADOW
+ file = "assets/frame.png"
+ border = {1, 1, 1, 1}
+ stretch = TRUE
+ }
+ }
+}
+
+style "frame" {
+ engine "pixmap" {
+ image {
+ function = SHADOW
+ shadow = NONE
+ }
+
+ image {
+ function = SHADOW
+ file = "assets/frame.png"
+ border = {1, 1, 1, 1}
+ stretch = TRUE
+ }
+
+ image {
+ function = SHADOW_GAP
+ file = "assets/frame.png"
+ border = {1, 1, 1, 1}
+ stretch = TRUE
+ gap_start_file = "assets/border.png"
+ gap_end_file = "assets/border.png"
+ }
+ }
+}
+
+style "tool_button" {
+ GtkButton::inner-border = {2, 2, 2, 2}
+
+ # For the sake of sanity style buttons this way
+ engine "pixmap" {
+ image {
+ function = BOX
+ state = NORMAL
+ file = "assets/flat-button.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = BOX
+ state = PRELIGHT
+ shadow = OUT
+ file = "assets/flat-button-hover.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ # Don't add hover effect on pressed buttons
+ image {
+ function = BOX
+ state = PRELIGHT
+ shadow = IN
+ file = "assets/flat-button-active.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = BOX
+ state = ACTIVE
+ file = "assets/flat-button-active.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ shadow = OUT
+ file = "assets/flat-button-disabled.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+
+ image {
+ function = BOX
+ state = INSENSITIVE
+ shadow = IN
+ file = "assets/button-disabled.png"
+ border = {8, 8, 8, 8}
+ stretch = TRUE
+ }
+ }
+}
+
+style "toolbar_separator" {
+ GtkWidget::wide-separators = 1
+ GtkWidget::separator-width = 1
+ GtkWidget::separator-height = 1
+
+ engine "pixmap" {
+ image {
+ function = BOX
+ file = "assets/border.png"
+ }
+ }
+}
+
+style "inline_toolbar" {
+ # GtkToolbar::button-relief = GTK_RELIEF_NORMAL
+
+ engine "pixmap" {
+ image {
+ function = BOX
+ file = "assets/frame-inline.png"
+ border = {1, 1, 0, 1}
+ stretch = TRUE
+ }
+ }
+}
+
+style "tooltip" {
+ xthickness = 8
+ ythickness = 8
+
+ bg[NORMAL] = @tooltip_bg_color
+ fg[NORMAL] = @tooltip_fg_color
+ bg[SELECTED] = @tooltip_bg_color
+}
+
+style "disable_text_shadow" {
+ engine "murrine" {
+ textstyle = 0
+ }
+}
+
+style "disable_separator" {
+ xthickness = 0
+ ythickness = 0
+
+ GtkWidget::wide-separators = 1
+}
+
+# Default style, containing theme properties and trying to match every widget as
+# much as possible, which is not only faster than trying to match every widget
+# by its own but also less bug-prune and more consistent. However there is some
+# widget specific stuff that needs to be taken care of, which is the point of
+# every other style below.
+class "GtkWidget" style "default"
+
+######################################
+# Override padding, style and colour #
+######################################
+
+class "GtkButton" style "button"
+class "GtkLinkButton" style "link_button"
+class "GtkEntry" style "entry"
+class "GtkOldEditable" style "entry"
+class "GtkNotebook" style "notebook"
+class "GtkHScale" style "scale_horz"
+class "GtkVScale" style "scale_vert"
+class "GtkProgressBar" style "progressbar"
+class "GtkScrolledWindow" style "scrolled_window"
+class "GtkFrame" style "frame"
+class "GtkSeparatorToolItem" style "toolbar_separator"
+class "GtkMenuBar" style "menubar"
+class "GtkMenu" style "menu"
+class "GtkTextView" style "textview"
+
+# Menu and menubar items
+widget_class "*<GtkMenuItem>*" style "menu_item"
+widget_class "*<GtkMenuBar>.<GtkMenuItem>*" style "menubar_item"
+widget_class "*<GtkSeparatorMenuItem>*" style "separator_menu_item"
+
+# Treeview buttons
+widget_class "*<GtkTreeView>*<GtkButton>*" style "treeview_header"
+
+# Give the file chooser toolbar a border
+widget_class "*<GtkFileChooserDefault>*<GtkToolbar>" style "inline_toolbar"
+
+# Fix padding on regular comboboxes
+widget_class "*<GtkComboBox>.<GtkButton>" style "combobox"
+
+# And disable separators on them
+widget_class "*<GtkComboBox>.<GtkButton>*<GtkSeparator>" style "disable_separator"
+widget_class "*<GtkFontButton>*<GtkSeparator>" style "disable_separator"
+widget_class "*<GtkFileChooserButton>*<GtkSeparator>" style "disable_separator"
+
+# Join together the ComboBoxEntry entry and button
+widget_class "*<GtkComboBoxEntry>*" style "combobox_entry"
+
+# Join the Combo entry and button
+widget_class "*<GtkCombo>*" style "combobox_entry"
+
+# Tweak the padding on the button a little bit because it
+# uses it a bit differently
+widget_class "*<GtkCombo>.<GtkButton>" style "combo_button_padding"
+
+# Alas we cannot do the same for ComboBoxText because there
+# isn't a way to apply the style to only the comboboxes that
+# have an entry inside
+
+# Tool buttons have different styles
+widget_class "*<GtkToolButton>*<GtkButton>" style "tool_button"
+widget_class "*<GtkVBox>*<GtkEventBox>.<GtkToolbar>*<GtkButton>" style "tool_button"
+
+# Notebooks
+widget_class "*<GtkNotebook>.<GtkLabel>" style "notebook_tab_label"
+widget_class "*<GtkNotebook>.<GtkHBox>.<GtkLabel>" style "notebook_tab_label"
+
+# Notebooks are white, act accordingly
+widget_class "*<GtkNotebook>*<GtkEntry>" style "notebook_entry"
+widget_class "*<GtkNotebook>*<GtkProgressBar>" style "notebook_bg"
+widget_class "*<GtkNotebook>*<GtkSpinButton>" style "notebook_bg"
+widget_class "*<GtkNotebook>*<GtkScrolledWindow>*<GtkViewport>" style "notebook_bg"
+widget_class "*<GtkNotebook>*<GimpRuler>" style "notebook_bg"
+widget_class "*<GtkNotebook>.<GimpDisplayShell>*<GtkEventBox>" style "notebook_bg"
+widget_class "*<GtkNotebook>*<GtkComboBoxEntry>*" style "notebook_combo"
+widget_class "*<GtkNotebook>*<GtkCombo>*" style "notebook_combo"
+
+# However, stuff inside eventboxes inside notebooks is grey
+# again, react
+widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkEntry>" style "normal_entry"
+widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkProgressBar>" style "normal_bg"
+widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkSpinButton>" style "normal_bg"
+widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkComboBoxEntry>*" style "combobox_entry"
+widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkCombo>*" style "combobox_entry"
+widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkCombo>.<GtkButton>" style "combo_button_padding"
+
+# Button labels
+widget_class "*<GtkButton>*<GtkLabel>" style "button_label"
+
+# Checkbutton labels
+widget_class "*<GtkCheckButton>.<GtkLabel>" style "checkbutton_label"
+
+# ComboBoxes tend to draw the button label with text[]
+# instead of fg[], we need to fix that
+widget_class "*<GtkComboBox>*<GtkCellView>" style "combobox_cellview"
+
+# Disable white text shadows
+widget_class "*<GtkLabel>" style "disable_text_shadow"
+widget_class "*<GtkCellView>" style "disable_text_shadow"
+
+# GTK tooltips
+widget "gtk-tooltip*" style "tooltip"