style "default" { xthickness = 1 ythickness = 1 # Style Properties GtkWindow::resize-grip-height = 4 GtkWindow::resize-grip-width = 4 GtkWidget::focus-line-width = 1 GtkMenuBar::window-dragging = 1 GtkToolbar::window-dragging = 1 GtkToolbar::internal-padding = 4 GtkToolButton::icon-spacing = 4 GtkWidget::tooltip-radius = 2 GtkWidget::tooltip-alpha = 235 GtkWidget::new-tooltip-style = 1 #for compatibility GtkSeparatorMenuItem::horizontal-padding = 0 GtkSeparatorMenuItem::wide-separators = 1 GtkSeparatorMenuItem::separator-height = 2 GtkButton::child-displacement-y = 0 GtkButton::default-border = { 0, 0, 0, 0 } GtkButton::default-outside_border = { 0, 0, 0, 0 } GtkEntry::state-hint = 1 GtkScrollbar::trough-border = 0 GtkRange::trough-border = 0 GtkRange::slider-width = 13 GtkRange::stepper-size = 0 GtkScrollbar::activate-slider = 1 GtkScrollbar::has-backward-stepper = 0 GtkScrollbar::has-forward-stepper = 0 GtkScrollbar::min-slider-length = 32 GtkScrolledWindow::scrollbar-spacing = 0 GtkScrolledWindow::scrollbars-within-bevel = 1 GtkScale::slider_length = 20 GtkScale::slider_width = 20 GtkScale::trough-side-details = 1 GtkProgressBar::min-horizontal-bar-height = 8 GtkProgressBar::min-vertical-bar-width = 8 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 = { 8, 2, 0, 0 } GtkTreeView::row_ending_details = 0 GtkTreeView::expander-size = 11 GtkTreeView::vertical-separator = 4 GtkTreeView::horizontal-separator = 4 GtkTreeView::allow-rules = 1 GtkTreeView::odd_row_color = shade(0.98, @base_color) GtkExpander::expander-size = 11 GnomeHRef::link_color = @link_color GtkHTML::link-color = @link_color GtkIMHtmlr::hyperlink-color = @link_color GtkIMHtml::hyperlink-color = @link_color GtkWidget::link-color = @link_color GtkWidget::visited-link-color = @text_color # Colors bg[NORMAL] = @bg_color bg[PRELIGHT] = shade (1.0, @bg_color) bg[SELECTED] = @selected_bg_color bg[INSENSITIVE] = @insensitive_bg_color bg[ACTIVE] = shade (0.9, @bg_color) fg[NORMAL] = @text_color fg[PRELIGHT] = @fg_color fg[INSENSITIVE] = @insensitive_fg_color # fg[ACTIVE] = @fg_color fg[SELECTED] = @selected_fg_color text[NORMAL] = @text_color text[PRELIGHT] = @text_color text[SELECTED] = @selected_fg_color text[INSENSITIVE] = @insensitive_fg_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] = shade (0.9, @selected_bg_color) # For succinctness, all reasonable pixmap options remain here # This needs to go before pixmap because we need to override some stuff engine "adwaita" {} 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.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = ACTIVE shadow = OUT overlay_file = "assets/checkbox-unchecked.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.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = ACTIVE shadow = IN overlay_file = "assets/checkbox-checked.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 } # 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.png" overlay_stretch = FALSE } image { function = OPTION state = ACTIVE shadow = OUT overlay_file = "assets/radio-unchecked.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.png" overlay_stretch = FALSE } image { function = OPTION state = ACTIVE shadow = IN overlay_file = "assets/radio-checked.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 } # Arrows image { function = ARROW overlay_file = "assets/arrow-up.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW state = PRELIGHT overlay_file = "assets/arrow-up-prelight.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW state = ACTIVE overlay_file = "assets/arrow-up-prelight.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW state = INSENSITIVE overlay_file = "assets/arrow-up-insens.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW state = NORMAL overlay_file = "assets/arrow-down.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = DOWN } image { function = ARROW state = PRELIGHT overlay_file = "assets/arrow-down-prelight.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = DOWN } image { function = ARROW state = ACTIVE overlay_file = "assets/arrow-down-prelight.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = DOWN } image { function = ARROW state = INSENSITIVE overlay_file = "assets/arrow-down-insens.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = DOWN } image { function = ARROW overlay_file = "assets/arrow-left.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = LEFT } image { function = ARROW state= PRELIGHT overlay_file = "assets/arrow-left-prelight.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = LEFT } image { function = ARROW state = ACTIVE overlay_file = "assets/arrow-left-prelight.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = LEFT } image { function = ARROW state = INSENSITIVE overlay_file = "assets/arrow-left-insens.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = LEFT } image { function = ARROW overlay_file = "assets/arrow-right.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = RIGHT } image { function = ARROW state = PRELIGHT overlay_file = "assets/arrow-right-prelight.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = RIGHT } image { function = ARROW state = ACTIVE overlay_file = "assets/arrow-right-prelight.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = RIGHT } image { function = ARROW state = INSENSITIVE overlay_file = "assets/arrow-right-insens.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = RIGHT } # Option Menu Arrows image { function = TAB state = INSENSITIVE overlay_file = "assets/arrow-down-insens.png" overlay_stretch = FALSE } image { function = TAB state = NORMAL overlay_file = "assets/arrow-down.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE } image { function = TAB state = PRELIGHT overlay_file = "assets/arrow-down-prelight.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE } # Lines image { function = VLINE file = "assets/border.png" border = { 1, 0, 0, 0 } stretch = TRUE } image { function = HLINE file = "assets/border.png" border = { 0, 0, 1, 0 } stretch = TRUE } # Focuslines image { function = FOCUS file = "assets/null.png" border = { 1, 1, 1, 1 } stretch = TRUE } # Handles image { function = HANDLE overlay_file = "assets/handle-h.png" overlay_stretch = FALSE orientation = HORIZONTAL } image { function = HANDLE overlay_file = "assets/handle-v.png" overlay_stretch = FALSE orientation = VERTICAL } # Expanders image { function = EXPANDER expander_style = COLLAPSED file = "assets/plus.png" } image { function = EXPANDER expander_style = EXPANDED file = "assets/minus.png" } image { function = EXPANDER expander_style = SEMI_EXPANDED file = "assets/minus.png" } image { function = EXPANDER expander_style = SEMI_COLLAPSED file = "assets/plus.png" } image { function = RESIZE_GRIP state = NORMAL detail = "statusbar" overlay_file = "assets/null.png" overlay_border = { 0,0,0,0 } overlay_stretch = FALSE } # Shadows ( this area needs help :P ) image { function = SHADOW_GAP file = "assets/null.png" border = { 4, 4, 4, 4 } stretch = TRUE } } } style "toplevel_hack" { engine "adwaita" { } } style "ooo_stepper_hack" { GtkScrollbar::stepper-size = 0 GtkScrollbar::has-backward-stepper = 0 GtkScrollbar::has-forward-stepper = 0 } style "scrollbar" { engine "pixmap" { image { function = BOX detail = "trough" file = "assets/trough-scrollbar-horiz.png" border = { 2, 2, 3, 3 } stretch = TRUE orientation = HORIZONTAL } image { function = BOX detail = "trough" file = "assets/trough-scrollbar-vert.png" border = { 3, 3, 2, 2 } stretch = TRUE orientation = VERTICAL } image { function = ARROW overlay_file = "assets/null.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = UP } image { function = ARROW overlay_file = "assets/null.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = DOWN } image { function = ARROW overlay_file = "assets/null.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = LEFT } image { function = ARROW overlay_file = "assets/null.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = RIGHT } # Sliders image { function = SLIDER state = NORMAL file = "assets/slider-horiz.png" border = { 5, 5, 3, 3 } stretch = TRUE orientation = HORIZONTAL } image { function = SLIDER state = ACTIVE file = "assets/slider-horiz-active.png" border = { 5, 5, 3, 3 } stretch = TRUE orientation = HORIZONTAL } image { function = SLIDER state = PRELIGHT file = "assets/slider-horiz-prelight.png" border = { 5, 5, 3, 3 } stretch = TRUE orientation = HORIZONTAL } image { function = SLIDER state = INSENSITIVE file = "assets/slider-horiz-insens.png" border = { 5, 5, 3, 3 } stretch = TRUE orientation = HORIZONTAL } # X Verticals image { function = SLIDER state = NORMAL file = "assets/slider-vert.png" border = { 3, 3, 5, 5 } stretch = TRUE orientation = VERTICAL } image { function = SLIDER state = ACTIVE file = "assets/slider-vert-active.png" border = { 3, 3, 5, 5 } stretch = TRUE orientation = VERTICAL } image { function = SLIDER state = PRELIGHT file = "assets/slider-vert-prelight.png" border = { 3, 3, 5, 5 } stretch = TRUE orientation = VERTICAL } image { function = SLIDER state = INSENSITIVE file = "assets/slider-vert-insens.png" border = { 3, 3, 5, 5 } stretch = TRUE orientation = VERTICAL } } } style "menu" { xthickness = 0 ythickness = 0 GtkMenuItem::arrow-scaling = 0.4 bg[NORMAL] = @menu_bg bg[INSENSITIVE] = @menu_bg bg[PRELIGHT] = @menu_bg } style "menu_framed_box" { # engine "adwaita" { # default menu border # } engine "pixmap" { image { function = BOX file = "assets/frame.png" border = { 1, 1, 2, 1 } stretch = TRUE } } } style "menu_item" { xthickness = 4 ythickness = 2 # 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_bg_color fg[NORMAL] = @menu_fg fg[SELECTED] = @selected_fg_color fg[PRELIGHT] = @selected_fg_color text[PRELIGHT] = @selected_fg_color engine "pixmap" { image { function = BOX state = PRELIGHT file = "assets/menuitem.png" border = { 1, 0, 1, 0 } stretch = TRUE } # Fix invisible scale trough on selected menuitems image { function = BOX detail = "trough-lower" file = "assets/trough-horizontal.png" border = { 8, 8, 0, 0 } stretch = TRUE orientation = HORIZONTAL } image { function = SLIDER state = PRELIGHT file = "assets/null.png" border = { 0, 0, 0, 0 } stretch = TRUE overlay_file = "assets/slider.png" overlay_stretch = FALSE orientation = HORIZONTAL } # Check Buttons image { function = CHECK recolorable = TRUE state = NORMAL shadow = OUT overlay_file = "assets/menu-checkbox-unchecked.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = PRELIGHT shadow = OUT overlay_file = "assets/menu-checkbox-unchecked.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = ACTIVE shadow = OUT overlay_file = "assets/menu-checkbox-unchecked.png" overlay_stretch = FALSE } image { function = CHECK recolorable = TRUE state = INSENSITIVE shadow = OUT overlay_file = "assets/menu-checkbox-unchecked-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.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-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-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.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 } image { function = SHADOW # This fixes boxy Qt menu items file = "assets/null.png" border = { 4, 4, 4, 4 } stretch = TRUE } # Arrow Buttons image { function = ARROW state = NORMAL overlay_file = "assets/menu-arrow.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = RIGHT } image { function = ARROW state = PRELIGHT overlay_file = "assets/menu-arrow-prelight.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = FALSE arrow_direction = RIGHT } image { function = BOX state = PRELIGHT detail = "menu_scroll_arrow_up" file = "assets/border.png" border = {0, 0, 1, 0} } image { function = BOX detail = "menu_scroll_arrow_up" file = "assets/border.png" border = {0, 0, 1, 0} } image { function = BOX state = PRELIGHT detail = "menu_scroll_arrow_down" file = "assets/border.png" border = {1, 0, 0, 0} } image { function = BOX detail = "menu_scroll_arrow_down" file = "assets/border.png" border = {1, 0, 0, 0} } } } style "button" { xthickness = 4 ythickness = 4 engine "murrine" { textstyle = 0 } engine "pixmap" { image { function = BOX state = NORMAL file = "assets/button.png" border = {6, 6, 6, 6} stretch = TRUE } image { function = BOX state = PRELIGHT shadow = OUT file = "assets/button-hover.png" border = {6, 6, 6, 6} stretch = TRUE } # hover effect on pressed buttons image { function = BOX state = PRELIGHT shadow = IN file = "assets/button-active-hover.png" border = {6, 6, 6, 6} stretch = TRUE } image { function = BOX state = ACTIVE file = "assets/button-active.png" border = {6, 6, 6, 6} stretch = TRUE } image { function = BOX state = INSENSITIVE file = "assets/button-insensitive.png" border = {6, 6, 6, 6} stretch = TRUE } } } style "toolbar_button" { engine "pixmap" { # hover effect on pressed buttons image { function = BOX state = PRELIGHT shadow = IN file = "assets/toolbar-button-active-hover.png" border = {6, 6, 6, 6} stretch = TRUE } image { function = BOX state = ACTIVE file = "assets/toolbar-button-active.png" border = {6, 6, 6, 6} stretch = TRUE } } } style "button_label" { fg[NORMAL] = @text_color fg[PRELIGHT] = @fg_color fg[INSENSITIVE] = @insensitive_button_fg_color fg[ACTIVE] = @fg_color engine "murrine" { textstyle = 0 } } style "checkbutton" { fg[PRELIGHT] = @text_color fg[ACTIVE] = @text_color } style "link_button" { # Disable the button effect, leave just the link engine "pixmap" { image { function = BOX } } } style "entry" { xthickness = 6 ythickness = 4 engine "pixmap" { image { function = SHADOW state = NORMAL detail = "entry" file = "assets/entry-bg.png" border = {6, 6, 6, 6} stretch = TRUE } image { function = SHADOW state = ACTIVE detail = "entry" file = "assets/entry-active-bg.png" border = {6, 6, 6, 6} stretch = TRUE } image { function = SHADOW state = INSENSITIVE detail = "entry" file = "assets/entry-disabled-bg.png" border = {6, 6, 6, 6} 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" } } } style "notebook_entry" { engine "pixmap" { image { function = SHADOW state = NORMAL detail = "entry" file = "assets/entry-notebook.png" border = {6, 6, 6, 6} stretch = TRUE } image { function = SHADOW state = ACTIVE detail = "entry" file = "assets/entry-active-notebook.png" border = {6, 6, 6, 6} stretch = TRUE } image { function = SHADOW state = INSENSITIVE detail = "entry" file = "assets/entry-disabled-notebook.png" border = {6, 6, 6, 6} stretch = TRUE } } } style "notebook_button_bg" { bg[NORMAL] = @notebook_bg bg[PRELIGHT] = @notebook_bg bg[INSENSITIVE] = @notebook_bg bg[ACTIVE] = @notebook_bg } style "notebook_tab_label" { fg[NORMAL] = @text_color fg[PRELIGHT] = @fg_color fg[INSENSITIVE] = @insensitive_fg_color fg[ACTIVE] = @text_color } style "combobox_entry" { xthickness = 3 ythickness = 4 engine "pixmap" { # LTR version image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "assets/combo-entry.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = LTR } image { function = SHADOW detail = "entry" state = INSENSITIVE shadow = IN file = "assets/combo-entry-insensitive.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = LTR } image { function = SHADOW detail = "entry" state = ACTIVE file = "assets/combo-entry-focus.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = LTR } # RTL version image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "assets/combo-entry-rtl.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = RTL } image { function = SHADOW detail = "entry" state = INSENSITIVE shadow = IN file = "assets/combo-entry-insensitive-rtl.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = RTL } image { function = SHADOW detail = "entry" state = ACTIVE file = "assets/combo-entry-focus-rtl.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = RTL } } } style "notebook_combobox_entry" { engine "pixmap" { # LTR version image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "assets/combo-entry-notebook.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = LTR } image { function = SHADOW detail = "entry" state = INSENSITIVE shadow = IN file = "assets/combo-entry-insensitive-notebook.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = LTR } image { function = SHADOW detail = "entry" state = ACTIVE file = "assets/combo-entry-focus-notebook.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = LTR } # RTL version image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "assets/combo-entry-notebook-rtl.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = RTL } image { function = SHADOW detail = "entry" state = INSENSITIVE shadow = IN file = "assets/combo-entry-insensitive-notebook-rtl.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = RTL } image { function = SHADOW detail = "entry" state = ACTIVE file = "assets/combo-entry-focus-notebook-rtl.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = RTL } } } style "combobox_entry_button" { xthickness = 6 fg[ACTIVE] = @text_color engine "pixmap" { # LTR version image { function = BOX state = NORMAL file = "assets/combo-entry-button.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = LTR } image { function = BOX state = PRELIGHT file = "assets/combo-entry-button.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = LTR } image { function = BOX state = INSENSITIVE file = "assets/combo-entry-button-insensitive.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = LTR } image { function = BOX state = ACTIVE file = "assets/combo-entry-button-active.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = LTR } # RTL version image { function = BOX state = NORMAL file = "assets/combo-entry-button-rtl.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = RTL } image { function = BOX state = PRELIGHT file = "assets/combo-entry-button-rtl.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = RTL } image { function = BOX state = INSENSITIVE file = "assets/combo-entry-button-insensitive-rtl.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = RTL } image { function = BOX state = ACTIVE file = "assets/combo-entry-button-active-rtl.png" border = { 4, 4, 5, 4 } stretch = TRUE direction = RTL } } } style "spinbutton" { bg[NORMAL] = @bg_color xthickness = 6 ythickness = 4 engine "pixmap" { image { function = ARROW } # Spin-Up LTR image { function = BOX state = NORMAL detail = "spinbutton_up" file = "assets/up-background.png" border = { 1, 4, 5, 0 } stretch = TRUE overlay_file = "assets/arrow-up-small.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = PRELIGHT detail = "spinbutton_up" file = "assets/up-background.png" border = { 1, 4, 5, 0 } stretch = TRUE overlay_file = "assets/arrow-up-small-prelight.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = INSENSITIVE detail = "spinbutton_up" file = "assets/up-background-disable.png" border = { 1, 4, 5, 0 } stretch = TRUE overlay_file = "assets/arrow-up-small-insens.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = ACTIVE detail = "spinbutton_up" file = "assets/up-background.png" border = { 1, 4, 5, 0 } stretch = TRUE overlay_file = "assets/arrow-up-small-prelight.png" overlay_stretch = FALSE direction = LTR } # Spin-Up RTL image { function = BOX state = NORMAL detail = "spinbutton_up" file = "assets/up-background-rtl.png" border = { 4, 1, 5, 0 } stretch = TRUE overlay_file = "assets/arrow-up-small.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = PRELIGHT detail = "spinbutton_up" file = "assets/up-background-rtl.png" border = { 4, 1, 5, 0 } stretch = TRUE overlay_file = "assets/arrow-up-small-prelight.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = INSENSITIVE detail = "spinbutton_up" file = "assets/up-background-disable-rtl.png" border = { 4, 1, 5, 0 } stretch = TRUE overlay_file = "assets/arrow-up-small-insens.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = ACTIVE detail = "spinbutton_up" file = "assets/up-background-rtl.png" border = { 4, 1, 5, 0 } stretch = TRUE overlay_file = "assets/arrow-up-small-prelight.png" overlay_stretch = FALSE direction = RTL } # Spin-Down LTR image { function = BOX state = NORMAL detail = "spinbutton_down" file = "assets/down-background.png" border = { 1, 4, 1, 4 } stretch = TRUE overlay_file = "assets/arrow-down-small.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = PRELIGHT detail = "spinbutton_down" file = "assets/down-background.png" border = { 1, 4, 1, 4 } stretch = TRUE overlay_file = "assets/arrow-down-small-prelight.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = INSENSITIVE detail = "spinbutton_down" file = "assets/down-background-disable.png" border = { 1, 4, 1, 4 } stretch = TRUE overlay_file = "assets/arrow-down-small-insens.png" overlay_stretch = FALSE direction = LTR } image { function = BOX state = ACTIVE detail = "spinbutton_down" file = "assets/down-background.png" border = { 1, 4, 1, 4 } stretch = TRUE overlay_file = "assets/arrow-down-small-prelight.png" overlay_stretch = FALSE direction = LTR } # Spin-Down RTL image { function = BOX state = NORMAL detail = "spinbutton_down" file = "assets/down-background-rtl.png" border = { 4, 1, 1, 4 } stretch = TRUE overlay_file = "assets/arrow-down-small.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = PRELIGHT detail = "spinbutton_down" file = "assets/down-background-rtl.png" border = { 4, 1, 1, 4 } stretch = TRUE overlay_file = "assets/arrow-down-small-prelight.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = INSENSITIVE detail = "spinbutton_down" file = "assets/down-background-disable-rtl.png" border = { 4, 1, 1, 4 } stretch = TRUE overlay_file = "assets/arrow-down-small-insens.png" overlay_stretch = FALSE direction = RTL } image { function = BOX state = ACTIVE detail = "spinbutton_down" file = "assets/down-background-rtl.png" border = { 4, 1, 1, 4 } stretch = TRUE overlay_file = "assets/arrow-down-small-prelight.png" overlay_stretch = FALSE direction = RTL } } } style "gimp_spin_scale" { bg[NORMAL] = @base_color engine "pixmap" { image { function = FLAT_BOX detail = "entry_bg" state = NORMAL } image { function = FLAT_BOX detail = "entry_bg" state = ACTIVE } image { function = BOX state = NORMAL detail = "spinbutton_up" overlay_file = "assets/arrow-up-small.png" overlay_stretch = FALSE } image { function = BOX state = PRELIGHT detail = "spinbutton_up" overlay_file = "assets/arrow-up-small-prelight.png" overlay_stretch = FALSE } image { function = BOX state = ACTIVE detail = "spinbutton_up" overlay_file = "assets/arrow-up-small-prelight.png" overlay_stretch = FALSE } image { function = BOX state = INSENSITIVE detail = "spinbutton_up" overlay_file = "assets/arrow-up-small-insens.png" overlay_stretch = FALSE } image { function = BOX state = NORMAL detail = "spinbutton_down" overlay_file = "assets/arrow-down-small.png" overlay_stretch = FALSE } image { function = BOX state = PRELIGHT detail = "spinbutton_down" overlay_file = "assets/arrow-down-small-prelight.png" overlay_stretch = FALSE } image { function = BOX state = ACTIVE detail = "spinbutton_down" overlay_file = "assets/arrow-down-small-prelight.png" overlay_stretch = FALSE } image { function = BOX state = INSENSITIVE detail = "spinbutton_down" overlay_file = "assets/arrow-down-small-insens.png" overlay_stretch = FALSE } } } style "notebook" { xthickness = 5 ythickness = 2 engine "pixmap" { image { function = EXTENSION state = ACTIVE file = "assets/null.png" border = { 0,0,0,0 } stretch = TRUE gap_side = TOP } image { function = EXTENSION state = ACTIVE file = "assets/null.png" border = { 0,0,0,0 } stretch = TRUE gap_side = BOTTOM } image { function = EXTENSION state = ACTIVE file = "assets/null.png" border = { 0,0,0,0 } stretch = TRUE gap_side = RIGHT } image { function = EXTENSION state = ACTIVE file = "assets/null.png" border = { 0,0,0,0 } stretch = TRUE gap_side = LEFT } image { function = EXTENSION file = "assets/tab-top-active.png" border = { 3,3,3,3 } stretch = TRUE gap_side = BOTTOM } image { function = EXTENSION file = "assets/tab-bottom-active.png" border = { 3,3,3,3 } stretch = TRUE gap_side = TOP } image { function = EXTENSION file = "assets/tab-left-active.png" border = { 3,3,3,3 } stretch = TRUE gap_side = RIGHT } image { function = EXTENSION file = "assets/tab-right-active.png" border = { 3,3,3,3 } stretch = TRUE gap_side = LEFT } # How to draw boxes with a gap on one side (ie the page of a notebook) image { function = BOX_GAP file = "assets/notebook.png" border = { 4, 4, 4, 4 } stretch = TRUE gap_file = "assets/notebook-gap-horiz.png" gap_border = { 1, 1, 0, 0 } gap_side = TOP } image { function = BOX_GAP file = "assets/notebook.png" border = { 4, 4, 4, 4 } stretch = TRUE gap_file = "assets/notebook-gap-horiz.png" gap_border = { 1, 1, 0, 0 } gap_side = BOTTOM } image { function = BOX_GAP file = "assets/notebook.png" border = { 4, 4, 4, 4 } stretch = TRUE gap_file = "assets/notebook-gap-vert.png" gap_border = { 0, 0, 1, 1 } gap_side = LEFT } image { function = BOX_GAP file = "assets/notebook.png" border = { 4, 4, 4, 4 } stretch = TRUE gap_file = "assets/notebook-gap-vert.png" gap_border = { 0, 0, 1, 1 } gap_side = RIGHT } # How to draw the box of a notebook when it isnt attached to a tab image { function = BOX file = "assets/notebook.png" border = { 4, 4, 4, 4 } stretch = TRUE } } } style "handlebox" { engine "pixmap" { image { function = BOX file = "assets/null.png" border = { 4, 4, 4, 4 } stretch = TRUE detail = "handlebox_bin" shadow = IN } image { function = BOX file = "assets/null.png" border = { 4, 4, 4, 4 } stretch = TRUE detail = "handlebox_bin" shadow = OUT } } } style "combobox_separator" { xthickness = 0 ythickness = 0 GtkWidget::wide-separators = 1 } style "combobox" { xthickness = 0 ythickness = 0 } style "combobox_button" { xthickness = 3 ythickness = 3 } style "range" { engine "pixmap" { image { function = BOX detail = "trough-upper" file = "assets/trough-horizontal.png" border = { 8, 8, 0, 0 } stretch = TRUE orientation = HORIZONTAL } image { function = BOX detail = "trough-lower" file = "assets/trough-horizontal-active.png" border = { 8, 8, 0, 0 } stretch = TRUE orientation = HORIZONTAL } image { function = BOX detail = "trough-upper" file = "assets/trough-vertical.png" border = { 0, 0, 8, 8 } stretch = TRUE orientation = VERTICAL } image { function = BOX detail = "trough-lower" file = "assets/trough-vertical-active.png" border = { 0, 0, 8, 8 } stretch = TRUE orientation = VERTICAL } # Horizontal image { function = SLIDER state = NORMAL file = "assets/null.png" border = { 0, 0, 0, 0 } stretch = TRUE overlay_file = "assets/slider.png" overlay_stretch = FALSE orientation = HORIZONTAL } image { function = SLIDER state = PRELIGHT file = "assets/null.png" border = { 0, 0, 0, 0 } stretch = TRUE overlay_file = "assets/slider-prelight.png" overlay_stretch = FALSE orientation = HORIZONTAL } image { function = SLIDER state = INSENSITIVE file = "assets/null.png" border = { 0, 0, 0, 0 } stretch = TRUE overlay_file = "assets/slider-insensitive.png" overlay_stretch = FALSE orientation = HORIZONTAL } # Vertical image { function = SLIDER state = NORMAL file = "assets/null.png" border = { 0, 0, 0, 0 } stretch = TRUE overlay_file = "assets/slider.png" overlay_stretch = FALSE orientation = VERTICAL } image { function = SLIDER state = PRELIGHT file = "assets/null.png" border = { 0, 0, 0, 0 } stretch = TRUE overlay_file = "assets/slider-prelight.png" overlay_stretch = FALSE orientation = VERTICAL } image { function = SLIDER state = INSENSITIVE file = "assets/null.png" border = { 0, 0, 0, 0 } stretch = TRUE overlay_file = "assets/slider-insensitive.png" overlay_stretch = FALSE orientation = VERTICAL } # Function below removes ugly boxes image { function = BOX file = "assets/null.png" border = { 3, 3, 3, 3 } stretch = TRUE } } } style "progressbar" { xthickness = 1 ythickness = 1 fg[NORMAL] = @fg_color fg[PRELIGHT] = @selected_fg_color engine "pixmap" { image { function = BOX detail = "trough" file = "assets/trough-progressbar.png" border = { 4, 4, 4, 4 } stretch = TRUE orientation = HORIZONTAL } image { function = BOX detail = "bar" file = "assets/progressbar.png" stretch = TRUE border = { 3, 3, 3, 3 } orientation = HORIZONTAL } image { function = BOX detail = "trough" file = "assets/trough-progressbar_v.png" border = { 4, 4, 4, 4 } stretch = TRUE orientation = VERTICAL } image { function = BOX detail = "bar" file = "assets/progressbar_v.png" stretch = TRUE border = { 3, 3, 3, 3 } orientation = VERTICAL } } } style "separator_menu_item" { xthickness = 0 ythickness = 2 engine "pixmap" { image { function = BOX file = "assets/menu-separator.png" border = {0, 0, 2, 0} } } } style "treeview_header" { ythickness = 1 fg[PRELIGHT] = mix(0.70, @text_color, @base_color) font_name = "Bold" engine "pixmap" { image { function = BOX file = "assets/tree_header.png" border = { 1, 1, 1, 1 } stretch = TRUE } } } # Treeview Rows style "treeview" { xthickness = 2 ythickness = 0 } style "scrolled_window" { xthickness = 1 ythickness = 1 engine "pixmap" { image { function = SHADOW file = "assets/frame.png" border = { 5, 5, 5, 5 } stretch = TRUE } } } style "frame" { xthickness = 1 ythickness = 1 engine "pixmap" { image { function = SHADOW file = "assets/frame.png" border = { 1, 1, 1, 1 } stretch = TRUE shadow = IN } image { function = SHADOW_GAP file = "assets/frame.png" border = { 1, 1, 1, 1 } stretch = TRUE gap_start_file = "assets/frame-gap-start.png" gap_start_border = { 1, 0, 0, 0 } gap_end_file = "assets/frame-gap-end.png" gap_end_border = { 0, 1, 0, 0 } shadow = IN } image { function = SHADOW file = "assets/frame.png" border = { 1, 1, 1, 1 } stretch = TRUE shadow = OUT } image { function = SHADOW_GAP file = "assets/frame.png" border = { 1, 1, 1, 1 } stretch = TRUE gap_start_file = "assets/frame-gap-start.png" gap_start_border = { 1, 0, 0, 0 } gap_end_file = "assets/frame-gap-end.png" gap_end_border = { 0, 1, 0, 0 } shadow = OUT } image { function = SHADOW file = "assets/frame.png" border = { 1, 1, 1, 1 } stretch = TRUE shadow = ETCHED_IN } image { function = SHADOW_GAP file = "assets/frame.png" border = { 1, 1, 1, 1 } stretch = TRUE gap_start_file = "assets/frame-gap-start.png" gap_start_border = { 1, 0, 0, 0 } gap_end_file = "assets/frame-gap-end.png" gap_end_border = { 0, 1, 0, 0 } shadow = ETCHED_IN } image { function = SHADOW file = "assets/frame.png" border = { 1, 1, 1, 1 } stretch = TRUE shadow = ETCHED_OUT } image { function = SHADOW_GAP file = "assets/frame.png" border = { 1, 1, 1, 1 } stretch = TRUE gap_start_file = "assets/frame-gap-start.png" gap_start_border = { 1, 0, 0, 0 } gap_end_file = "assets/frame-gap-end.png" gap_end_border = { 0, 1, 0, 0 } shadow = ETCHED_OUT } } } style "gimp_toolbox_frame" { engine "pixmap" { image { function = SHADOW } } } style "toolbar" { engine "pixmap" { image { function = BOX file = "assets/toolbar.png" stretch = TRUE border = { 1, 1, 1, 1 } } image { function = HANDLE overlay_file = "assets/handle-h.png" overlay_stretch = FALSE orientation = HORIZONTAL } image { function = HANDLE overlay_file = "assets/handle-v.png" overlay_stretch = FALSE orientation = VERTICAL } ######### # 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} } } } 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/inline-toolbar.png" stretch = TRUE border = { 1, 1, 1, 1 } } } } style "notebook_viewport" { bg[NORMAL] = @notebook_bg } style "notebook_eventbox" { bg[NORMAL] = @notebook_bg bg[ACTIVE] = @bg_color } style "tooltips" { xthickness = 8 ythickness = 4 bg[NORMAL] = @tooltip_bg_color fg[NORMAL] = @tooltip_fg_color bg[SELECTED] = @tooltip_bg_color } style "eclipse-tooltips" { xthickness = 8 ythickness = 4 bg[NORMAL] = shade(1.05, @bg_color) fg[NORMAL] = @text_color bg[SELECTED] = shade(1.05, @bg_color) } style "xfdesktop-icon-view" { XfdesktopIconView::label-alpha = 0 XfdesktopIconView::selected-label-alpha = 100 XfdesktopIconView::shadow-x-offset = 0 XfdesktopIconView::shadow-y-offset = 1 XfdesktopIconView::selected-shadow-x-offset = 0 XfdesktopIconView::selected-shadow-y-offset = 1 XfdesktopIconView::shadow-color = "#000000" XfdesktopIconView::selected-shadow-color = "#000000" XfdesktopIconView::shadow-blur-radius = 2 XfdesktopIconView::cell-spacing = 2 XfdesktopIconView::cell-padding = 6 XfdesktopIconView::cell-text-width-proportion = 1.9 fg[NORMAL] = @selected_fg_color fg[ACTIVE] = @selected_fg_color } style "xfwm-tabwin" { Xfwm4TabwinWidget::border-width = 1 Xfwm4TabwinWidget::border-alpha = 1.0 Xfwm4TabwinWidget::icon-size = 64 Xfwm4TabwinWidget::alpha = 1.0 Xfwm4TabwinWidget::border-radius = 2 bg[NORMAL] = @bg_color bg[SELECTED] = @bg_color fg[NORMAL] = @fg_color engine "murrine" { contrast = 0.7 glazestyle = 0 glowstyle = 0 highlight_shade = 1.0 gradient_shades = {1.0,1.0,1.0,1.0} border_shades = { 0.8, 0.8 } } } style "xfwm-tabwin-button" { font_name = "bold" bg[SELECTED] = @selected_bg_color } # Chromium style "chrome_menu_item" { bg[SELECTED] = @selected_bg_color } # Text Style style "text" = "default" { fg[NORMAL] = @fg_color # FIXME: VMWare needs this? engine "murrine" { textstyle = 0 } } style "menu_text" = "menu_item" { engine "murrine" { textstyle = 0 } } style "null" { engine "pixmap" { image { function = BOX file = "assets/null.png" stretch = TRUE } } } class "GtkWidget" style "default" class "GtkScrollbar" style "scrollbar" class "GtkButton" style "button" class "GtkLinkButton" style "link_button" class "GtkEntry" style "entry" class "GtkOldEditable" style "entry" class "GtkSpinButton" style "spinbutton" class "GtkNotebook" style "notebook" class "GtkRange" style "range" class "GtkProgressBar" style "progressbar" class "GtkScrolledWindow" style "scrolled_window" class "GtkFrame" style "frame" class "GtkTreeView" style "treeview" class "GtkToolbar" style "toolbar" class "*HandleBox" style "toolbar" widget_class "**" style "menu" widget_class "**" style "menu_framed_box" widget_class "**" style "menu_item" widget_class "**" style "separator_menu_item" widget_class "**" style "checkbutton" widget_class "*" style "combobox" widget_class "**" style "combobox_button" widget_class "**" style "combobox_separator" widget_class "***" style "treeview_header" widget_class "**" style "inline_toolbar" widget_class "**" style "combobox_entry" widget_class "**" style "combobox_entry_button" widget_class "***" style "notebook_viewport" widget_class "*HandleBox" style "toolbar" widget_class "**" style "button_label" widget_class "**" style "button_label" #widget_class "**" style "button_label" #widget_class "**" style "button_label" widget_class "**" style "toolbar_button" widget_class "***" style "button_label" widget_class "*" style "toolbar_button" widget_class "**" style "button_label" # Entries in notebooks draw with notebook's base color, but not if there's # something else in the middle that draws gray again widget_class "**" style "notebook_entry" widget_class "***" style "entry" widget_class "***" style "notebook_combobox_entry" widget_class "****" style "combobox_entry" widget_class "**" style "notebook_button_bg" # We also need to avoid changing fg color for the inactive notebook tab labels widget_class "**" style "notebook_tab_label" widget_class "***" style "button_label" # GTK tooltips widget "gtk-tooltip*" style "tooltips" #Fix GVim tabs widget_class "**" style "notebook_eventbox" # Xchat special cases widget "*xchat-inputbox" style "entry" # GIMP # Disable gradients completely for GimpSpinScale #class "GimpSpinScale" style "gimp_spin_scale" # Remove borders from "Wilbert frame" in Gimp widget_class "**" style "gimp_toolbox_frame" # Chrome/Chromium widget_class "*Chrom*Button*" style "button" widget_class "***" style "chrome_menu_item" # Eclipse/SWT widget "gtk-tooltips*" style "eclipse-tooltips" widget "*swt-toolbar-flat" style "null" # Openoffice, Libreoffice class "GtkWindow" style "toplevel_hack" widget "*openoffice-toplevel*" style "ooo_stepper_hack" # Xfce widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view" widget "xfwm4-tabwin*" style "xfwm-tabwin" widget "xfwm4-tabwin*GtkButton*" style "xfwm-tabwin-button" # Fixes ugly text shadows for insensitive text widget_class "*" style "text" widget_class "**" style "menu_text" widget_class "**" style "text" widget_class "**" style "text" widget_class "**" style "text"