# vim:set ft=gtkrc ts=2 sw=2 sts=2 ai et: style "default" { xthickness = 1 ythickness = 1 #################### # Style Properties # #################### GtkWidget::focus-line-width = 1 GtkWidget::focus-line-pattern = "\2\1" GtkMenuBar::window-dragging = 1 GtkToolbar::window-dragging = 1 GtkToolbar::internal-padding = 4 GtkToolButton::icon-spacing = 4 GtkWidget::tooltip-radius = 3 GtkWidget::tooltip-alpha = 235 GtkWidget::new-tooltip-style = 1 #for compatibility GtkWidget::link-color = shade(0.9, @selected_bg_color) GtkWidget::visited-link-color = shade(0.8, @selected_bg_color) GnomeHRef::link_color = shade(0.9, @selected_bg_color) GtkHTML::link-color = shade(0.9, @selected_bg_color) GtkHTML::vlink-color = shade(0.8, @selected_bg_color) GtkIMHtml::hyperlink-color = shade(0.9, @selected_bg_color) GtkIMHtml::hyperlink-visited-color = shade(0.8, @selected_bg_color) GtkSeparatorMenuItem::horizontal-padding = 1 GtkSeparatorMenuItem::wide-separators = 1 GtkSeparatorMenuItem::separator-height = 1 GtkButton::child-displacement-y = 0 GtkButton::default-border = {0, 0, 0, 0} GtkButton::default-outside-border = {0, 0, 0, 0} GtkButton::inner-border = {6, 6, 4, 4} GtkEntry::state-hint = 1 GtkEntry::inner-border = {7, 7, 4, 5} GtkPaned::handle-size = 9 GtkHPaned::handle-size = 9 GtkVPaned::handle-size = 9 GtkScrollbar::trough-border = 0 GtkRange::trough-border = 0 GtkRange::slider-width = 13 GtkRange::stepper-size = 0 GtkRange::activate-slider = 1 GtkScrollbar::activate-slider = 1 GtkScrollbar::has-backward-stepper = 0 GtkScrollbar::has-forward-stepper = 0 GtkScrollbar::min-slider-length = 48 # 42 + 2*3 (margins) GtkScrolledWindow::scrollbar-spacing = 0 GtkScrolledWindow::scrollbars-within-bevel = 1 GtkScale::slider_length = 26 GtkScale::slider_width = 26 GtkScale::trough-side-details = 1 GtkProgressBar::min-horizontal-bar-height = 6 GtkProgressBar::min-vertical-bar-width = 6 # Making this bigger than the min[height,width]-2*[y,x]spacing makes the # whole progressbar thicker, so by setting it to the exact above value # we get the maximum spacing between the text and the edges without # doing so. 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 GtkMenuBar::internal-padding = 0 #( every window is misaligned for the sake of menus ): GtkMenu::horizontal-padding = 0 GtkMenu::vertical-padding = 0 GtkCheckButton::indicator_spacing = 3 GtkOptionMenu::indicator_spacing = {12, 12, 4, 6} GtkTreeView::row_ending_details = 0 GtkTreeView::expander-size = 16 GtkTreeView::vertical-separator = 4 GtkTreeView::horizontal-separator = 4 GtkTreeView::allow-rules = 0 GtkExpander::expander-size = 16 GtkNotebook::tab-overlap = -8 ########## # Colors # ########## bg[NORMAL] = @bg_color bg[PRELIGHT] = @bg_color bg[SELECTED] = @selected_bg_color bg[INSENSITIVE] = mix (0.6, @bg_color, @base_color) bg[ACTIVE] = @selected_bg_color fg[NORMAL] = @fg_color fg[PRELIGHT] = @fg_color fg[SELECTED] = @selected_fg_color fg[INSENSITIVE] = mix (0.5, @fg_color, @bg_color) fg[ACTIVE] = @fg_color #fg[NORMAL] = @focus_color #fg[PRELIGHT] = @focus_color #fg[ACTIVE] = @focus_color text[NORMAL] = @text_color text[PRELIGHT] = @text_color text[SELECTED] = @selected_fg_color text[INSENSITIVE] = darker (@bg_color) text[ACTIVE] = @selected_fg_color base[NORMAL] = @base_color base[PRELIGHT] = shade (0.95, @bg_color) base[SELECTED] = @selected_bg_color base[INSENSITIVE] = @bg_color base[ACTIVE] = @selected_bg_color # For succinctness, all reasonable pixmap options remain here engine "pixmap" { ################# # Check Buttons # ################# image { function = CHECK recolorable = TRUE state = NORMAL shadow = OUT overlay_file = "assets/checkbox-unchecked.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = PRELIGHT shadow = OUT overlay_file = "assets/checkbox-unchecked-hover.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = ACTIVE shadow = OUT overlay_file = "assets/checkbox-unchecked-active.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = SELECTED shadow = OUT overlay_file = "assets/checkbox-unchecked.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = INSENSITIVE shadow = OUT overlay_file = "assets/checkbox-unchecked-insensitive.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = NORMAL shadow = IN overlay_file = "assets/checkbox-checked.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = PRELIGHT shadow = IN overlay_file = "assets/checkbox-checked-hover.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = ACTIVE shadow = IN overlay_file = "assets/checkbox-checked-active.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = SELECTED shadow = IN overlay_file = "assets/checkbox-checked.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = INSENSITIVE shadow = IN overlay_file = "assets/checkbox-checked-insensitive.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = NORMAL shadow = ETCHED_IN overlay_file = "assets/checkbox-mixed.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = PRELIGHT shadow = ETCHED_IN overlay_file = "assets/checkbox-mixed-hover.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = ACTIVE shadow = ETCHED_IN overlay_file = "assets/checkbox-mixed-active.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = SELECTED shadow = ETCHED_IN overlay_file = "assets/checkbox-mixed.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = INSENSITIVE shadow = ETCHED_IN overlay_file = "assets/checkbox-mixed-insensitive.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-insensitive.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-insensitive.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-insensitive.png" overlay_stretch = FALSE } ########## # Arrows # ########## image { function = ARROW overlay_file = "assets/arrow-up.png" overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW state = PRELIGHT overlay_file = "assets/arrow-up.png" overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW state = ACTIVE overlay_file = "assets/arrow-up.png" overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW state = INSENSITIVE overlay_file = "assets/arrow-up-insensitive.png" overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW state = NORMAL overlay_file = "assets/arrow-down.png" overlay_stretch = FALSE arrow_direction = DOWN } image { function = ARROW state = PRELIGHT overlay_file = "assets/arrow-down.png" overlay_stretch = FALSE arrow_direction = DOWN } image { function = ARROW state = ACTIVE overlay_file = "assets/arrow-down.png" overlay_stretch = FALSE arrow_direction = DOWN } image { function = ARROW state = INSENSITIVE overlay_file = "assets/arrow-down-insensitive.png" overlay_stretch = FALSE arrow_direction = DOWN } image { function = ARROW overlay_file = "assets/arrow-left.png" overlay_stretch = FALSE arrow_direction = LEFT } image { function = ARROW state = PRELIGHT overlay_file = "assets/arrow-left.png" overlay_stretch = FALSE arrow_direction = LEFT } image { function = ARROW state = ACTIVE overlay_file = "assets/arrow-left.png" overlay_stretch = FALSE arrow_direction = LEFT } image { function = ARROW state = INSENSITIVE overlay_file = "assets/arrow-left-insensitive.png" overlay_stretch = FALSE arrow_direction = LEFT } image { function = ARROW overlay_file = "assets/arrow-right.png" overlay_stretch = FALSE arrow_direction = RIGHT } image { function = ARROW state = PRELIGHT overlay_file = "assets/arrow-right.png" overlay_stretch = FALSE arrow_direction = RIGHT } image { function = ARROW state = ACTIVE overlay_file = "assets/arrow-right.png" overlay_stretch = FALSE arrow_direction = RIGHT } image { function = ARROW state = INSENSITIVE overlay_file = "assets/arrow-right-insensitive.png" overlay_stretch = FALSE arrow_direction = RIGHT } ###################### # Option Menu Arrows # ###################### image { function = TAB state = NORMAL overlay_file = "assets/pan-down.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-insensitive.png" overlay_stretch = FALSE } ######### # Lines # ######### image { function = VLINE file = "assets/line.png" stretch = TRUE } image { function = HLINE file = "assets/line.png" stretch = TRUE } ######### # Focus # ######### image { function = FOCUS file = "assets/focus.png" border = {1, 1, 1, 1} stretch = TRUE } ########### # Handles # ########### image { function = HANDLE file = "assets/handle-horz.png" border = {0, 0, 5, 5} orientation = HORIZONTAL } image { function = HANDLE file = "assets/handle-vert.png" border = {5, 5, 0, 0} orientation = VERTICAL } ############# # Expanders # ############# image { function = EXPANDER expander_style = COLLAPSED file = "assets/pan-right.png" } image { function = EXPANDER expander_style = EXPANDED file = "assets/pan-down.png" } image { function = EXPANDER expander_style = SEMI_EXPANDED file = "assets/pan-down.png" } image { function = EXPANDER expander_style = SEMI_COLLAPSED file = "assets/pan-right.png" } ########## # Others # ########## image { function = RESIZE_GRIP state = NORMAL detail = "statusbar" overlay_file = "assets/null.png" overlay_stretch = FALSE } ########### # Shadows # ( this area needs help :P ) ########### image { function = SHADOW_GAP file = "assets/null.png" stretch = TRUE } } } style "label" { fg[NORMAL] = @fg_color fg[PRELIGHT] = @fg_color fg[ACTIVE] = @fg_color } style "scrollbar" { engine "pixmap" { image { function = BOX detail = "trough" file = "assets/scrollbar-horz-trough.png" border = {0, 0, 1, 0} stretch = TRUE orientation = HORIZONTAL } image { function = BOX detail = "trough" file = "assets/scrollbar-vert-trough.png" border = {1, 0, 0, 0} stretch = TRUE orientation = VERTICAL } ########### # Sliders # ########### image { function = SLIDER state = NORMAL file = "assets/scrollbar-horz-slider.png" border = {6, 6, 7, 6 } stretch = TRUE orientation = HORIZONTAL } image { function = SLIDER state = PRELIGHT file = "assets/scrollbar-horz-slider-hover.png" border = {6, 6, 7, 6 } stretch = TRUE orientation = HORIZONTAL } image { function = SLIDER state = ACTIVE file = "assets/scrollbar-horz-slider-active.png" border = {6, 6, 7, 6 } stretch = TRUE orientation = HORIZONTAL } image { function = SLIDER state = INSENSITIVE file = "assets/null.png" stretch = TRUE orientation = HORIZONTAL } ############### # X Verticals # ############### image { function = SLIDER state = NORMAL file = "assets/scrollbar-vert-slider.png" border = {7, 6, 6, 6} stretch = TRUE orientation = VERTICAL } image { function = SLIDER state = PRELIGHT file = "assets/scrollbar-vert-slider-hover.png" border = {7, 6, 6, 6} stretch = TRUE orientation = VERTICAL } image { function = SLIDER state = ACTIVE file = "assets/scrollbar-vert-slider-active.png" border = {7, 6, 6, 6} stretch = TRUE orientation = VERTICAL } image { function = SLIDER state = INSENSITIVE file = "assets/null.png" stretch = TRUE orientation = VERTICAL } } } style "toplevel_hack" { engine "adwaita" {} } style "menubar" { # Needed to fix Firefox's menubar text bg[SELECTED] = @selected_fg_color fg[SELECTED] = shade(0.9, @selected_bg_color) engine "pixmap" { image { function = BOX state = NORMAL file = "assets/line.png" border = {0, 0, 0, 1} stretch = TRUE } } } style "menubar_item" { xthickness = 3 ythickness = 4 fg[PRELIGHT] = shade(0.9, @selected_bg_color) engine "pixmap" { image { function = BOX state = PRELIGHT file = "assets/menubar-item-active.png" border = {0, 0, 0, 3} stretch = TRUE } } } style "menu" { xthickness = 0 ythickness = 0 GtkMenuItem::arrow-scaling = 0.4 bg[NORMAL] = @base_color bg[INSENSITIVE] = @base_color bg[PRELIGHT] = @base_color # For menus that use horizontal lines rather than gtkseparator engine "pixmap" { image { function = HLINE file = "assets/line.png" border = {0, 0, 0, 0} stretch = TRUE } } } style "menu_framed_box" { engine "adwaita" {} } style "menu_item" { xthickness = 3 ythickness = 4 # HACK: Gtk doesn't actually read this value # while rendering the menu items, but Libreoffice # does; setting this value equal to the one in # fg[PRELIGHT] ensures a code path in the LO theming code # that falls back to a dark text color for menu item text # highlight. The price to pay is black text on menus as well, # but at least it's readable. # See https://bugs.freedesktop.org/show_bug.cgi?id = 38038 bg[SELECTED] = @selected_fg_color bg[PRELIGHT] = @selected_bg_color fg[PRELIGHT] = @selected_fg_color text[PRELIGHT] = @selected_fg_color engine "pixmap" { ################# # Check Buttons # ################# image { function = CHECK recolorable = TRUE state = NORMAL shadow = OUT overlay_file = "assets/menu-checkbox.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = PRELIGHT shadow = OUT overlay_file = "assets/menu-checkbox-hover.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = ACTIVE shadow = OUT overlay_file = "assets/menu-checkbox.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = INSENSITIVE shadow = OUT overlay_file = "assets/menu-checkbox-insensitive.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = NORMAL shadow = IN overlay_file = "assets/menu-checkbox-checked.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = PRELIGHT shadow = IN overlay_file = "assets/menu-checkbox-checked-hover.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = ACTIVE shadow = IN overlay_file = "assets/menu-checkbox-checked.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = INSENSITIVE shadow = IN overlay_file = "assets/menu-checkbox-checked-insensitive.png" overlay_stretch = FALSE } ################# # Radio Buttons # ################# image { function = OPTION state = NORMAL shadow = OUT overlay_file = "assets/menu-radio.png" overlay_stretch = FALSE } image { function = OPTION state = PRELIGHT shadow = OUT overlay_file = "assets/menu-radio-hover.png" overlay_stretch = FALSE } image { function = OPTION state = ACTIVE shadow = OUT overlay_file = "assets/menu-radio.png" overlay_stretch = FALSE } image { function = OPTION state = INSENSITIVE shadow = OUT overlay_file = "assets/menu-radio-insensitive.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-hover.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-insensitive.png" overlay_stretch = FALSE } # This fixes boxy Qt menu items image { function = SHADOW file = "assets/null.png" stretch = TRUE } ################# # Arrow Buttons # ################# image { function = ARROW state = NORMAL overlay_file = "assets/pan-right.png" overlay_border = {0, 0, 0, 0} overlay_stretch = FALSE arrow_direction = RIGHT } image { function = ARROW state = PRELIGHT overlay_file = "assets/pan-right-hover.png" overlay_border = {0, 0, 0, 0} overlay_stretch = FALSE arrow_direction = RIGHT } image { function = ARROW state = INSENSITIVE overlay_file = "assets/pan-right-insensitive.png" overlay_border = {0, 0, 0, 0} overlay_stretch = FALSE arrow_direction = RIGHT } } } style "button" { xthickness = 2 ythickness = 2 engine "pixmap" { image { function = BOX state = NORMAL file = "assets/button.png" border = {4, 4, 4, 4} stretch = TRUE } image { function = BOX state = PRELIGHT shadow = OUT file = "assets/button-hover.png" border = {4, 4, 4, 4} stretch = TRUE } # Don't add hover effect on pressed buttons image { function = BOX state = PRELIGHT shadow = IN file = "assets/button-active.png" border = {4, 4, 4, 4} stretch = TRUE } image { function = BOX state = ACTIVE file = "assets/button-active.png" border = {4, 4, 4, 4} stretch = TRUE } image { function = BOX state = INSENSITIVE file = "assets/button-insensitive.png" border = {4, 4, 4, 4} stretch = TRUE } } } style "button_infobar" { engine "pixmap" { image { function = BOX state = NORMAL file = "assets/infobar-button.png" border = {4, 4, 4, 4} stretch = TRUE } image { function = BOX state = PRELIGHT file = "assets/infobar-button-hover.png" border = {4, 4, 4, 4} stretch = TRUE } image { function = BOX state = ACTIVE file = "assets/infobar-button-active.png" border = {4, 4, 4, 4} stretch = TRUE } image { function = BOX state = INSENSITIVE file = "assets/infobar-button-insensitive.png" border = {4, 4, 4, 4} stretch = TRUE } } } style "checkbutton" { #fg[PRELIGHT] = @text_color #fg[ACTIVE] = @text_color } style "entry" { xthickness = 3 ythickness = 3 # This is needed otherwise the background is drawn with fg base[INSENSITIVE] = @insensitive_bg_color engine "pixmap" { image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "Entry/entry-border-bg.png" border = {4, 4, 4, 4} stretch = TRUE } image { function = SHADOW detail = "entry" state = INSENSITIVE shadow = IN file = "Entry/entry-border-disabled-bg.png" border = {4, 4, 4, 4} stretch = TRUE } image { function = SHADOW detail = "entry" state = ACTIVE file = "Entry/entry-border-active-bg.png" border = {4, 4, 4, 4} stretch = TRUE } image { function = FLAT_BOX detail = "entry_bg" state = NORMAL file = "assets/null.png" stretch = TRUE } image { function = FLAT_BOX detail = "entry_bg" state = ACTIVE file = "assets/null.png" stretch = TRUE } } } style "combobox_entry" { engine "pixmap" { ############### # LTR version # ############### image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "Entry/combo-entry-border-bg.png" border = {4, 4, 4, 4} stretch = TRUE direction = LTR } image { function = SHADOW detail = "entry" state = INSENSITIVE shadow = IN file = "Entry/combo-entry-border-disabled-bg.png" border = {4, 4, 5, 4} stretch = TRUE direction = LTR } image { function = SHADOW detail = "entry" state = ACTIVE file = "Entry/combo-entry-border-active-bg.png" border = {4, 4, 5, 4} stretch = TRUE direction = LTR } ############### # RTL version # ############### image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "Entry/combo-entry-border-rtl-bg.png" border = {4, 4, 5, 4} stretch = TRUE direction = RTL } image { function = SHADOW detail = "entry" state = INSENSITIVE shadow = IN file = "Entry/combo-entry-border-disabled-rtl-bg.png" border = {4, 4, 5, 4} stretch = TRUE direction = RTL } image { function = SHADOW detail = "entry" state = ACTIVE file = "Entry/combo-entry-border-active-rtl-bg.png" border = {4, 4, 5, 4} stretch = TRUE direction = RTL } } } style "combobox_entry_button" { fg[ACTIVE] = @text_color engine "pixmap" { ############### # LTR version # ############### image { function = BOX state = NORMAL file = "Entry/combo-entry-button.png" border = {4, 4, 5, 4} stretch = TRUE direction = LTR } image { function = BOX state = PRELIGHT file = "Entry/combo-entry-button.png" border = {4, 4, 5, 4} stretch = TRUE direction = LTR } image { function = BOX state = INSENSITIVE file = "Entry/combo-entry-button-disabled.png" border = {4, 4, 5, 4} stretch = TRUE direction = LTR } image { function = BOX state = ACTIVE file = "Entry/combo-entry-button-active.png" border = {4, 4, 5, 4} stretch = TRUE direction = LTR } ############### # RTL version # ############### image { function = BOX state = NORMAL file = "Entry/combo-entry-button-rtl.png" border = {4, 4, 5, 4} stretch = TRUE direction = RTL } image { function = BOX state = PRELIGHT file = "Entry/combo-entry-button-rtl.png" border = {4, 4, 5, 4} stretch = TRUE direction = RTL } image { function = BOX state = INSENSITIVE file = "Entry/combo-entry-button-disabled-rtl.png" border = {4, 4, 5, 4} stretch = TRUE direction = RTL } image { function = BOX state = ACTIVE file = "Entry/combo-entry-button-active-rtl.png" border = {4, 4, 5, 4} stretch = TRUE direction = RTL } } } style "spinbutton" { engine "pixmap" { image { function = ARROW } ############### # Spin-Up LTR # ############### image { function = BOX state = NORMAL detail = "spinbutton_up" file = "Spin/up-background.png" border = {1, 4, 5, 0} stretch = TRUE overlay_file = "Arrows/arrow-up-small.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = PRELIGHT detail = "spinbutton_up" file = "Spin/up-background.png" border = {1, 4, 5, 0} stretch = TRUE overlay_file = "Arrows/arrow-up-small-prelight.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = INSENSITIVE detail = "spinbutton_up" file = "Spin/up-background-disable.png" border = {1, 4, 5, 0} stretch = TRUE overlay_file = "Arrows/arrow-up-small-insens.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = ACTIVE detail = "spinbutton_up" file = "Spin/up-background.png" border = {1, 4, 5, 0} stretch = TRUE overlay_file = "Arrows/arrow-up-small-prelight.png" overlay_stretch = FALSE direction = LTR } ############### # Spin-Up RTL # ############### image { function = BOX state = NORMAL detail = "spinbutton_up" file = "Spin/up-background-rtl.png" border = {4, 1, 5, 0} stretch = TRUE overlay_file = "Arrows/arrow-up-small.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = PRELIGHT detail = "spinbutton_up" file = "Spin/up-background-rtl.png" border = {4, 1, 5, 0} stretch = TRUE overlay_file = "Arrows/arrow-up-small-prelight.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = INSENSITIVE detail = "spinbutton_up" file = "Spin/up-background-disable-rtl.png" border = {4, 1, 5, 0} stretch = TRUE overlay_file = "Arrows/arrow-up-small-insens.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = ACTIVE detail = "spinbutton_up" file = "Spin/up-background-rtl.png" border = {4, 1, 5, 0} stretch = TRUE overlay_file = "Arrows/arrow-up-small-prelight.png" overlay_stretch = FALSE direction = RTL } ################# # Spin-Down LTR # ################# image { function = BOX state = NORMAL detail = "spinbutton_down" file = "Spin/down-background.png" border = {1, 4, 1, 4} stretch = TRUE overlay_file = "Arrows/arrow-down-small.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = PRELIGHT detail = "spinbutton_down" file = "Spin/down-background.png" border = {1, 4, 1, 4} stretch = TRUE overlay_file = "Arrows/arrow-down-small-prelight.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = INSENSITIVE detail = "spinbutton_down" file = "Spin/down-background-disable.png" border = {1, 4, 1, 4} stretch = TRUE overlay_file = "Arrows/arrow-down-small-insens.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = ACTIVE detail = "spinbutton_down" file = "Spin/down-background.png" border = {1, 4, 1, 4} stretch = TRUE overlay_file = "Arrows/arrow-down-small-prelight.png" overlay_stretch = FALSE direction = LTR } ################# # Spin-Down RTL # ################# image { function = BOX state = NORMAL detail = "spinbutton_down" file = "Spin/down-background-rtl.png" border = {4, 1, 1, 4} stretch = TRUE overlay_file = "Arrows/arrow-down-small.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = PRELIGHT detail = "spinbutton_down" file = "Spin/down-background-rtl.png" border = {4, 1, 1, 4} stretch = TRUE overlay_file = "Arrows/arrow-down-small-prelight.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = INSENSITIVE detail = "spinbutton_down" file = "Spin/down-background-disable-rtl.png" border = {4, 1, 1, 4} stretch = TRUE overlay_file = "Arrows/arrow-down-small-insens.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = ACTIVE detail = "spinbutton_down" file = "Spin/down-background-rtl.png" border = {4, 1, 1, 4} stretch = TRUE overlay_file = "Arrows/arrow-down-small-prelight.png" overlay_stretch = FALSE direction = RTL } } } style "standalone_entry" { engine "pixmap" { image { function = FLAT_BOX detail = "entry_bg" state = ACTIVE file = "Entry/entry-border-fill-plain.png" stretch = TRUE } image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "Entry/entry-border-bg-solid.png" border = {4, 4, 4, 4} stretch = TRUE } image { function = SHADOW detail = "entry" state = ACTIVE file = "Entry/entry-border-active-bg-solid.png" border = {4, 4, 4, 4} stretch = TRUE } image { function = FLAT_BOX detail = "entry_bg" state = NORMAL file = "Entry/entry-border-fill-plain.png" stretch = TRUE } } } style "notebook" { xthickness = 5 ythickness = 2 engine "pixmap" { # Inactive tabs are drawn with ACTIVE for some reason # Left image { function = EXTENSION state = ACTIVE file = "assets/null.png" gap_side = RIGHT } image { function = EXTENSION file = "assets/tab-vert-active.png" border = {0, 2, 0, 0} stretch = TRUE gap_side = RIGHT } # Right image { function = EXTENSION state = ACTIVE file = "assets/null.png" gap_side = LEFT } image { function = EXTENSION file = "assets/tab-vert-active.png" border = {2, 0, 0, 0} stretch = TRUE gap_side = LEFT } # Up image { function = EXTENSION state = ACTIVE file = "assets/null.png" gap_side = BOTTOM } image { function = EXTENSION file = "assets/tab-horz-active.png" border = {0, 0, 0, 2} stretch = TRUE gap_side = BOTTOM } # Down image { function = EXTENSION state = ACTIVE file = "assets/null.png" gap_side = TOP } image { function = EXTENSION file = "assets/tab-horz-active.png" border = {0, 0, 2, 0} stretch = TRUE gap_side = TOP } # Draw the inner frame image { function = BOX_GAP file = "assets/frame-notebook.png" border = {1, 1, 1, 1} stretch = TRUE gap_file = "assets/tab-gap.png" gap_border = {1, 0, 0, 0} gap_side = LEFT } image { function = BOX_GAP file = "assets/frame-notebook.png" border = {1, 1, 1, 1} stretch = TRUE gap_file = "assets/tab-gap.png" gap_border = {0, 1, 0, 0} gap_side = RIGHT } image { function = BOX_GAP file = "assets/frame-notebook.png" border = {1, 1, 1, 1} stretch = TRUE gap_file = "assets/tab-gap.png" gap_border = {0, 0, 1, 0} gap_side = TOP } image { function = BOX_GAP file = "assets/frame-notebook.png" border = {1, 1, 1, 1} stretch = TRUE gap_file = "assets/tab-gap.png" gap_border = {0, 0, 0, 1} gap_side = BOTTOM } # Standalone frame image { function = BOX file = "assets/frame-notebook.png" border = {1, 1, 1, 1} stretch = TRUE } } } style "notebook_tab_label" { font_name = "Bold" # Again, ACTIVE is actually inactive fg[NORMAL] = @selected_bg_color } style "notebook_viewport" { bg[NORMAL] = @base_color } style "notebook_prelight" { bg[PRELIGHT] = @base_color } style "handlebox" { engine "pixmap" { image { function = BOX file = "assets/null.png" stretch = TRUE detail = "handlebox_bin" shadow = IN } image { function = BOX file = "assets/null.png" stretch = TRUE detail = "handlebox_bin" shadow = OUT } } } style "button_separator" { xthickness = 0 ythickness = 0 GtkWidget::wide-separators = 1 } style "toolbar_separator" { GtkWidget::wide-separators = 1 GtkWidget::separator-height = 1 GtkWidget::separator-width = 1 engine "pixmap" { image { function = BOX file = "assets/line.png" border = {0, 0, 0, 0} stretch = TRUE } } } style "combobox" { xthickness = 0 ythickness = 0 } style "combobox_button" { xthickness = 6 ythickness = 4 # This affects only the button beside an entry GtkButton::inner-border = {0, 0, 0, 0} } style "combobox_cellview" { text[NORMAL] = @fg_color text[PRELIGHT] = @fg_color } style "combobox_arrows" { engine "pixmap" { image { function = ARROW state = NORMAL overlay_file = "assets/pan-down.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-insensitive.png" overlay_stretch = FALSE arrow_direction = DOWN } } } style "range" { engine "pixmap" { #image { # function = FOCUS # file = "assets/scale-horz-focus.png" # border = {6, 6, 6, 6} #} image { function = SLIDER state = NORMAL file = "assets/scale-slider.png" } image { function = SLIDER state = PRELIGHT file = "assets/scale-slider-hover.png" } image { function = SLIDER state = ACTIVE file = "assets/scale-slider-active.png" } image { function = SLIDER state = INSENSITIVE file = "assets/scale-slider-insensitive.png" } } } style "scale_h" { engine "pixmap" { image { function = BOX detail = "trough-upper" file = "assets/scale-horz-trough.png" border = {10, 10, 0, 0} stretch = TRUE } image { function = BOX detail = "trough-lower" file = "assets/scale-horz-trough-active.png" border = {10, 10, 0, 0} stretch = TRUE } } } style "scale_v" { engine "pixmap" { image { function = BOX detail = "trough-upper" file = "assets/scale-vert-trough.png" border = {0, 0, 10, 10} stretch = TRUE } image { function = BOX detail = "trough-lower" file = "assets/scale-vert-trough-active.png" border = {0, 0, 10, 10} stretch = TRUE } } } style "progressbar" { xthickness = 1 ythickness = 1 fg[PRELIGHT] = @selected_fg_color engine "pixmap" { image { function = BOX detail = "trough" file = "assets/progressbar-horz-trough.png" border = {3, 3, 2, 2} stretch = TRUE orientation = HORIZONTAL } image { function = BOX detail = "bar" file = "assets/progressbar-horz.png" stretch = TRUE border = {2, 2, 1, 1} orientation = HORIZONTAL } image { function = BOX detail = "trough" file = "assets/progressbar-vert-trough.png" border = {2, 2, 3, 3} stretch = TRUE orientation = VERTICAL } image { function = BOX detail = "bar" file = "assets/progressbar-vert.png" stretch = TRUE border = {1, 1, 2, 2} orientation = VERTICAL } } } style "separator_menu_item" { engine "pixmap" { image { function = BOX file = "assets/line.png" border = {0, 0, 0, 0} stretch = TRUE } } } style "treeview" { fg[NORMAL] = lighter(@focus_color) fg[PRELIGHT] = lighter(@focus_color) fg[ACTIVE] = lighter(@focus_color) } style "treeview_header" { GtkButton::inner-border = {3, 3, 0, 0} fg[NORMAL] = lighter(@focus_color) fg[PRELIGHT] = lighter(@focus_color) fg[ACTIVE] = lighter(@focus_color) engine "pixmap" { image { function = BOX file = "assets/separator-treeview.png" border = {0, 1, 0, 1} stretch = TRUE } } } style "treeview_header_label" { xthickness = 1 ythickness = 1 fg[NORMAL] = mix(0.5, @fg_color, @base_color) fg[PRELIGHT] = mix(0.5, mix(0.5, @fg_color, @base_color), @fg_color) font_name = "Bold" } style "treeview_header_arrow" { engine "pixmap" { image { function = ARROW state = NORMAL overlay_file = "assets/pan-treeview-up.png" overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW state = PRELIGHT overlay_file = "assets/pan-treeview-up-hover.png" overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW state = ACTIVE overlay_file = "assets/pan-treeview-up-active.png" overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW state = NORMAL overlay_file = "assets/pan-treeview-down.png" overlay_stretch = FALSE arrow_direction = DOWN } image { function = ARROW state = PRELIGHT overlay_file = "assets/pan-treeview-down-hover.png" overlay_stretch = FALSE arrow_direction = DOWN } image { function = ARROW state = ACTIVE overlay_file = "assets/pan-treeview-down-active.png" overlay_stretch = FALSE arrow_direction = DOWN } } } style "scrolled_window" { xthickness = 1 ythickness = 1 engine "pixmap" { image { function = SHADOW file = "assets/frame.png" border = {1, 1, 1, 1} stretch = TRUE } } } style "frame" { xthickness = 1 ythickness = 1 engine "pixmap" { image { function = SHADOW shadow = IN file = "assets/frame.png" border = {1, 1, 1, 1} stretch = TRUE } image { function = SHADOW_GAP shadow = IN file = "assets/frame.png" border = {1, 1, 1, 1} stretch = TRUE gap_start_file = "assets/border.png" gap_end_file = "assets/border.png" } image { function = SHADOW shadow = OUT file = "assets/frame.png" border = {1, 1, 1, 1} stretch = TRUE } image { function = SHADOW_GAP shadow = OUT file = "assets/frame.png" border = {1, 1, 1, 1} stretch = TRUE gap_start_file = "assets/border.png" gap_end_file = "assets/border.png" } image { function = SHADOW shadow = ETCHED_IN file = "assets/frame.png" border = {1, 1, 1, 1} stretch = TRUE } image { function = SHADOW_GAP shadow = ETCHED_IN file = "assets/frame.png" border = {1, 1, 1, 1} stretch = TRUE gap_start_file = "assets/border.png" gap_end_file = "assets/border.png" } image { function = SHADOW shadow = ETCHED_OUT file = "assets/frame.png" border = {1, 1, 1, 1} stretch = TRUE } image { function = SHADOW_GAP shadow = ETCHED_OUT file = "assets/frame.png" border = {1, 1, 1, 1} stretch = TRUE gap_start_file = "assets/border.png" gap_end_file = "assets/border.png" } } } style "toolbar" { engine "pixmap" { image { function = SHADOW } } } style "toolbar_button" { #GtkButton::inner-border = {4, 4, 4, 4} #xthickness = 4 #ythickness = 4 } style "inline_toolbar" { GtkToolbar::button-relief = GTK_RELIEF_NORMAL engine "pixmap" { image { function = SHADOW file = "assets/frame-inline.png" border = {1, 1, 0, 1} stretch = TRUE } } } style "separator" { engine "pixmap" { image { function = HLINE file = "assets/line.png" stretch = TRUE } image { function = VLINE file = "assets/line.png" stretch = TRUE } } } style "tooltips" { xthickness = 8 ythickness = 4 bg[NORMAL] = @tooltip_bg_color fg[NORMAL] = @tooltip_fg_color bg[SELECTED] = @tooltip_bg_color } style "null" { engine "pixmap" { image { function = BOX file = "assets/null.png" stretch = TRUE } } } class "GtkWidget" style "default" class "GtkLabel" style "label" class "GtkScrollbar" style "scrollbar" class "GtkButton" style "button" class "GtkEntry" style "entry" class "GtkOldEditable" style "entry" class "GtkSpinButton" style "spinbutton" class "GtkNotebook" style "notebook" class "GtkRange" style "range" class "GtkHScale" style "scale_h" class "GtkVScale" style "scale_v" class "GtkProgressBar" style "progressbar" class "GtkSeparatorMenuItem" style "separator_menu_item" class "GtkScrolledWindow" style "scrolled_window" class "GtkFrame" style "frame" class "GtkToolbar" style "toolbar" class "GtkComboBox" style "combobox" widget_class "**" style "menu" widget_class "**" style "menu_framed_box" widget_class "**" style "menu_item" widget_class "*" style "menubar" widget_class "*.*" style "menubar_item" widget_class "**" style "checkbutton" widget_class "**" style "combobox_button" widget_class "**" style "button_separator" widget_class "**GtkSeparator*" style "toolbar_separator" widget_class "*HandleBox" style "handlebox" widget_class "*" style "treeview" widget_class "***" style "treeview_header_label" widget_class "**" style "treeview_header" widget_class "**" style "treeview_header_arrow" widget_class "**" style "inline_toolbar" widget_class "**" style "combobox_entry" widget_class "**" style "combobox_entry_button" widget_class "**" style "button_infobar" widget_class "***" style "notebook_viewport" # Toolbar buttons have different paddings widget_class "**" style "toolbar_button" # We need the prelight colour inside notebooks to be white so it won't change on hover widget_class "**" style "notebook_prelight" #widget_class "***" style "notebook_combobox_entry" widget_class "****" style "combobox_entry" # We also need to avoid changing fg color for the inactive notebook tab labels widget_class "*." style "notebook_tab_label" # ComboBoxes tend to draw the button label with text[] instead of fg[], we need to fix that widget_class "**" style "combobox_cellview" # Correct arrows on ComboBoxes widget_class "**" style "combobox_arrows" # Separators widget_class "*" style "separator" widget_class "*" style "separator" # GTK tooltips widget "gtk-tooltip*" style "tooltips"