style "default" { xthickness = 1 ythickness = 1 # Style Properties 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 = 3 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 } 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 = 15 GtkScale::slider_width = 15 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.02, @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[SELECTED] = @selected_fg_color fg[INSENSITIVE] = @insensitive_fg_color fg[ACTIVE] = @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 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/line-v.png" border = { 0, 0, 0, 0 } stretch = TRUE } image { function = HLINE file = "assets/line-h.png" border = { 0, 0, 0, 0 } stretch = TRUE } # Focuslines image { function = FOCUS file = "assets/focus-line.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 engine "pixmap" { # For menus that use horizontal lines rather than gtkseparator image { function = HLINE file = "assets/null.png" border = { 0, 0, 0, 0 } stretch = TRUE } } } style "menu_framed_box" { engine "adwaita" { } } style "menu_item" { xthickness = 2 ythickness = 5 # 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 fg[NORMAL] = @fg_color 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-selected.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-selected.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-selected.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-selected.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 } } } style "button" { xthickness = 4 ythickness = 4 engine "pixmap" { image { function = BOX state = NORMAL file = "assets/button.png" border = { 4, 4, 4, 4 } stretch = TRUE } image { function = BOX state = PRELIGHT file = "assets/button-hover.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 "checkbutton" { fg[PRELIGHT] = @text_color fg[ACTIVE] = @text_color } style "entry" { xthickness = 6 ythickness = 4 base[NORMAL] = @base_color base[INSENSITIVE] = @insensitive_bg_color engine "pixmap" { image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "assets/entry-border-bg.png" border = { 12, 12, 12, 12 } stretch = TRUE } image { function = SHADOW detail = "entry" state = INSENSITIVE shadow = IN file = "assets/entry-border-disabled-bg.png" border = { 12, 12, 12, 12 } stretch = TRUE } image { function = SHADOW detail = "entry" state = ACTIVE file = "assets/entry-border-active-bg.png" border = { 12, 12, 12, 12 } stretch = TRUE } image { function = FLAT_BOX detail = "entry_bg" state = NORMAL overlay_file = "assets/null.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = TRUE } image { function = FLAT_BOX detail = "entry_bg" state = ACTIVE overlay_file = "assets/null.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = TRUE } } } style "notebook_entry" { xthickness = 6 engine "pixmap" { image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "assets/notebook-entry-border-bg.png" border = { 12, 12, 12, 12 } stretch = TRUE } image { function = SHADOW detail = "entry" state = INSENSITIVE shadow = IN file = "assets/notebook-entry-border-disabled-bg.png" border = { 12, 12, 12, 12 } stretch = TRUE } image { function = SHADOW detail = "entry" state = ACTIVE file = "assets/notebook-entry-border-active-bg.png" border = { 12, 12, 12, 12 } stretch = TRUE } image { function = FLAT_BOX detail = "entry_bg" state = NORMAL overlay_file = "assets/null.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = TRUE } image { function = FLAT_BOX detail = "entry_bg" state = ACTIVE overlay_file = "assets/null.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = TRUE } } } style "notebook_tab_label" { 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 "libreoffice_entry" { engine "pixmap" { image { function = FLAT_BOX detail = "entry_bg" state = NORMAL overlay_file = "assets/entry-border-fill.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = TRUE } image { function = FLAT_BOX detail = "entry_bg" state = ACTIVE overlay_file = "assets/entry-border-fill.png" overlay_border = { 0, 0, 0, 0 } overlay_stretch = TRUE } image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "assets/entry-border-bg-solid.png" border = { 12, 12, 12, 12 } stretch = TRUE } image { function = SHADOW detail = "entry" state = ACTIVE file = "assets/entry-border-active-bg-solid.png" border = { 12, 12, 12, 12 } stretch = TRUE } } } style "standalone_entry" { engine "pixmap" { image { function = FLAT_BOX detail = "entry_bg" state = NORMAL file = "assets/entry-border-fill.png" stretch = TRUE border = { 0, 0, 0, 0 } } image { function = FLAT_BOX detail = "entry_bg" state = ACTIVE file = "assets/entry-border-fill.png" stretch = TRUE border = { 0, 0, 0, 0 } } image { function = SHADOW detail = "entry" state = NORMAL shadow = IN file = "assets/entry-border-bg-solid.png" border = { 12, 12, 12, 12 } stretch = TRUE } image { function = SHADOW detail = "entry" state = ACTIVE file = "assets/entry-border-active-bg-solid.png" border = { 12, 12, 12, 12 } stretch = TRUE } } } 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" { engine "pixmap" { image { function = BOX file = "assets/null.png" border = { 0, 0, 1, 0 } stretch = TRUE } } } 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 } image { function = VLINE recolorable = TRUE file = "assets/null.png" } image { function = HLINE recolorable = TRUE file = "assets/null.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::ellipsize-icon-labels = 1 base[NORMAL] = @selected_bg_color base[SELECTED] = @selected_bg_color base[ACTIVE] = @selected_bg_color fg[NORMAL] = @selected_fg_color fg[SELECTED] = @selected_fg_color fg[ACTIVE] = @selected_fg_color engine "murrine" { textstyle = 5 text_shade = 0.05 } } 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" { 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 "GtkEntry" style "entry" class "GtkOldEditable" style "entry" class "GtkSpinButton" style "spinbutton" class "GtkNotebook" style "notebook" class "GtkRange" style "range" class "GtkProgressBar" style "progressbar" class "GtkSeparatorMenuItem" style "separator_menu_item" 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 "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" # 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" # We also need to avoid changing fg color for the inactive notebook tab labels widget_class "*." style "notebook_tab_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" # We use this weird selector to target an offscreen entry as created # by Chrome/Chromium to derive the style for its toolbar widget_class "" style "standalone_entry" # 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" widget "*openoffice-toplevel*GtkEntry" style "libreoffice_entry" widget "*openoffice-toplevel*GtkSpinButton" style "libreoffice_entry" widget "*libreoffice-toplevel*GtkEntry" style "libreoffice_entry" widget "*libreoffice-toplevel*GtkSpinButton" style "libreoffice_entry" # 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 "text" widget_class "**" style "text" widget_class "**" style "text"