Dotfiles for my tiling window manager + terminal workflow.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2614 lines
60 KiB

  1. style "default" {
  2. xthickness = 1
  3. ythickness = 1
  4. ####################
  5. # Style Properties #
  6. ####################
  7. GtkWidget::focus-line-width = 1
  8. GtkWidget::focus-line-pattern = "\2\1"
  9. GtkToolbar::internal-padding = 4
  10. GtkToolButton::icon-spacing = 4
  11. GtkWidget::tooltip-radius = 3
  12. GtkWidget::tooltip-alpha = 235
  13. GtkWidget::new-tooltip-style = 1 #for compatibility
  14. GtkWidget::link-color = shade(0.9, @selected_bg_color)
  15. GtkWidget::visited-link-color = shade(0.8, @selected_bg_color)
  16. GnomeHRef::link_color = shade(0.9, @selected_bg_color)
  17. GtkHTML::link-color = shade(0.9, @selected_bg_color)
  18. GtkHTML::vlink-color = shade(0.8, @selected_bg_color)
  19. GtkIMHtml::hyperlink-color = shade(0.9, @selected_bg_color)
  20. GtkIMHtml::hyperlink-visited-color = shade(0.8, @selected_bg_color)
  21. GtkSeparatorMenuItem::horizontal-padding = 0
  22. GtkSeparatorMenuItem::wide-separators = 1
  23. GtkSeparatorMenuItem::separator-height = 1
  24. GtkButton::child-displacement-y = 0
  25. GtkButton::default-border = {0, 0, 0, 0}
  26. GtkButton::default-outside-border = {0, 0, 0, 0}
  27. GtkButton::inner-border = {4, 4, 4, 4}
  28. GtkEntry::state-hint = 1
  29. GtkEntry::inner-border = {7, 7, 4, 5}
  30. GtkPaned::handle-size = 9
  31. GtkHPaned::handle-size = 9
  32. GtkVPaned::handle-size = 9
  33. GtkScrollbar::trough-border = 0
  34. GtkRange::trough-border = 0
  35. GtkRange::slider-width = 13
  36. GtkRange::stepper-size = 0
  37. GtkRange::activate-slider = 1
  38. GtkScrollbar::activate-slider = 1
  39. GtkScrollbar::stepper-size = 0
  40. GtkScrollbar::has-backward-stepper = 0
  41. GtkScrollbar::has-forward-stepper = 0
  42. GtkScrollbar::min-slider-length = 48 # 42 + 2*3 (margins)
  43. GtkScrolledWindow::scrollbar-spacing = 0
  44. GtkScrolledWindow::scrollbars-within-bevel = 1
  45. GtkScale::slider_length = 26
  46. GtkScale::slider_width = 26
  47. GtkScale::trough-side-details = 1
  48. GtkProgressBar::min-horizontal-bar-height = 6
  49. GtkProgressBar::min-vertical-bar-width = 6
  50. # Making this bigger than the min[height,width]-2*[y,x]spacing makes the
  51. # whole progressbar thicker, so by setting it to the exact above value
  52. # we get the maximum spacing between the text and the edges without
  53. # doing so.
  54. GtkProgressBar::xspacing = 4
  55. GtkProgressBar::yspacing = 4
  56. GtkStatusbar::shadow_type = GTK_SHADOW_NONE
  57. GtkSpinButton::shadow_type = GTK_SHADOW_NONE
  58. GtkMenuBar::shadow-type = GTK_SHADOW_NONE
  59. GtkToolbar::shadow-type = GTK_SHADOW_NONE
  60. # TODO: find out what this comment means:
  61. # ( every window is misaligned for the sake of menus ):
  62. GtkMenuBar::internal-padding = 0
  63. GtkMenu::horizontal-padding = 0
  64. GtkMenu::vertical-padding = 2
  65. GtkMenu::double-arrows = 0
  66. GtkMenuItem::arrow-scaling = 1
  67. GtkMenuItem::toggle-spacing = 10
  68. GtkCheckButton::indicator_spacing = 3
  69. GtkOptionMenu::indicator_spacing = {13, 13, 5, 8}
  70. GtkTreeView::expander-size = 16
  71. GtkTreeView::vertical-separator = 0
  72. GtkTreeView::horizontal-separator = 4
  73. GtkTreeView::allow-rules = 1
  74. # Set this because some apps read it
  75. GtkTreeView::odd-row-color = @base_color
  76. GtkTreeView::even-row-color = @base_color
  77. GtkTreeView::odd_row_color = shade(0.90, @base_color)
  78. GtkExpander::expander-size = 16
  79. GtkNotebook::tab-overlap = 4
  80. ##########
  81. # Colors #
  82. ##########
  83. bg[NORMAL] = @bg_color
  84. bg[PRELIGHT] = @bg_color
  85. bg[SELECTED] = @selected_bg_color
  86. bg[INSENSITIVE] = mix (0.6, @bg_color, @base_color)
  87. bg[ACTIVE] = @bg_color
  88. fg[NORMAL] = @fg_color
  89. fg[PRELIGHT] = @fg_color
  90. fg[SELECTED] = @selected_fg_color
  91. fg[INSENSITIVE] = mix (0.5, @fg_color, @bg_color)
  92. fg[ACTIVE] = @fg_color
  93. text[NORMAL] = @text_color
  94. text[PRELIGHT] = @text_color
  95. text[SELECTED] = @selected_fg_color
  96. text[INSENSITIVE] = darker (@bg_color)
  97. text[ACTIVE] = @selected_fg_color
  98. base[NORMAL] = @base_color
  99. base[PRELIGHT] = shade (0.95, @bg_color)
  100. base[SELECTED] = @selected_bg_color
  101. base[INSENSITIVE] = mix (0.5, @fg_color, @bg_color)
  102. base[ACTIVE] = @selected_bg_color
  103. # For succinctness, all reasonable pixmap options remain here
  104. # Draw frame around menu in a non-compositied environment
  105. # This needs to go before pixmap because we need to override some stuff
  106. engine "adwaita" {}
  107. engine "pixmap" {
  108. #################
  109. # Check Buttons #
  110. #################
  111. image {
  112. function = CHECK
  113. state = NORMAL
  114. shadow = OUT
  115. overlay_file = "assets/checkbox-unchecked.png"
  116. overlay_stretch = FALSE
  117. }
  118. image {
  119. function = CHECK
  120. state = PRELIGHT
  121. shadow = OUT
  122. overlay_file = "assets/checkbox-unchecked-hover.png"
  123. overlay_stretch = FALSE
  124. }
  125. image {
  126. function = CHECK
  127. state = ACTIVE
  128. shadow = OUT
  129. overlay_file = "assets/checkbox-unchecked-active.png"
  130. overlay_stretch = FALSE
  131. }
  132. image {
  133. function = CHECK
  134. state = SELECTED
  135. shadow = OUT
  136. overlay_file = "assets/checkbox-unchecked.png"
  137. overlay_stretch = FALSE
  138. }
  139. image {
  140. function = CHECK
  141. state = INSENSITIVE
  142. shadow = OUT
  143. overlay_file = "assets/checkbox-unchecked-insensitive.png"
  144. overlay_stretch = FALSE
  145. }
  146. image {
  147. function = CHECK
  148. state = NORMAL
  149. shadow = IN
  150. overlay_file = "assets/checkbox-checked.png"
  151. overlay_stretch = FALSE
  152. }
  153. image {
  154. function = CHECK
  155. state = PRELIGHT
  156. shadow = IN
  157. overlay_file = "assets/checkbox-checked-hover.png"
  158. overlay_stretch = FALSE
  159. }
  160. image {
  161. function = CHECK
  162. state = ACTIVE
  163. shadow = IN
  164. overlay_file = "assets/checkbox-checked-active.png"
  165. overlay_stretch = FALSE
  166. }
  167. image {
  168. function = CHECK
  169. state = SELECTED
  170. shadow = IN
  171. overlay_file = "assets/checkbox-checked.png"
  172. overlay_stretch = FALSE
  173. }
  174. image {
  175. function = CHECK
  176. state = INSENSITIVE
  177. shadow = IN
  178. overlay_file = "assets/checkbox-checked-insensitive.png"
  179. overlay_stretch = FALSE
  180. }
  181. image {
  182. function = CHECK
  183. state = NORMAL
  184. shadow = ETCHED_IN
  185. overlay_file = "assets/checkbox-mixed.png"
  186. overlay_stretch = FALSE
  187. }
  188. image {
  189. function = CHECK
  190. state = PRELIGHT
  191. shadow = ETCHED_IN
  192. overlay_file = "assets/checkbox-mixed-hover.png"
  193. overlay_stretch = FALSE
  194. }
  195. image {
  196. function = CHECK
  197. state = ACTIVE
  198. shadow = ETCHED_IN
  199. overlay_file = "assets/checkbox-mixed-active.png"
  200. overlay_stretch = FALSE
  201. }
  202. image {
  203. function = CHECK
  204. state = SELECTED
  205. shadow = ETCHED_IN
  206. overlay_file = "assets/checkbox-mixed.png"
  207. overlay_stretch = FALSE
  208. }
  209. image {
  210. function = CHECK
  211. state = INSENSITIVE
  212. shadow = ETCHED_IN
  213. overlay_file = "assets/checkbox-mixed-insensitive.png"
  214. overlay_stretch = FALSE
  215. }
  216. #################
  217. # Radio Buttons #
  218. #################
  219. image {
  220. function = OPTION
  221. state = NORMAL
  222. shadow = OUT
  223. overlay_file = "assets/radio-unchecked.png"
  224. overlay_stretch = FALSE
  225. }
  226. image {
  227. function = OPTION
  228. state = PRELIGHT
  229. shadow = OUT
  230. overlay_file = "assets/radio-unchecked-hover.png"
  231. overlay_stretch = FALSE
  232. }
  233. image {
  234. function = OPTION
  235. state = ACTIVE
  236. shadow = OUT
  237. overlay_file = "assets/radio-unchecked-active.png"
  238. overlay_stretch = FALSE
  239. }
  240. image {
  241. function = OPTION
  242. state = SELECTED
  243. shadow = OUT
  244. overlay_file = "assets/radio-unchecked.png"
  245. overlay_stretch = FALSE
  246. }
  247. image {
  248. function = OPTION
  249. state = INSENSITIVE
  250. shadow = OUT
  251. overlay_file = "assets/radio-unchecked-insensitive.png"
  252. overlay_stretch = FALSE
  253. }
  254. image {
  255. function = OPTION
  256. state = NORMAL
  257. shadow = IN
  258. overlay_file = "assets/radio-checked.png"
  259. overlay_stretch = FALSE
  260. }
  261. image {
  262. function = OPTION
  263. state = PRELIGHT
  264. shadow = IN
  265. overlay_file = "assets/radio-checked-hover.png"
  266. overlay_stretch = FALSE
  267. }
  268. image {
  269. function = OPTION
  270. state = ACTIVE
  271. shadow = IN
  272. overlay_file = "assets/radio-checked-active.png"
  273. overlay_stretch = FALSE
  274. }
  275. image {
  276. function = OPTION
  277. state = SELECTED
  278. shadow = IN
  279. overlay_file = "assets/radio-checked.png"
  280. overlay_stretch = FALSE
  281. }
  282. image {
  283. function = OPTION
  284. state = INSENSITIVE
  285. shadow = IN
  286. overlay_file = "assets/radio-checked-insensitive.png"
  287. overlay_stretch = FALSE
  288. }
  289. image {
  290. function = OPTION
  291. state = NORMAL
  292. shadow = ETCHED_IN
  293. overlay_file = "assets/radio-mixed.png"
  294. overlay_stretch = FALSE
  295. }
  296. image {
  297. function = OPTION
  298. state = PRELIGHT
  299. shadow = ETCHED_IN
  300. overlay_file = "assets/radio-mixed-hover.png"
  301. overlay_stretch = FALSE
  302. }
  303. image {
  304. function = OPTION
  305. state = ACTIVE
  306. shadow = ETCHED_IN
  307. overlay_file = "assets/radio-mixed-active.png"
  308. overlay_stretch = FALSE
  309. }
  310. image {
  311. function = OPTION
  312. state = SELECTED
  313. shadow = ETCHED_IN
  314. overlay_file = "assets/radio-mixed.png"
  315. overlay_stretch = FALSE
  316. }
  317. image {
  318. function = OPTION
  319. state = INSENSITIVE
  320. shadow = ETCHED_IN
  321. overlay_file = "assets/radio-mixed-insensitive.png"
  322. overlay_stretch = FALSE
  323. }
  324. ##########
  325. # Arrows #
  326. ##########
  327. # Overrides
  328. # Disable arrows in spinbuttons
  329. image {
  330. function = ARROW
  331. detail = "spinbutton"
  332. }
  333. # Disable arrows for qt in scrollbars
  334. image {
  335. function = ARROW
  336. detail = "vscrollbar"
  337. }
  338. image {
  339. function = ARROW
  340. detail = "hscrollbar"
  341. }
  342. # Menu arrows
  343. image {
  344. function = ARROW
  345. state = NORMAL
  346. detail = "menuitem"
  347. overlay_file = "assets/menu-pan-left.png"
  348. overlay_stretch = FALSE
  349. arrow_direction = LEFT
  350. }
  351. image {
  352. function = ARROW
  353. state = PRELIGHT
  354. detail = "menuitem"
  355. overlay_file = "assets/menu-pan-left-hover.png"
  356. overlay_stretch = FALSE
  357. arrow_direction = LEFT
  358. }
  359. image {
  360. function = ARROW
  361. state = INSENSITIVE
  362. detail = "menuitem"
  363. overlay_file = "assets/menu-pan-left-insensitive.png"
  364. overlay_stretch = FALSE
  365. arrow_direction = LEFT
  366. }
  367. image {
  368. function = ARROW
  369. state = NORMAL
  370. detail = "menuitem"
  371. overlay_file = "assets/menu-pan-right.png"
  372. overlay_stretch = FALSE
  373. arrow_direction = RIGHT
  374. }
  375. image {
  376. function = ARROW
  377. state = PRELIGHT
  378. detail = "menuitem"
  379. overlay_file = "assets/menu-pan-right-hover.png"
  380. overlay_stretch = FALSE
  381. arrow_direction = RIGHT
  382. }
  383. image {
  384. function = ARROW
  385. state = INSENSITIVE
  386. detail = "menuitem"
  387. overlay_file = "assets/menu-pan-right-insensitive.png"
  388. overlay_stretch = FALSE
  389. arrow_direction = RIGHT
  390. }
  391. image {
  392. function = ARROW
  393. state = INSENSITIVE
  394. detail = "menu_scroll_arrow_up"
  395. overlay_file = "assets/menu-pan-up-insensitive.png"
  396. overlay_stretch = FALSE
  397. }
  398. image {
  399. function = ARROW
  400. detail = "menu_scroll_arrow_up"
  401. overlay_file = "assets/menu-pan-up.png"
  402. overlay_stretch = FALSE
  403. }
  404. image {
  405. function = ARROW
  406. state = INSENSITIVE
  407. detail = "menu_scroll_arrow_down"
  408. overlay_file = "assets/menu-pan-down-insensitive.png"
  409. overlay_stretch = FALSE
  410. }
  411. image {
  412. function = ARROW
  413. detail = "menu_scroll_arrow_down"
  414. overlay_file = "assets/menu-pan-down.png"
  415. overlay_stretch = FALSE
  416. }
  417. # Regular arrows
  418. image {
  419. function = ARROW
  420. state = NORMAL
  421. overlay_file = "assets/pan-up.png"
  422. overlay_stretch = FALSE
  423. arrow_direction = UP
  424. }
  425. image {
  426. function = ARROW
  427. state = PRELIGHT
  428. overlay_file = "assets/pan-up.png"
  429. overlay_stretch = FALSE
  430. arrow_direction = UP
  431. }
  432. image {
  433. function = ARROW
  434. state = ACTIVE
  435. overlay_file = "assets/pan-up.png"
  436. overlay_stretch = FALSE
  437. arrow_direction = UP
  438. }
  439. image {
  440. function = ARROW
  441. state = INSENSITIVE
  442. overlay_file = "assets/pan-up-insensitive.png"
  443. overlay_stretch = FALSE
  444. arrow_direction = UP
  445. }
  446. image {
  447. function = ARROW
  448. state = NORMAL
  449. overlay_file = "assets/pan-down.png"
  450. overlay_stretch = FALSE
  451. arrow_direction = DOWN
  452. }
  453. image {
  454. function = ARROW
  455. state = PRELIGHT
  456. overlay_file = "assets/pan-down.png"
  457. overlay_stretch = FALSE
  458. arrow_direction = DOWN
  459. }
  460. image {
  461. function = ARROW
  462. state = ACTIVE
  463. overlay_file = "assets/pan-down.png"
  464. overlay_stretch = FALSE
  465. arrow_direction = DOWN
  466. }
  467. image {
  468. function = ARROW
  469. state = INSENSITIVE
  470. overlay_file = "assets/pan-down-insensitive.png"
  471. overlay_stretch = FALSE
  472. arrow_direction = DOWN
  473. }
  474. image {
  475. function = ARROW
  476. state = NORMAL
  477. overlay_file = "assets/pan-left.png"
  478. overlay_stretch = FALSE
  479. arrow_direction = LEFT
  480. }
  481. image {
  482. function = ARROW
  483. state = PRELIGHT
  484. overlay_file = "assets/pan-left.png"
  485. overlay_stretch = FALSE
  486. arrow_direction = LEFT
  487. }
  488. image {
  489. function = ARROW
  490. state = ACTIVE
  491. overlay_file = "assets/pan-left.png"
  492. overlay_stretch = FALSE
  493. arrow_direction = LEFT
  494. }
  495. image {
  496. function = ARROW
  497. state = INSENSITIVE
  498. overlay_file = "assets/pan-left-insensitive.png"
  499. overlay_stretch = FALSE
  500. arrow_direction = LEFT
  501. }
  502. image {
  503. function = ARROW
  504. state = NORMAL
  505. overlay_file = "assets/pan-right.png"
  506. overlay_stretch = FALSE
  507. arrow_direction = RIGHT
  508. }
  509. image {
  510. function = ARROW
  511. state = PRELIGHT
  512. overlay_file = "assets/pan-right.png"
  513. overlay_stretch = FALSE
  514. arrow_direction = RIGHT
  515. }
  516. image {
  517. function = ARROW
  518. state = ACTIVE
  519. overlay_file = "assets/pan-right.png"
  520. overlay_stretch = FALSE
  521. arrow_direction = RIGHT
  522. }
  523. image {
  524. function = ARROW
  525. state = INSENSITIVE
  526. overlay_file = "assets/pan-right-insensitive.png"
  527. overlay_stretch = FALSE
  528. arrow_direction = RIGHT
  529. }
  530. ######################
  531. # Option Menu Arrows #
  532. ######################
  533. image {
  534. function = TAB
  535. state = NORMAL
  536. overlay_file = "assets/pan-down.png"
  537. overlay_stretch = FALSE
  538. }
  539. image {
  540. function = TAB
  541. state = PRELIGHT
  542. overlay_file = "assets/pan-down.png"
  543. overlay_stretch = FALSE
  544. }
  545. image {
  546. function = TAB
  547. state = ACTIVE
  548. overlay_file = "assets/pan-down.png"
  549. overlay_stretch = FALSE
  550. }
  551. image {
  552. function = TAB
  553. state = INSENSITIVE
  554. overlay_file = "assets/pan-down-insensitive.png"
  555. overlay_stretch = FALSE
  556. }
  557. #########
  558. # Lines #
  559. #########
  560. image {
  561. function = VLINE
  562. file = "assets/line.png"
  563. border = {1, 0, 0, 0}
  564. }
  565. image {
  566. function = HLINE
  567. file = "assets/line.png"
  568. border = {0, 0, 1, 0}
  569. }
  570. #########
  571. # Focus #
  572. #########
  573. image {
  574. function = FOCUS
  575. file = "assets/focus.png"
  576. border = {1, 1, 1, 1}
  577. stretch = TRUE
  578. }
  579. ###########
  580. # Handles #
  581. ###########
  582. image {
  583. function = HANDLE
  584. detail = "handlebox"
  585. overlay_file = "assets/handle.png"
  586. overlay_stretch = FALSE
  587. }
  588. image {
  589. function = HANDLE
  590. file = "assets/handle-horz.png"
  591. border = {0, 0, 4, 4}
  592. orientation = HORIZONTAL
  593. }
  594. image {
  595. function = HANDLE
  596. file = "assets/handle-vert.png"
  597. border = {4, 4, 0, 0}
  598. orientation = VERTICAL
  599. }
  600. image {
  601. function = RESIZE_GRIP
  602. }
  603. #############
  604. # Expanders #
  605. #############
  606. image {
  607. function = EXPANDER
  608. expander_style = EXPANDED
  609. file = "assets/pan-down.png"
  610. }
  611. # LTR
  612. image {
  613. function = EXPANDER
  614. expander_style = COLLAPSED
  615. file = "assets/pan-right.png"
  616. direction = LTR
  617. }
  618. image {
  619. function = EXPANDER
  620. expander_style = SEMI_COLLAPSED
  621. file = "assets/pan-right-semi.png"
  622. direction = LTR
  623. }
  624. image {
  625. function = EXPANDER
  626. expander_style = SEMI_EXPANDED
  627. file = "assets/pan-right-semi.png"
  628. direction = LTR
  629. }
  630. # RTL
  631. image {
  632. function = EXPANDER
  633. expander_style = COLLAPSED
  634. file = "assets/pan-left.png"
  635. direction = RTL
  636. }
  637. image {
  638. function = EXPANDER
  639. expander_style = SEMI_COLLAPSED
  640. file = "assets/pan-left-semi.png"
  641. direction = RTL
  642. }
  643. image {
  644. function = EXPANDER
  645. expander_style = SEMI_EXPANDED
  646. file = "assets/pan-left-semi.png"
  647. direction = RTL
  648. }
  649. #############
  650. # Notebooks #
  651. #############
  652. # Left
  653. image {
  654. function = EXTENSION
  655. state = NORMAL
  656. file = "assets/tab-left-active.png"
  657. border = { 3,3,3,3 }
  658. stretch = TRUE
  659. gap_side = RIGHT
  660. }
  661. image {
  662. function = EXTENSION
  663. file = "assets/tab-left.png"
  664. border = { 3,3,3,3 }
  665. stretch = TRUE
  666. gap_side = RIGHT
  667. }
  668. # Right
  669. image {
  670. function = EXTENSION
  671. state = NORMAL
  672. file = "assets/tab-right-active.png"
  673. border = { 3,3,3,3 }
  674. stretch = TRUE
  675. gap_side = LEFT
  676. }
  677. image {
  678. function = EXTENSION
  679. file = "assets/tab-right.png"
  680. border = { 3,3,3,3 }
  681. stretch = TRUE
  682. gap_side = LEFT
  683. }
  684. # Up
  685. image {
  686. function = EXTENSION
  687. state = NORMAL
  688. file = "assets/tab-up-active.png"
  689. border = { 3,3,5,3 }
  690. stretch = TRUE
  691. gap_side = BOTTOM
  692. }
  693. image {
  694. function = EXTENSION
  695. file = "assets/tab-up.png"
  696. border = { 3,3,3,3 }
  697. stretch = TRUE
  698. gap_side = BOTTOM
  699. }
  700. # Down
  701. image {
  702. function = EXTENSION
  703. state = NORMAL
  704. file = "assets/tab-down-active.png"
  705. border = { 3,3,3,5 }
  706. stretch = TRUE
  707. gap_side = TOP
  708. }
  709. image {
  710. function = EXTENSION
  711. file = "assets/tab-down.png"
  712. border = { 3,3,3,3 }
  713. stretch = TRUE
  714. gap_side = TOP
  715. }
  716. # Inner frame
  717. image {
  718. function = BOX_GAP
  719. detail = "notebook"
  720. file = "assets/frame-notebook.png"
  721. border = {1, 1, 1, 1}
  722. stretch = TRUE
  723. gap_file = "assets/tab-vert-gap.png"
  724. gap_border = {1, 0, 1, 1}
  725. gap_side = LEFT
  726. }
  727. image {
  728. function = BOX_GAP
  729. detail = "notebook"
  730. file = "assets/frame-notebook.png"
  731. border = {1, 1, 1, 1}
  732. stretch = TRUE
  733. gap_file = "assets/tab-vert-gap.png"
  734. gap_border = {0, 1, 1, 1}
  735. gap_side = RIGHT
  736. }
  737. image {
  738. function = BOX_GAP
  739. detail = "notebook"
  740. file = "assets/frame-notebook.png"
  741. border = {1, 1, 1, 1}
  742. stretch = TRUE
  743. gap_file = "assets/tab-horz-gap.png"
  744. gap_border = {1, 1, 1, 0}
  745. gap_side = TOP
  746. }
  747. image {
  748. function = BOX_GAP
  749. detail = "notebook"
  750. file = "assets/frame-notebook.png"
  751. border = {1, 1, 1, 1}
  752. stretch = TRUE
  753. gap_file = "assets/tab-horz-gap.png"
  754. gap_border = {1, 1, 0, 1}
  755. gap_side = BOTTOM
  756. }
  757. # Standalone frame
  758. image {
  759. function = BOX
  760. detail = "notebook"
  761. file = "assets/frame-notebook.png"
  762. border = {1, 1, 1, 1}
  763. stretch = TRUE
  764. }
  765. ##############
  766. # Scrollbars #
  767. ##############
  768. image {
  769. function = BOX
  770. detail = "trough"
  771. file = "assets/scrollbar-horz-trough.png"
  772. border = {0, 0, 1, 0}
  773. orientation = HORIZONTAL
  774. }
  775. image {
  776. function = BOX
  777. detail = "trough"
  778. file = "assets/scrollbar-vert-trough.png"
  779. border = {1, 0, 0, 0}
  780. orientation = VERTICAL
  781. direction = LTR
  782. }
  783. image {
  784. function = BOX
  785. detail = "trough"
  786. file = "assets/scrollbar-vert-trough-rtl.png"
  787. border = {0, 1, 0, 0}
  788. orientation = VERTICAL
  789. direction = RTL
  790. }
  791. # Disable insensitive sliders
  792. image {
  793. function = SLIDER
  794. state = INSENSITIVE
  795. detail = "slider"
  796. }
  797. # Horizontal sliders
  798. image {
  799. function = SLIDER
  800. state = NORMAL
  801. detail = "slider"
  802. file = "assets/scrollbar-horz-slider.png"
  803. border = {6, 6, 7, 6 }
  804. stretch = TRUE
  805. orientation = HORIZONTAL
  806. }
  807. image {
  808. function = SLIDER
  809. state = PRELIGHT
  810. detail = "slider"
  811. file = "assets/scrollbar-horz-slider-hover.png"
  812. border = {6, 6, 7, 6 }
  813. stretch = TRUE
  814. orientation = HORIZONTAL
  815. }
  816. image {
  817. function = SLIDER
  818. state = ACTIVE
  819. detail = "slider"
  820. file = "assets/scrollbar-horz-slider-active.png"
  821. border = {6, 6, 7, 6 }
  822. stretch = TRUE
  823. orientation = HORIZONTAL
  824. }
  825. # Vertical sliders
  826. image {
  827. function = SLIDER
  828. state = NORMAL
  829. detail = "slider"
  830. file = "assets/scrollbar-vert-slider.png"
  831. border = {7, 6, 6, 6}
  832. stretch = TRUE
  833. orientation = VERTICAL
  834. direction = LTR
  835. }
  836. image {
  837. function = SLIDER
  838. state = PRELIGHT
  839. detail = "slider"
  840. file = "assets/scrollbar-vert-slider-hover.png"
  841. border = {7, 6, 6, 6}
  842. stretch = TRUE
  843. orientation = VERTICAL
  844. direction = LTR
  845. }
  846. image {
  847. function = SLIDER
  848. state = ACTIVE
  849. detail = "slider"
  850. file = "assets/scrollbar-vert-slider-active.png"
  851. border = {7, 6, 6, 6}
  852. stretch = TRUE
  853. orientation = VERTICAL
  854. direction = LTR
  855. }
  856. # RTL
  857. image {
  858. function = SLIDER
  859. state = NORMAL
  860. detail = "slider"
  861. file = "assets/scrollbar-vert-slider-rtl.png"
  862. border = {6, 7, 6, 6}
  863. stretch = TRUE
  864. orientation = VERTICAL
  865. direction = RTL
  866. }
  867. image {
  868. function = SLIDER
  869. state = PRELIGHT
  870. detail = "slider"
  871. file = "assets/scrollbar-vert-slider-hover-rtl.png"
  872. border = {6, 7, 6, 6}
  873. stretch = TRUE
  874. orientation = VERTICAL
  875. direction = RTL
  876. }
  877. image {
  878. function = SLIDER
  879. state = ACTIVE
  880. detail = "slider"
  881. file = "assets/scrollbar-vert-slider-active-rtl.png"
  882. border = {6, 7, 6, 6}
  883. stretch = TRUE
  884. orientation = VERTICAL
  885. direction = RTL
  886. }
  887. ##########
  888. # Scales #
  889. ##########
  890. # Troughs
  891. # They are overrided later on
  892. # We set them here too because some widgets don't specify their orientation
  893. image {
  894. function = BOX
  895. detail = "trough-upper"
  896. file = "assets/scale-horz-trough.png"
  897. border = {10, 10, 0, 0}
  898. stretch = TRUE
  899. orientation = HORIZONTAL
  900. }
  901. image {
  902. function = BOX
  903. detail = "trough-lower"
  904. file = "assets/scale-horz-trough-active.png"
  905. border = {10, 10, 0, 0}
  906. stretch = TRUE
  907. orientation = HORIZONTAL
  908. }
  909. image {
  910. function = BOX
  911. detail = "trough-upper"
  912. file = "assets/scale-vert-trough.png"
  913. border = {0, 0, 10, 10}
  914. stretch = TRUE
  915. orientation = VERTICAL
  916. }
  917. image {
  918. function = BOX
  919. detail = "trough-lower"
  920. file = "assets/scale-vert-trough-active.png"
  921. border = {0, 0, 10, 10}
  922. stretch = TRUE
  923. orientation = VERTICAL
  924. }
  925. # Sliders
  926. image {
  927. function = SLIDER
  928. state = NORMAL
  929. detail = "hscale"
  930. file = "assets/scale-slider.png"
  931. }
  932. image {
  933. function = SLIDER
  934. state = PRELIGHT
  935. detail = "hscale"
  936. file = "assets/scale-slider-hover.png"
  937. }
  938. image {
  939. function = SLIDER
  940. state = ACTIVE
  941. detail = "hscale"
  942. file = "assets/scale-slider-active.png"
  943. }
  944. image {
  945. function = SLIDER
  946. state = INSENSITIVE
  947. detail = "hscale"
  948. file = "assets/scale-slider-insensitive.png"
  949. }
  950. image {
  951. function = SLIDER
  952. state = NORMAL
  953. detail = "vscale"
  954. file = "assets/scale-slider.png"
  955. }
  956. image {
  957. function = SLIDER
  958. state = PRELIGHT
  959. detail = "vscale"
  960. file = "assets/scale-slider-hover.png"
  961. }
  962. image {
  963. function = SLIDER
  964. state = ACTIVE
  965. detail = "vscale"
  966. file = "assets/scale-slider-active.png"
  967. }
  968. image {
  969. function = SLIDER
  970. state = INSENSITIVE
  971. detail = "vscale"
  972. file = "assets/scale-slider-insensitive.png"
  973. }
  974. ###########
  975. # Menubar #
  976. ###########
  977. image {
  978. function = BOX
  979. detail = "menubar"
  980. file = "assets/line.png"
  981. border = {0, 0, 0, 1}
  982. }
  983. #########
  984. # Menus #
  985. #########
  986. image {
  987. function = BOX
  988. state = PRELIGHT
  989. detail = "menu_scroll_arrow_up"
  990. file = "assets/line.png"
  991. }
  992. image {
  993. function = BOX
  994. detail = "menu_scroll_arrow_up"
  995. file = "assets/line.png"
  996. border = {0, 0, 0, 1}
  997. }
  998. image {
  999. function = BOX
  1000. state = PRELIGHT
  1001. detail = "menu_scroll_arrow_down"
  1002. file = "assets/line.png"
  1003. }
  1004. image {
  1005. function = BOX
  1006. detail = "menu_scroll_arrow_down"
  1007. file = "assets/line.png"
  1008. border = {0, 0, 1, 0}
  1009. }
  1010. ###########
  1011. # Entries #
  1012. ###########
  1013. image {
  1014. function = SHADOW
  1015. state = ACTIVE
  1016. detail = "entry"
  1017. file = "assets/entry-active.png"
  1018. border = {4, 4, 4, 4}
  1019. stretch = TRUE
  1020. }
  1021. image {
  1022. function = SHADOW
  1023. state = INSENSITIVE
  1024. detail = "entry"
  1025. file = "assets/entry-insensitive.png"
  1026. border = {4, 4, 4, 4}
  1027. stretch = TRUE
  1028. }
  1029. image {
  1030. function = SHADOW
  1031. detail = "entry"
  1032. file = "assets/entry.png"
  1033. border = {4, 4, 4, 4}
  1034. stretch = TRUE
  1035. }
  1036. image {
  1037. function = FLAT_BOX
  1038. state = ACTIVE
  1039. detail = "entry_bg"
  1040. file = "assets/entry-background.png"
  1041. }
  1042. image {
  1043. function = FLAT_BOX
  1044. state = INSENSITIVE
  1045. detail = "entry_bg"
  1046. file = "assets/entry-background-insensitive.png"
  1047. }
  1048. image {
  1049. function = FLAT_BOX
  1050. detail = "entry_bg"
  1051. file = "assets/entry-background.png"
  1052. }
  1053. #########
  1054. # Spins #
  1055. #########
  1056. # Spin-Up LTR
  1057. image {
  1058. function = BOX
  1059. state = NORMAL
  1060. detail = "spinbutton_up"
  1061. file = "assets/spin-ltr-up.png"
  1062. border = {1, 4, 4, 0}
  1063. stretch = TRUE
  1064. overlay_file = "assets/spin-up.png"
  1065. overlay_stretch = FALSE
  1066. direction = LTR
  1067. }
  1068. image {
  1069. function = BOX
  1070. state = PRELIGHT
  1071. detail = "spinbutton_up"
  1072. file = "assets/spin-ltr-up-hover.png"
  1073. border = {1, 4, 4, 0}
  1074. stretch = TRUE
  1075. overlay_file = "assets/spin-up.png"
  1076. overlay_stretch = FALSE
  1077. direction = LTR
  1078. }
  1079. image {
  1080. function = BOX
  1081. state = ACTIVE
  1082. detail = "spinbutton_up"
  1083. file = "assets/spin-ltr-up-active.png"
  1084. border = {1, 4, 4, 0}
  1085. stretch = TRUE
  1086. overlay_file = "assets/spin-up.png"
  1087. overlay_stretch = FALSE
  1088. direction = LTR
  1089. }
  1090. image {
  1091. function = BOX
  1092. state = INSENSITIVE
  1093. detail = "spinbutton_up"
  1094. file = "assets/spin-ltr-up-insensitive.png"
  1095. border = {1, 4, 4, 0}
  1096. stretch = TRUE
  1097. overlay_file = "assets/spin-up-insensitive.png"
  1098. overlay_stretch = FALSE
  1099. direction = LTR
  1100. }
  1101. # Spin-Up RTL
  1102. image {
  1103. function = BOX
  1104. state = NORMAL
  1105. detail = "spinbutton_up"
  1106. file = "assets/spin-rtl-up.png"
  1107. border = {4, 1, 4, 0}
  1108. stretch = TRUE
  1109. overlay_file = "assets/spin-up.png"
  1110. overlay_stretch = FALSE
  1111. direction = RTL
  1112. }
  1113. image {
  1114. function = BOX
  1115. state = PRELIGHT
  1116. detail = "spinbutton_up"
  1117. file = "assets/spin-rtl-up-hover.png"
  1118. border = {4, 1, 4, 0}
  1119. stretch = TRUE
  1120. overlay_file = "assets/spin-up.png"
  1121. overlay_stretch = FALSE
  1122. direction = RTL
  1123. }
  1124. image {
  1125. function = BOX
  1126. state = ACTIVE
  1127. detail = "spinbutton_up"
  1128. file = "assets/spin-rtl-up-hover.png"
  1129. border = {4, 1, 4, 0}
  1130. stretch = TRUE
  1131. overlay_file = "assets/spin-up.png"
  1132. overlay_stretch = FALSE
  1133. direction = RTL
  1134. }
  1135. image {
  1136. function = BOX
  1137. state = INSENSITIVE
  1138. detail = "spinbutton_up"
  1139. file = "assets/spin-rtl-up-insensitive.png"
  1140. border = {4, 1, 4, 0}
  1141. stretch = TRUE
  1142. overlay_file = "assets/spin-up-insensitive.png"
  1143. overlay_stretch = FALSE
  1144. direction = RTL
  1145. }
  1146. # Spin-Down LTR
  1147. image {
  1148. function = BOX
  1149. state = NORMAL
  1150. detail = "spinbutton_down"
  1151. file = "assets/spin-ltr-down.png"
  1152. border = {1, 4, 1, 4}
  1153. stretch = TRUE
  1154. overlay_file = "assets/spin-down.png"
  1155. overlay_stretch = FALSE
  1156. direction = LTR
  1157. }
  1158. image {
  1159. function = BOX
  1160. state = PRELIGHT
  1161. detail = "spinbutton_down"
  1162. file = "assets/spin-ltr-down-hover.png"
  1163. border = {1, 4, 1, 4}
  1164. stretch = TRUE
  1165. overlay_file = "assets/spin-down.png"
  1166. overlay_stretch = FALSE
  1167. direction = LTR
  1168. }
  1169. image {
  1170. function = BOX
  1171. state = ACTIVE
  1172. detail = "spinbutton_down"
  1173. file = "assets/spin-ltr-down-active.png"
  1174. border = {1, 4, 1, 4}
  1175. stretch = TRUE
  1176. overlay_file = "assets/spin-down.png"
  1177. overlay_stretch = FALSE
  1178. direction = LTR
  1179. }
  1180. image {
  1181. function = BOX
  1182. state = INSENSITIVE
  1183. detail = "spinbutton_down"
  1184. file = "assets/spin-ltr-down-insensitive.png"
  1185. border = {1, 4, 1, 4}
  1186. stretch = TRUE
  1187. overlay_file = "assets/spin-down-insensitive.png"
  1188. overlay_stretch = FALSE
  1189. direction = LTR
  1190. }
  1191. # Spin-Down RTL
  1192. image {
  1193. function = BOX
  1194. state = NORMAL
  1195. detail = "spinbutton_down"
  1196. file = "assets/spin-rtl-down.png"
  1197. border = {4, 1, 1, 4}
  1198. stretch = TRUE
  1199. overlay_file = "assets/spin-down.png"
  1200. overlay_stretch = FALSE
  1201. direction = RTL
  1202. }
  1203. image {
  1204. function = BOX
  1205. state = PRELIGHT
  1206. detail = "spinbutton_down"
  1207. file = "assets/spin-rtl-down-hover.png"
  1208. border = {4, 1, 1, 4}
  1209. stretch = TRUE
  1210. overlay_file = "assets/spin-down.png"
  1211. overlay_stretch = FALSE
  1212. direction = RTL
  1213. }
  1214. image {
  1215. function = BOX
  1216. state = ACTIVE
  1217. detail = "spinbutton_down"
  1218. file = "assets/spin-rtl-down-active.png"
  1219. border = {4, 1, 1, 4}
  1220. stretch = TRUE
  1221. overlay_file = "assets/spin-down.png"
  1222. overlay_stretch = FALSE
  1223. direction = RTL
  1224. }
  1225. image {
  1226. function = BOX
  1227. state = INSENSITIVE
  1228. detail = "spinbutton_down"
  1229. file = "assets/spin-rtl-down-insensitive.png"
  1230. border = {4, 1, 1, 4}
  1231. stretch = TRUE
  1232. overlay_file = "assets/spin-down-insensitive.png"
  1233. overlay_stretch = FALSE
  1234. direction = RTL
  1235. }
  1236. ##############
  1237. # Scrollbars #
  1238. ##############
  1239. image {
  1240. function = BOX
  1241. detail = "bar"
  1242. file = "assets/progressbar-horz.png"
  1243. stretch = TRUE
  1244. border = {2, 2, 1, 1}
  1245. orientation = HORIZONTAL
  1246. }
  1247. image {
  1248. function = BOX
  1249. detail = "bar"
  1250. file = "assets/progressbar-vert.png"
  1251. stretch = TRUE
  1252. border = {1, 1, 2, 2}
  1253. orientation = VERTICAL
  1254. }
  1255. #############
  1256. # Treeviews #
  1257. #############
  1258. # Disable active the column highlight
  1259. # We need to match specific cells or we break stuff
  1260. # Looking at you deadbeef
  1261. image {
  1262. function = FLAT_BOX
  1263. detail = "cell_even_sorted"
  1264. state = NORMAL
  1265. }
  1266. image {
  1267. function = FLAT_BOX
  1268. detail = "cell_odd_sorted"
  1269. state = NORMAL
  1270. }
  1271. # Disable all the other shadows
  1272. # This prevents the Raleigh effect
  1273. image {
  1274. function = SHADOW
  1275. }
  1276. }
  1277. }
  1278. style "menubar" {
  1279. # Needed to fix Firefox's menubar text
  1280. bg[NORMAL] = @dark_bg_color
  1281. text[NORMAL] = @dark_fg_color
  1282. fg[NORMAL] = @dark_fg_color
  1283. fg[PRELIGHT] = @dark_fg_color
  1284. bg[SELECTED] = @dark_bg_color
  1285. fg[SELECTED] = shade(0.9, @dark_fg_color)
  1286. }
  1287. style "menubar_item" {
  1288. xthickness = 3
  1289. ythickness = 4
  1290. fg[NORMAL] = @dark_fg_color
  1291. fg[PRELIGHT] = @dark_fg_color
  1292. text[NORMAL] = @dark_fg_color
  1293. engine "pixmap" {
  1294. image {
  1295. function = BOX
  1296. state = PRELIGHT
  1297. file = "assets/menubar-item-active.png"
  1298. border = {0, 0, 0, 3}
  1299. }
  1300. }
  1301. }
  1302. style "menu" {
  1303. xthickness = 0
  1304. ythickness = 0
  1305. bg[NORMAL] = @base_color
  1306. bg[INSENSITIVE] = @base_color
  1307. bg[PRELIGHT] = @base_color
  1308. bg[SELECTED] = @selected_bg_color
  1309. }
  1310. style "menu_item" {
  1311. xthickness = 3
  1312. ythickness = 4
  1313. bg[PRELIGHT] = @selected_bg_color
  1314. # Chromium uses this setting
  1315. bg[SELECTED] = @selected_bg_color
  1316. fg[PRELIGHT] = @selected_fg_color
  1317. # Some widgets use text, we need to handle that
  1318. text[NORMAL] = @fg_color
  1319. text[PRELIGHT] = @selected_fg_color
  1320. # Unfortunately we can't tell regular and menu checks/radios apart
  1321. # Without the heirarchy
  1322. engine "pixmap" {
  1323. #################
  1324. # Check Buttons #
  1325. #################
  1326. image {
  1327. function = CHECK
  1328. state = NORMAL
  1329. shadow = OUT
  1330. overlay_file = "assets/menu-checkbox.png"
  1331. overlay_stretch = FALSE
  1332. }
  1333. image {
  1334. function = CHECK
  1335. state = PRELIGHT
  1336. shadow = OUT
  1337. overlay_file = "assets/menu-checkbox-hover.png"
  1338. overlay_stretch = FALSE
  1339. }
  1340. image {
  1341. function = CHECK
  1342. state = ACTIVE
  1343. shadow = OUT
  1344. overlay_file = "assets/menu-checkbox.png"
  1345. overlay_stretch = FALSE
  1346. }
  1347. image {
  1348. function = CHECK
  1349. state = INSENSITIVE
  1350. shadow = OUT
  1351. overlay_file = "assets/menu-checkbox-insensitive.png"
  1352. overlay_stretch = FALSE
  1353. }
  1354. image {
  1355. function = CHECK
  1356. state = NORMAL
  1357. shadow = IN
  1358. overlay_file = "assets/menu-checkbox-checked.png"
  1359. overlay_stretch = FALSE
  1360. }
  1361. image {
  1362. function = CHECK
  1363. state = PRELIGHT
  1364. shadow = IN
  1365. overlay_file = "assets/menu-checkbox-checked-hover.png"
  1366. overlay_stretch = FALSE
  1367. }
  1368. image {
  1369. function = CHECK
  1370. state = ACTIVE
  1371. shadow = IN
  1372. overlay_file = "assets/menu-checkbox-checked.png"
  1373. overlay_stretch = FALSE
  1374. }
  1375. image {
  1376. function = CHECK
  1377. state = INSENSITIVE
  1378. shadow = IN
  1379. overlay_file = "assets/menu-checkbox-checked-insensitive.png"
  1380. overlay_stretch = FALSE
  1381. }
  1382. image {
  1383. function = CHECK
  1384. state = NORMAL
  1385. shadow = ETCHED_IN
  1386. overlay_file = "assets/menu-checkbox-mixed.png"
  1387. overlay_stretch = FALSE
  1388. }
  1389. image {
  1390. function = CHECK
  1391. state = PRELIGHT
  1392. shadow = ETCHED_IN
  1393. overlay_file = "assets/menu-checkbox-mixed-hover.png"
  1394. overlay_stretch = FALSE
  1395. }
  1396. image {
  1397. function = CHECK
  1398. state = ACTIVE
  1399. shadow = ETCHED_IN
  1400. overlay_file = "assets/menu-checkbox-mixed.png"
  1401. overlay_stretch = FALSE
  1402. }
  1403. image {
  1404. function = CHECK
  1405. state = INSENSITIVE
  1406. shadow = ETCHED_IN
  1407. overlay_file = "assets/menu-checkbox-mixed-insensitive.png"
  1408. overlay_stretch = FALSE
  1409. }
  1410. #################
  1411. # Radio Buttons #
  1412. #################
  1413. image {
  1414. function = OPTION
  1415. state = NORMAL
  1416. shadow = OUT
  1417. overlay_file = "assets/menu-radio.png"
  1418. overlay_stretch = FALSE
  1419. }
  1420. image {
  1421. function = OPTION
  1422. state = PRELIGHT
  1423. shadow = OUT
  1424. overlay_file = "assets/menu-radio-hover.png"
  1425. overlay_stretch = FALSE
  1426. }
  1427. image {
  1428. function = OPTION
  1429. state = ACTIVE
  1430. shadow = OUT
  1431. overlay_file = "assets/menu-radio.png"
  1432. overlay_stretch = FALSE
  1433. }
  1434. image {
  1435. function = OPTION
  1436. state = INSENSITIVE
  1437. shadow = OUT
  1438. overlay_file = "assets/menu-radio-insensitive.png"
  1439. overlay_stretch = FALSE
  1440. }
  1441. image {
  1442. function = OPTION
  1443. state = NORMAL
  1444. shadow = IN
  1445. overlay_file = "assets/menu-radio-checked.png"
  1446. overlay_stretch = FALSE
  1447. }
  1448. image {
  1449. function = OPTION
  1450. state = PRELIGHT
  1451. shadow = IN
  1452. overlay_file = "assets/menu-radio-checked-hover.png"
  1453. overlay_stretch = FALSE
  1454. }
  1455. image {
  1456. function = OPTION
  1457. state = ACTIVE
  1458. shadow = IN
  1459. overlay_file = "assets/menu-radio-checked.png"
  1460. overlay_stretch = FALSE
  1461. }
  1462. image {
  1463. function = OPTION
  1464. state = INSENSITIVE
  1465. shadow = IN
  1466. overlay_file = "assets/menu-radio-checked-insensitive.png"
  1467. overlay_stretch = FALSE
  1468. }
  1469. image {
  1470. function = OPTION
  1471. state = NORMAL
  1472. shadow = ETCHED_IN
  1473. overlay_file = "assets/menu-radio-mixed.png"
  1474. overlay_stretch = FALSE
  1475. }
  1476. image {
  1477. function = OPTION
  1478. state = PRELIGHT
  1479. shadow = ETCHED_IN
  1480. overlay_file = "assets/menu-radio-mixed-hover.png"
  1481. overlay_stretch = FALSE
  1482. }
  1483. image {
  1484. function = OPTION
  1485. state = ACTIVE
  1486. shadow = ETCHED_IN
  1487. overlay_file = "assets/menu-radio-mixed.png"
  1488. overlay_stretch = FALSE
  1489. }
  1490. image {
  1491. function = OPTION
  1492. state = INSENSITIVE
  1493. shadow = ETCHED_IN
  1494. overlay_file = "assets/menu-radio-mixed-insensitive.png"
  1495. overlay_stretch = FALSE
  1496. }
  1497. }
  1498. }
  1499. style "separator_menu_item" {
  1500. xthickness = 0
  1501. ythickness = 0
  1502. engine "pixmap" {
  1503. image {
  1504. function = BOX
  1505. file = "assets/line.png"
  1506. }
  1507. }
  1508. }
  1509. style "button_label" {
  1510. fg[PRELIGHT] = @selected_fg_color
  1511. fg[ACTIVE] = @selected_fg_color
  1512. }
  1513. style "misc_button_label" {
  1514. fg[PRELIGHT] = @fg_color
  1515. fg[ACTIVE] = @fg_color
  1516. }
  1517. style "button" {
  1518. xthickness = 2
  1519. ythickness = 2
  1520. fg[PRELIGHT] = @selected_fg_color
  1521. fg[ACTIVE] = @selected_fg_color
  1522. font_name = "Bold"
  1523. # For the sake of sanity style buttons this way
  1524. engine "pixmap" {
  1525. ###########
  1526. # Buttons #
  1527. ###########
  1528. image {
  1529. function = BOX
  1530. state = NORMAL
  1531. file = "assets/button.png"
  1532. border = {4, 4, 4, 4}
  1533. stretch = TRUE
  1534. }
  1535. image {
  1536. function = BOX
  1537. state = PRELIGHT
  1538. shadow = OUT
  1539. file = "assets/button-hover.png"
  1540. border = {4, 4, 4, 4}
  1541. stretch = TRUE
  1542. }
  1543. # Don't add hover effect on pressed buttons
  1544. image {
  1545. function = BOX
  1546. state = PRELIGHT
  1547. shadow = IN
  1548. file = "assets/button-active.png"
  1549. border = {4, 4, 4, 4}
  1550. stretch = TRUE
  1551. }
  1552. image {
  1553. function = BOX
  1554. state = ACTIVE
  1555. file = "assets/button-active.png"
  1556. border = {4, 4, 4, 4}
  1557. stretch = TRUE
  1558. }
  1559. image {
  1560. function = BOX
  1561. state = INSENSITIVE
  1562. file = "assets/button-insensitive.png"
  1563. border = {4, 4, 4, 4}
  1564. stretch = TRUE
  1565. }
  1566. }
  1567. }
  1568. style "link_button" {
  1569. # Disable the button effect, leave just the link
  1570. engine "pixmap" {
  1571. image {
  1572. function = BOX
  1573. }
  1574. }
  1575. }
  1576. style "entry" {
  1577. # We set this same as the border of the border of the entry
  1578. # This way theres no overlap
  1579. xthickness = 4
  1580. ythickness = 4
  1581. }
  1582. style "combobox" {
  1583. xthickness = 6
  1584. ythickness = 4
  1585. # This affects only the button beside an entry
  1586. GtkButton::inner-border = {0, 0, 0, 0}
  1587. }
  1588. style "combobox_cellview" {
  1589. text[NORMAL] = @fg_color
  1590. text[PRELIGHT] = @fg_color
  1591. }
  1592. style "combobox_entry" {
  1593. # Since one side of the button is missing, we need to shift the arrow a little to the right
  1594. GtkButton::inner-border = {0, 1, 0, 0}
  1595. engine "pixmap" {
  1596. #############
  1597. # LTR entry #
  1598. #############
  1599. image {
  1600. function = SHADOW
  1601. state = NORMAL
  1602. detail = "entry"
  1603. file = "assets/combo-entry-ltr-entry.png"
  1604. border = {4, 4, 4, 4}
  1605. stretch = TRUE
  1606. direction = LTR
  1607. }
  1608. image {
  1609. function = SHADOW
  1610. state = ACTIVE
  1611. detail = "entry"
  1612. file = "assets/combo-entry-ltr-entry-active.png"
  1613. border = {4, 4, 4, 4}
  1614. stretch = TRUE
  1615. direction = LTR
  1616. }
  1617. image {
  1618. function = SHADOW
  1619. state = INSENSITIVE
  1620. detail = "entry"
  1621. file = "assets/combo-entry-ltr-entry-insensitive.png"
  1622. border = {4, 4, 4, 4}
  1623. stretch = TRUE
  1624. direction = LTR
  1625. }
  1626. #############
  1627. # RTL entry #
  1628. #############
  1629. image {
  1630. function = SHADOW
  1631. state = NORMAL
  1632. detail = "entry"
  1633. file = "assets/combo-entry-rtl-entry.png"
  1634. border = {4, 4, 4, 4}
  1635. stretch = TRUE
  1636. direction = RTL
  1637. }
  1638. image {
  1639. function = SHADOW
  1640. state = ACTIVE
  1641. detail = "entry"
  1642. file = "assets/combo-entry-rtl-entry-active.png"
  1643. border = {4, 4, 4, 4}
  1644. stretch = TRUE
  1645. direction = RTL
  1646. }
  1647. image {
  1648. function = SHADOW
  1649. state = INSENSITIVE
  1650. detail = "entry"
  1651. file = "assets/combo-entry-rtl-entry-insensitive.png"
  1652. border = {4, 4, 4, 4}
  1653. stretch = TRUE
  1654. direction = RTL
  1655. }
  1656. ##############
  1657. # LTR button #
  1658. ##############
  1659. image {
  1660. function = BOX
  1661. state = NORMAL
  1662. detail = "button"
  1663. file = "assets/combo-entry-ltr-button.png"
  1664. border = {0, 4, 4, 4}
  1665. stretch = TRUE
  1666. direction = LTR
  1667. }
  1668. image {
  1669. function = BOX
  1670. state = PRELIGHT
  1671. detail = "button"
  1672. file = "assets/combo-entry-ltr-button-hover.png"
  1673. border = {0, 4, 4, 4}
  1674. stretch = TRUE
  1675. direction = LTR
  1676. }
  1677. image {
  1678. function = BOX
  1679. state = ACTIVE
  1680. detail = "button"
  1681. file = "assets/combo-entry-ltr-button-active.png"
  1682. border = {0, 4, 4, 4}
  1683. stretch = TRUE
  1684. direction = LTR
  1685. }
  1686. image {
  1687. function = BOX
  1688. state = INSENSITIVE
  1689. detail = "button"
  1690. file = "assets/combo-entry-ltr-button-insensitive.png"
  1691. border = {0, 4, 4, 4}
  1692. stretch = TRUE
  1693. direction = LTR
  1694. }
  1695. ##############
  1696. # RTL button #
  1697. ##############
  1698. image {
  1699. function = BOX
  1700. state = NORMAL
  1701. detail = "button"
  1702. file = "assets/combo-entry-rtl-button.png"
  1703. border = {4, 0, 4, 4}
  1704. stretch = TRUE
  1705. direction = RTL
  1706. }
  1707. image {
  1708. function = BOX
  1709. state = PRELIGHT
  1710. detail = "button"
  1711. file = "assets/combo-entry-rtl-button-hover.png"
  1712. border = {4, 0, 4, 4}
  1713. stretch = TRUE
  1714. direction = RTL
  1715. }
  1716. image {
  1717. function = BOX
  1718. state = ACTIVE
  1719. detail = "button"
  1720. file = "assets/combo-entry-rtl-button-active.png"
  1721. border = {4, 0, 4, 4}
  1722. stretch = TRUE
  1723. direction = RTL
  1724. }
  1725. image {
  1726. function = BOX
  1727. state = INSENSITIVE
  1728. detail = "button"
  1729. file = "assets/combo-entry-rtl-button-insensitive.png"
  1730. border = {4, 0, 4, 4}
  1731. stretch = TRUE
  1732. direction = RTL
  1733. }
  1734. }
  1735. }
  1736. style "combo_button_padding" {
  1737. # Since one side of the button is missing, we need to shift the arrow a little to the right
  1738. # This is the same thing we've done above but the combo, unlike the combobox,
  1739. # uses padding the same way as a button
  1740. GtkButton::inner-border = {6, 8, 4, 4}
  1741. }
  1742. style "notebook" {
  1743. xthickness = 5
  1744. ythickness = 2
  1745. }
  1746. style "notebook_viewport" {
  1747. bg[NORMAL] = @base_color
  1748. }
  1749. style "notebook_bg" {
  1750. bg[NORMAL] = @base_color
  1751. bg[PRELIGHT] = @base_color
  1752. bg[INSENSITIVE] = @base_color
  1753. }
  1754. style "notebook_entry" {
  1755. engine "pixmap" {
  1756. image {
  1757. function = SHADOW
  1758. state = ACTIVE
  1759. detail = "entry"
  1760. file = "assets/notebook-entry-active.png"
  1761. border = {4, 4, 4, 4}
  1762. stretch = TRUE
  1763. }
  1764. image {
  1765. function = SHADOW
  1766. state = INSENSITIVE
  1767. detail = "entry"
  1768. file = "assets/notebook-entry-insensitive.png"
  1769. border = {4, 4, 4, 4}
  1770. stretch = TRUE
  1771. }
  1772. image {
  1773. function = SHADOW
  1774. detail = "entry"
  1775. file = "assets/notebook-entry.png"
  1776. border = {4, 4, 4, 4}
  1777. stretch = TRUE
  1778. }
  1779. }
  1780. }
  1781. style "normal_bg" {
  1782. bg[NORMAL] = @bg_color
  1783. bg[PRELIGHT] = @bg_color
  1784. bg[INSENSITIVE] = mix (0.6, @bg_color, @base_color)
  1785. }
  1786. style "normal_entry" {
  1787. engine "pixmap" {
  1788. image {
  1789. function = SHADOW
  1790. state = ACTIVE
  1791. detail = "entry"
  1792. file = "assets/entry-active.png"
  1793. border = {4, 4, 4, 4}
  1794. stretch = TRUE
  1795. }
  1796. image {
  1797. function = SHADOW
  1798. state = INSENSITIVE
  1799. detail = "entry"
  1800. file = "assets/entry-insensitive.png"
  1801. border = {4, 4, 4, 4}
  1802. stretch = TRUE
  1803. }
  1804. image {
  1805. function = SHADOW
  1806. detail = "entry"
  1807. file = "assets/entry.png"
  1808. border = {4, 4, 4, 4}
  1809. stretch = TRUE
  1810. }
  1811. }
  1812. }
  1813. style "notebook_combo" {
  1814. engine "pixmap" {
  1815. #############
  1816. # LTR entry #
  1817. #############
  1818. image {
  1819. function = SHADOW
  1820. state = NORMAL
  1821. detail = "entry"
  1822. file = "assets/notebook-combo-entry-ltr-entry.png"
  1823. border = {4, 4, 4, 4}
  1824. stretch = TRUE
  1825. direction = LTR
  1826. }
  1827. image {
  1828. function = SHADOW
  1829. state = ACTIVE
  1830. detail = "entry"
  1831. file = "assets/notebook-combo-entry-ltr-entry-active.png"
  1832. border = {4, 4, 4, 4}
  1833. stretch = TRUE
  1834. direction = LTR
  1835. }
  1836. image {
  1837. function = SHADOW
  1838. state = INSENSITIVE
  1839. detail = "entry"
  1840. file = "assets/notebook-combo-entry-ltr-entry-insensitive.png"
  1841. border = {4, 4, 4, 4}
  1842. stretch = TRUE
  1843. direction = LTR
  1844. }
  1845. #############
  1846. # RTL entry #
  1847. #############
  1848. image {
  1849. function = SHADOW
  1850. state = NORMAL
  1851. detail = "entry"
  1852. file = "assets/notebook-combo-entry-rtl-entry.png"
  1853. border = {4, 4, 4, 4}
  1854. stretch = TRUE
  1855. direction = RTL
  1856. }
  1857. image {
  1858. function = SHADOW
  1859. state = ACTIVE
  1860. detail = "entry"
  1861. file = "assets/notebook-combo-entry-rtl-entry-active.png"
  1862. border = {4, 4, 4, 4}
  1863. stretch = TRUE
  1864. direction = RTL
  1865. }
  1866. image {
  1867. function = SHADOW
  1868. state = INSENSITIVE
  1869. detail = "entry"
  1870. file = "assets/notebook-combo-entry-rtl-entry-insensitive.png"
  1871. border = {4, 4, 4, 4}
  1872. stretch = TRUE
  1873. direction = RTL
  1874. }
  1875. }
  1876. }
  1877. style "textview" {
  1878. bg[NORMAL] = @base_color
  1879. }
  1880. style "scale_horz" {
  1881. engine "pixmap" {
  1882. image {
  1883. function = BOX
  1884. detail = "trough-upper"
  1885. file = "assets/scale-horz-trough.png"
  1886. border = {10, 10, 0, 0}
  1887. stretch = TRUE
  1888. }
  1889. image {
  1890. function = BOX
  1891. detail = "trough-lower"
  1892. file = "assets/scale-horz-trough-active.png"
  1893. border = {10, 10, 0, 0}
  1894. stretch = TRUE
  1895. }
  1896. }
  1897. }
  1898. style "scale_vert" {
  1899. engine "pixmap" {
  1900. image {
  1901. function = BOX
  1902. detail = "trough-upper"
  1903. file = "assets/scale-vert-trough.png"
  1904. border = {0, 0, 10, 10}
  1905. stretch = TRUE
  1906. }
  1907. image {
  1908. function = BOX
  1909. detail = "trough-lower"
  1910. file = "assets/scale-vert-trough-active.png"
  1911. border = {0, 0, 10, 10}
  1912. stretch = TRUE
  1913. }
  1914. }
  1915. }
  1916. style "progressbar" {
  1917. xthickness = 1
  1918. ythickness = 1
  1919. fg[PRELIGHT] = @selected_fg_color
  1920. engine "pixmap" {
  1921. image {
  1922. function = BOX
  1923. detail = "trough"
  1924. file = "assets/progressbar-horz-trough.png"
  1925. border = {3, 3, 2, 2}
  1926. stretch = TRUE
  1927. orientation = HORIZONTAL
  1928. }
  1929. image {
  1930. function = BOX
  1931. detail = "trough"
  1932. file = "assets/progressbar-vert-trough.png"
  1933. border = {2, 2, 3, 3}
  1934. stretch = TRUE
  1935. orientation = VERTICAL
  1936. }
  1937. }
  1938. }
  1939. style "treeview_header" {
  1940. xthickness = 1
  1941. ythickness = 0
  1942. fg[NORMAL] = mix(0.5, @fg_color, @base_color)
  1943. fg[PRELIGHT] = mix(0.5, mix(0.5, @fg_color, @base_color), @fg_color)
  1944. font_name = "Bold"
  1945. GtkButton::inner-border = {5, 5, 0, 1}
  1946. engine "pixmap" {
  1947. image {
  1948. function = BOX
  1949. file = "assets/treeview-separator-ltr.png"
  1950. border = {0, 1, 0, 1}
  1951. stretch = TRUE
  1952. direction = LTR
  1953. }
  1954. image {
  1955. function = BOX
  1956. file = "assets/treeview-separator-rtl.png"
  1957. border = {1, 0, 0, 1}
  1958. stretch = TRUE
  1959. direction = RTL
  1960. }
  1961. image {
  1962. function = ARROW
  1963. state = NORMAL
  1964. overlay_file = "assets/treeview-pan-up.png"
  1965. overlay_stretch = FALSE
  1966. arrow_direction = UP
  1967. }
  1968. image {
  1969. function = ARROW
  1970. state = PRELIGHT
  1971. overlay_file = "assets/treeview-pan-up-hover.png"
  1972. overlay_stretch = FALSE
  1973. arrow_direction = UP
  1974. }
  1975. image {
  1976. function = ARROW
  1977. state = ACTIVE
  1978. overlay_file = "assets/treeview-pan-up-active.png"
  1979. overlay_stretch = FALSE
  1980. arrow_direction = UP
  1981. }
  1982. image {
  1983. function = ARROW
  1984. state = NORMAL
  1985. overlay_file = "assets/treeview-pan-down.png"
  1986. overlay_stretch = FALSE
  1987. arrow_direction = DOWN
  1988. }
  1989. image {
  1990. function = ARROW
  1991. state = PRELIGHT
  1992. overlay_file = "assets/treeview-pan-down-hover.png"
  1993. overlay_stretch = FALSE
  1994. arrow_direction = DOWN
  1995. }
  1996. image {
  1997. function = ARROW
  1998. state = ACTIVE
  1999. overlay_file = "assets/treeview-pan-down-active.png"
  2000. overlay_stretch = FALSE
  2001. arrow_direction = DOWN
  2002. }
  2003. }
  2004. }
  2005. style "scrolled_window" {
  2006. engine "pixmap" {
  2007. image {
  2008. function = SHADOW
  2009. file = "assets/frame.png"
  2010. border = {1, 1, 1, 1}
  2011. stretch = TRUE
  2012. }
  2013. }
  2014. }
  2015. style "frame" {
  2016. engine "pixmap" {
  2017. image {
  2018. function = SHADOW
  2019. file = "assets/frame.png"
  2020. border = {0, 0, 0, 0}
  2021. stretch = TRUE
  2022. }
  2023. image {
  2024. function = SHADOW_GAP
  2025. file = "assets/frame.png"
  2026. border = {0, 0, 0, 0}
  2027. stretch = TRUE
  2028. gap_start_file = "assets/border.png"
  2029. gap_end_file = "assets/border.png"
  2030. }
  2031. }
  2032. }
  2033. style "toolbar_button" {
  2034. xthickness = 2
  2035. ythickness = 2
  2036. GtkButton::inner-border = {2, 2, 2, 2}
  2037. engine "pixmap" {
  2038. image {
  2039. function = BOX
  2040. state = PRELIGHT
  2041. shadow = OUT
  2042. file = "assets/toolbar-button-hover.png"
  2043. border = {4, 4, 4, 4}
  2044. stretch = TRUE
  2045. }
  2046. # Don't add hover effect on pressed buttons
  2047. image {
  2048. function = BOX
  2049. state = PRELIGHT
  2050. shadow = IN
  2051. file = "assets/toolbar-button-active.png"
  2052. border = {4, 4, 4, 4}
  2053. stretch = TRUE
  2054. }
  2055. image {
  2056. function = BOX
  2057. state = ACTIVE
  2058. file = "assets/toolbar-button-active.png"
  2059. border = {4, 4, 4, 4}
  2060. stretch = TRUE
  2061. }
  2062. }
  2063. }
  2064. style "toolbar_separator" {
  2065. GtkWidget::wide-separators = 1
  2066. GtkWidget::separator-width = 1
  2067. GtkWidget::separator-height = 1
  2068. engine "pixmap" {
  2069. image {
  2070. function = BOX
  2071. file = "assets/line.png"
  2072. }
  2073. }
  2074. }
  2075. style "inline_toolbar" {
  2076. GtkToolbar::button-relief = GTK_RELIEF_NORMAL
  2077. engine "pixmap" {
  2078. image {
  2079. function = SHADOW
  2080. file = "assets/frame-inline.png"
  2081. border = {1, 1, 0, 1}
  2082. stretch = TRUE
  2083. }
  2084. }
  2085. }
  2086. style "tooltip" {
  2087. xthickness = 13
  2088. ythickness = 13
  2089. bg[NORMAL] = @tooltip_bg_color
  2090. fg[NORMAL] = @tooltip_fg_color
  2091. bg[SELECTED] = @tooltip_bg_color
  2092. }
  2093. style "disable_shadow" {
  2094. engine "pixmap" {
  2095. image {
  2096. function = SHADOW
  2097. }
  2098. }
  2099. }
  2100. style "disable_separator" {
  2101. xthickness = 0
  2102. ythickness = 0
  2103. GtkWidget::wide-separators = 1
  2104. }
  2105. # Text Style
  2106. style "text" = "default" {
  2107. engine "murrine" { textstyle = 0 }
  2108. }
  2109. style "menu_text" = "menu_item" {
  2110. engine "murrine" { textstyle = 0 }
  2111. }
  2112. # Default style, containing most of the stuff
  2113. class "GtkWidget" style "default"
  2114. # Override padding, style and colour
  2115. class "GtkButton" style "button"
  2116. class "GtkLinkButton" style "link_button"
  2117. class "GtkEntry" style "entry"
  2118. class "GtkOldEditable" style "entry"
  2119. class "GtkNotebook" style "notebook"
  2120. class "GtkHScale" style "scale_horz"
  2121. class "GtkVScale" style "scale_vert"
  2122. class "GtkProgressBar" style "progressbar"
  2123. class "GtkScrolledWindow" style "scrolled_window"
  2124. class "GtkFrame" style "frame"
  2125. class "GtkSeparatorToolItem" style "toolbar_separator"
  2126. class "GtkMenuBar" style "menubar"
  2127. class "GtkMenu" style "menu"
  2128. class "GtkTextView" style "textview"
  2129. widget_class "*<GtkButton>*<GtkLabel>" style "button_label"
  2130. widget_class "*<GtkCheckButton>*<GtkLabel>" style "misc_button_label"
  2131. # Menu and menubar items
  2132. widget_class "*<GtkMenuItem>*" style "menu_item"
  2133. widget_class "*<GtkMenuBar>.<GtkMenuItem>*" style "menubar_item"
  2134. widget_class "*<GtkSeparatorMenuItem>*" style "separator_menu_item"
  2135. # Frames in statusbars look ugly, let's disable them
  2136. widget_class "*<GtkStatusbar>*<GtkFrame>" style "disable_shadow"
  2137. # Disable the frame around poor Wilbert too
  2138. widget_class "*<GimpToolbox>*<GtkFrame>" style "disable_shadow"
  2139. # Treeview buttons
  2140. widget_class "*<GtkTreeView>*<GtkButton>*" style "treeview_header"
  2141. # Give the file chooser toolbar a border
  2142. widget_class "*<GtkFileChooserDefault>*<GtkToolbar>" style "inline_toolbar"
  2143. # Fix padding on regular comboboxes
  2144. widget_class "*<GtkComboBox>.<GtkButton>" style "combobox"
  2145. # And disable separators on them
  2146. widget_class "*<GtkComboBox>.<GtkButton>*<GtkSeparator>" style "disable_separator"
  2147. # Join together the ComboBoxEntry entry and button
  2148. widget_class "*<GtkComboBoxEntry>*" style "combobox_entry"
  2149. # Join the Combo entry and button
  2150. widget_class "*<GtkCombo>*" style "combobox_entry"
  2151. # Tweak the padding on the button a little bit because it uses it a bit differently
  2152. widget_class "*<GtkCombo>.<GtkButton>" style "combo_button_padding"
  2153. # Alas we cannot do the same for ComboBoxText because there isn't a way to apply the style to only
  2154. # the comboboxes that have an entry inside
  2155. # Toolbar buttons have different paddings
  2156. widget_class "*<GtkToolbar>*<GtkButton>" style "toolbar_button"
  2157. # Notebooks are white, act accordingly
  2158. widget_class "*<GtkNotebook>*<GtkEntry>" style "notebook_entry"
  2159. widget_class "*<GtkNotebook>*<GtkProgressBar>" style "notebook_bg"
  2160. widget_class "*<GtkNotebook>*<GtkSpinButton>" style "notebook_bg"
  2161. widget_class "*<GtkNotebook>*<GtkScrolledWindow>*<GtkViewport>" style "notebook_bg"
  2162. widget_class "*<GtkNotebook>*<GimpRuler>" style "notebook_bg"
  2163. widget_class "*<GtkNotebook>.<GimpDisplayShell>*<GtkEventBox>" style "notebook_bg"
  2164. widget_class "*<GtkNotebook>*<GtkComboBoxEntry>*" style "notebook_combo"
  2165. widget_class "*<GtkNotebook>*<GtkCombo>*" style "notebook_combo"
  2166. # However, stuff inside eventboxes inside notebooks is grey again, react
  2167. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkEntry>" style "normal_entry"
  2168. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkProgressBar>" style "normal_bg"
  2169. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkSpinButton>" style "normal_bg"
  2170. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkComboBoxEntry>*" style "combobox_entry"
  2171. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkCombo>*" style "combobox_entry"
  2172. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkCombo>.<GtkButton>" style "combo_button_padding"
  2173. # ComboBoxes tend to draw the button label with text[] instead of fg[], we need to fix that
  2174. widget_class "*<GtkComboBox>*<GtkCellView>" style "combobox_cellview"
  2175. # GTK tooltips
  2176. widget "gtk-tooltip*" style "tooltip"
  2177. # Fixes ugly text shadows for insensitive text
  2178. widget_class "*<GtkLabel>" style "text"
  2179. widget_class "*<GtkMenu>*<GtkLabel>" style "menu_text"
  2180. widget_class "*<GtkComboBox>*<GtkCellLayout>" style "text"
  2181. widget_class "*<GtkNotebook>*<GtkLabel>" style "text"
  2182. widget_class "*<GtkNotebook>*<GtkCellLayout>" style "text"