Reno is the second iteration of the AWMTK-powered AwesomeWM config.
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.

671 lines
22 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. -- Reno Unity - Unity theme for Reno desktop
  2. --[[
  3. Reno Unity - A theme for Reno desktop
  4. Written in 2022 by Yessiest (yessiest@memeware.net)
  5. To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
  6. You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
  7. --]]
  8. local theme_assets = require("beautiful.theme_assets")
  9. local xresources = require("beautiful.xresources")
  10. local dpi = xresources.apply_dpi
  11. local gears = require("gears")
  12. local themes_path = root_path.."/themes/"
  13. local theme = {}
  14. theme.font = "Ubuntu 8"
  15. theme.bg_normal = "#19191D"
  16. theme.bg_focus = "#3E3E3E"
  17. theme.bg_urgent = "#2E2E2E"
  18. theme.bg_minimize = "#2E2E2E"
  19. theme.bg_highlight = "#45433D"
  20. theme.bg_systray = theme.bg_normal
  21. theme.fg_normal = "#e1dec7"
  22. theme.fg_focus = "#e1dec7"
  23. theme.fg_urgent = "#e1dec7"
  24. theme.fg_minimize = "#e1dec7"
  25. theme.window_rounding = 5
  26. theme.useless_gap = dpi(0)
  27. -- technically speaking these are irrelevant since they're not exactly smart
  28. -- borders
  29. theme.border_width = dpi(0)
  30. theme.border_normal = "#c0c0c0"
  31. theme.border_focus = "#c0c0c0"
  32. theme.border_marked = "#c0c0c0"
  33. local bsize = 50
  34. theme.button_bg_focus = {
  35. type = "radial",
  36. from = {bsize/2,-0.5*bsize,bsize/10},
  37. to = {bsize/2,-0.5*bsize,bsize*2},
  38. stops = {
  39. { 0 , "#FFFFFFBB"},
  40. { 0.45, "#DF744E99"},
  41. { 0.55, "#DF744E99"},
  42. { 1, "#FFFFFF44"}
  43. }
  44. }
  45. theme.button_bg_normal = {
  46. type = "radial",
  47. from = {bsize/2,-0.5*bsize,bsize/10},
  48. to = {bsize/2,-0.2*bsize,bsize*1.5},
  49. stops = {
  50. { 0 , "#FFFFFFFF"},
  51. { 0.5, "#33333333"},
  52. { 1, "#FFFFFF22"}
  53. }
  54. }
  55. theme.button_shape = function(cr,width,height)
  56. return require("gears").shape.rounded_rect(cr,width,height,2)
  57. end
  58. theme.bar_bg_focus = {
  59. type = "linear",
  60. from = { 0, 20 },
  61. to = { 0, 0 },
  62. stops = { { 0, "#3C3B37"} , { 1 , "#59574E"} }
  63. }
  64. theme.bar_bg_normal = {
  65. type = "linear",
  66. from = { 0, 20 },
  67. to = { 0, 0 },
  68. stops = { { 0, "#3C3B37"} , { 1 , "#41403D"} }
  69. }
  70. theme.bar_bg_inverted_normal = {
  71. type = "linear",
  72. from = { 0, 20 },
  73. to = { 0, 0 },
  74. stops = { { 0 , "#41403D"}, { 1, "#3C3B37"} }
  75. }
  76. theme.bar_bg_inverted_focus = {
  77. type = "linear",
  78. from = { 0, 20 },
  79. to = { 0, 0 },
  80. stops = { { 0 , "#59574E"}, { 1, "#3C3B37"} }
  81. }
  82. theme.bar_border_color = {
  83. type = "radial",
  84. from = {bsize/2,bsize/(-3),bsize/8},
  85. to = {bsize/2,bsize/(-5),bsize*1},
  86. stops = {
  87. { 0 , "#FFFFFF66"},
  88. { 1, "#43434366"},
  89. }
  90. }
  91. theme.titlebar_bg_focus = theme.bar_bg_focus
  92. theme.titlebar_bg_normal = theme.bar_bg_normal
  93. local taglist_square_size = dpi(4)
  94. theme.taglist_squares_sel = theme_assets.taglist_squares_sel(
  95. taglist_square_size, theme.fg_normal
  96. )
  97. theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(
  98. taglist_square_size, theme.fg_normal
  99. )
  100. theme.menu_height = dpi(15)
  101. theme.menu_width = dpi(100)
  102. theme.systray_icon_spacing = 2
  103. -- Define the image to load
  104. theme.titlebar_ontop_button_normal_inactive = themes_path.."unity/titlebar/ontop_normal_inactive.png"
  105. theme.titlebar_ontop_button_focus_inactive = themes_path.."unity/titlebar/ontop_focus_inactive.png"
  106. theme.titlebar_ontop_button_normal_active = themes_path.."unity/titlebar/ontop_normal_active.png"
  107. theme.titlebar_ontop_button_focus_active = themes_path.."unity/titlebar/ontop_focus_active.png"
  108. theme.titlebar_sticky_button_normal_inactive = themes_path.."unity/titlebar/sticky_normal_inactive.png"
  109. theme.titlebar_sticky_button_focus_inactive = themes_path.."unity/titlebar/sticky_focus_inactive.png"
  110. theme.titlebar_sticky_button_normal_active = themes_path.."unity/titlebar/sticky_normal_active.png"
  111. theme.titlebar_sticky_button_focus_active = themes_path.."unity/titlebar/sticky_focus_active.png"
  112. theme.titlebar_floating_button_normal_inactive = themes_path.."unity/titlebar/floating_normal_inactive.png"
  113. theme.titlebar_floating_button_focus_inactive = themes_path.."unity/titlebar/floating_focus_inactive.png"
  114. theme.titlebar_floating_button_normal_active = themes_path.."unity/titlebar/floating_normal_active.png"
  115. theme.titlebar_floating_button_focus_active = themes_path.."unity/titlebar/floating_focus_active.png"
  116. theme = theme_assets.recolor_titlebar(theme,theme.fg_normal,"normal")
  117. theme = theme_assets.recolor_titlebar(theme,theme.fg_focus,"focus")
  118. theme.titlebar_close_button_normal = themes_path.."unity/titlebar/close_normal.png"
  119. theme.titlebar_close_button_focus = themes_path.."unity/titlebar/close_focus.png"
  120. theme.titlebar_minimize_button_normal = themes_path.."unity/titlebar/minimize_normal.png"
  121. theme.titlebar_minimize_button_focus = themes_path.."unity/titlebar/minimize_focus.png"
  122. theme.titlebar_maximized_button_normal_inactive = themes_path.."unity/titlebar/maximized_normal_inactive.png"
  123. theme.titlebar_maximized_button_focus_inactive = themes_path.."unity/titlebar/maximized_focus_inactive.png"
  124. theme.titlebar_maximized_button_normal_active = themes_path.."unity/titlebar/maximized_normal_active.png"
  125. theme.titlebar_maximized_button_focus_active = themes_path.."unity/titlebar/maximized_focus_active.png"
  126. -- You can use your own layout icons like this:
  127. theme.layout_fairh = themes_path.."unity/layouts/fairhw.png"
  128. theme.layout_fairv = themes_path.."unity/layouts/fairvw.png"
  129. theme.layout_floating = themes_path.."unity/layouts/floatingw.png"
  130. theme.layout_magnifier = themes_path.."unity/layouts/magnifierw.png"
  131. theme.layout_max = themes_path.."unity/layouts/maxw.png"
  132. theme.layout_fullscreen = themes_path.."unity/layouts/fullscreenw.png"
  133. theme.layout_tilebottom = themes_path.."unity/layouts/tilebottomw.png"
  134. theme.layout_tileleft = themes_path.."unity/layouts/tileleftw.png"
  135. theme.layout_tile = themes_path.."unity/layouts/tilew.png"
  136. theme.layout_tiletop = themes_path.."unity/layouts/tiletopw.png"
  137. theme.layout_spiral = themes_path.."unity/layouts/spiralw.png"
  138. theme.layout_dwindle = themes_path.."unity/layouts/dwindlew.png"
  139. theme.layout_cornernw = themes_path.."unity/layouts/cornernww.png"
  140. theme.layout_cornerne = themes_path.."unity/layouts/cornernew.png"
  141. theme.layout_cornersw = themes_path.."unity/layouts/cornersww.png"
  142. theme.layout_cornerse = themes_path.."unity/layouts/cornersew.png"
  143. -- Generate Awesome icon:
  144. theme.awesome_icon = theme_assets.awesome_icon(
  145. theme.menu_height, theme.bg_focus, theme.fg_focus
  146. )
  147. theme.hotkeys_border_width = 3
  148. theme.hotkeys_border_color = theme.bg_focus
  149. theme.hotkeys_modifiers_fg = theme.fg_normal
  150. theme.hotkeys_label_fg = theme.fg_normal
  151. ---theme.bgimage_outset
  152. -- Define the icon theme for application icons. If not set then the icons
  153. -- from /usr/share/icons and /usr/share/icons/hicolor will be used.
  154. theme.icon_theme = "Humanity"
  155. -- Icons
  156. local icons = {
  157. "battery-caution-charging-symbolic",
  158. "battery-empty-charging-symbolic",
  159. "battery-full-charging-symbolic",
  160. "battery-good-charging-symbolic",
  161. "battery-low-charging-symbolic"
  162. }
  163. for k,v in pairs(icons) do
  164. theme[v] = themes_path.."unity/icons/"..v..".png"
  165. theme[v:gsub("-charging","")] = themes_path.."unity/icons/"..v:gsub("-charging","")..".png"
  166. end
  167. theme["battery-full-charged-symbolic"] = themes_path.."unity/icons/battery-full-charged-symbolic.png"
  168. theme["battery-missing-symbolic"] = themes_path.."unity/icons/battery-missing-symbolic.png"
  169. theme["ac-adapter-symbolic"] = themes_path.."unity/icons/ac-adapter-symbolic.png"
  170. theme["backlight-symbolic"] = themes_path.."unity/icons/backlight-symbolic.png"
  171. theme["notifications-area-symbolic"] = themes_path.."unity/icons/notifications-area-symbolic.png"
  172. theme["mpc-previous-symbolic"] = themes_path.."unity/icons/mpc-previous-symbolic.png"
  173. theme["mpc-play-symbolic"] = themes_path.."unity/icons/mpc-play-symbolic.png"
  174. theme["mpc-pause-symbolic"] = themes_path.."unity/icons/mpc-pause-symbolic.png"
  175. theme["mpc-next-symbolic"] = themes_path.."unity/icons/mpc-next-symbolic.png"
  176. theme["action-poweroff-symbolic"] = themes_path.."unity/icons/action-poweroff-symbolic.png"
  177. theme["action-lock-screen-symbolic"] = themes_path.."unity/icons/action-lock-screen-symbolic.png"
  178. theme["action-suspend-symbolic"] = themes_path.."unity/icons/action-suspend-symbolic.png"
  179. theme["volume-high-symbolic"] = themes_path.."unity/icons/volume-high-symbolic.png"
  180. theme["volume-medium-symbolic"] = themes_path.."unity/icons/volume-medium-symbolic.png"
  181. theme["volume-low-symbolic"] = themes_path.."unity/icons/volume-low-symbolic.png"
  182. theme["volume-muted-symbolic"] = themes_path.."unity/icons/volume-muted-symbolic.png"
  183. theme.wallpaper = themes_path.."unity/background.png"
  184. theme.wallpapers_icon = themes_path.."unity/icons/wallpapers.png"
  185. -- Default icon for clients
  186. -- This one has to be baked as a surface to avoid memory leaks
  187. theme.icon_default = themes_path.."unity/icons/unknown-app.png"
  188. for k,v in pairs({
  189. "battery-caution-symbolic",
  190. "battery-empty-symbolic",
  191. "battery-full-symbolic",
  192. "battery-good-symbolic",
  193. "battery-low-symbolic",
  194. "battery-caution-charging-symbolic",
  195. "battery-empty-charging-symbolic",
  196. "battery-full-charging-symbolic",
  197. "battery-good-charging-symbolic",
  198. "battery-low-charging-symbolic",
  199. "battery-full-charged-symbolic",
  200. "battery-missing-symbolic",
  201. "ac-adapter-symbolic",
  202. "backlight-symbolic",
  203. "notifications-area-symbolic",
  204. "mpc-previous-symbolic",
  205. "mpc-play-symbolic",
  206. "mpc-pause-symbolic",
  207. "mpc-next-symbolic",
  208. "action-poweroff-symbolic",
  209. "action-lock-screen-symbolic",
  210. "action-suspend-symbolic",
  211. "wallpapers_icon",
  212. "icon_default",
  213. "volume-high-symbolic",
  214. "volume-medium-symbolic",
  215. "volume-low-symbolic",
  216. "volume-muted-symbolic"}) do
  217. if theme[v] and gears.filesystem.file_readable(theme[v]) then
  218. theme[v] = gears.color.recolor_image(theme[v],theme.fg_normal)
  219. end
  220. end
  221. -- Notification popups settings
  222. theme.notification_width = 240
  223. theme.notification_height = 60
  224. theme.widgets = {
  225. -- {{{ Widget base
  226. default = {
  227. container = {
  228. shape = function(cr,width,height)
  229. return require("gears").shape.rounded_rect(cr,width,height,2)
  230. end,
  231. bgimage_highlight = theme.bgimage_inset
  232. },
  233. button = {
  234. shape = theme.button_shape,
  235. onpress = function(widget)
  236. widget:set_bg(theme.bg_focus)
  237. end,
  238. onrelease = function(widget)
  239. widget:set_bg(theme.bg_normal)
  240. end
  241. },
  242. popup = {
  243. shape = function(cr,width,height)
  244. return gears.shape.rounded_rect(cr,width,height,4)
  245. end,
  246. root_shape = function(cr,width,height)
  247. return gears.shape.rounded_rect(cr,width,height,6)
  248. end,
  249. },
  250. titlebar = {
  251. hidden_size = 2,
  252. root_shape = function(cr,width,height)
  253. return gears.shape.partially_rounded_rect(cr,width,height,
  254. true,true,false,false,6) end,
  255. root_bg_focus = theme.titlebar_bg_focus,
  256. root_bg_normal = theme.titlebar_bg_normal,
  257. top = 2,
  258. bottom = 2,
  259. left = 3,
  260. right = 3
  261. },
  262. wibar = {
  263. shape = function(cr,width,height)
  264. return gears.shape.rounded_rect(cr,width,height,0)
  265. end,
  266. height = 26,
  267. width = 60,
  268. margins = 3,
  269. stretch = true
  270. },
  271. slider = {
  272. shape = function(cr,width,height)
  273. return gears.shape.rounded_rect(cr,width,height,0)
  274. end,
  275. height = 20,
  276. width = 140,
  277. bg_focus = theme.bg_normal,
  278. bg_normal = theme.bg_focus,
  279. handle_width = 8,
  280. handle_border_color = theme.bg_normal,
  281. handle_border_width = 2,
  282. bar_height = 6,
  283. bar_border_color = theme.bg_focus,
  284. bar_border_width = 2
  285. },
  286. checkbox = {
  287. width = 15,
  288. height = 15,
  289. shape = gears.shape.circle,
  290. border_width = 3,
  291. border_color = theme.bg_normal,
  292. paddings = {2,2,2,2}
  293. },
  294. },
  295. -- }}}
  296. -- {{{ Menus
  297. generic_menu = {
  298. base = {
  299. spacing = 2,
  300. menu_slide = true
  301. },
  302. button = {
  303. bg_normal = theme.bg_highlight,
  304. onpress = function(widget)
  305. widget:set_bg(theme.bg_focus)
  306. end,
  307. onrelease = function(widget)
  308. widget:set_bg(theme.bg_highlight)
  309. end,
  310. forced_height = 20,
  311. forced_width = 160
  312. },
  313. },
  314. -- }}}
  315. -- {{{ Popup activating icons
  316. generic_iconified_widget = {
  317. button = {
  318. margins = 1,
  319. bg_normal = "#00000000",
  320. onpress = function(widget)
  321. widget:set_bg(theme.bg_normal)
  322. end,
  323. onrelease = function(widget)
  324. widget:set_bg("#00000000")
  325. end
  326. }
  327. },
  328. -- }}}
  329. -- {{{ Bars/Panels/Menu popups
  330. generic_composite_widget = {
  331. base = {
  332. spacing = 2
  333. }
  334. },
  335. -- }}}
  336. -- {{{ Status panel widgets
  337. generic_status_widget = {
  338. container = {
  339. margins = 2,
  340. bg_normal = "#00000000",
  341. },
  342. button = {
  343. margins = 1,
  344. bg_normal = "#00000000",
  345. onpress = function() end,
  346. onrelease = function() end,
  347. }
  348. },
  349. -- }}}
  350. -- {{{ Various button lists
  351. generic_button_list = {
  352. button = {
  353. bg_normal = theme.bg_highlight,
  354. onpress = function(widget)
  355. widget:set_bg(theme.bg_focus)
  356. end,
  357. onrelease = function(widget)
  358. widget:set_bg(theme.bg_highlight)
  359. end,
  360. forced_width = 20,
  361. forced_height = 20
  362. },
  363. base = {
  364. spacing = 2
  365. }
  366. },
  367. -- }}}
  368. -- {{{ All widgets that fit into a single line
  369. generic_oneline_widget = {
  370. container = {
  371. bgimage_normal = theme.bgimage_inset
  372. },
  373. button = {
  374. margins = 2,
  375. onpress = function(widget)
  376. widget:set_bg(theme.bg_normal)
  377. end,
  378. onrelease = function(widget)
  379. widget:set_bg("#00000000")
  380. end,
  381. bg_normal = "#00000000"
  382. }
  383. },
  384. -- }}}
  385. -- {{{ All kinds of widget popups
  386. generic_popup = {
  387. button = {
  388. width = 180,
  389. height = 40
  390. },
  391. article = {
  392. icon_size = 30
  393. },
  394. },
  395. -- }}}
  396. soundclown = {
  397. --[[ --Uncomment to leetify that MPC
  398. container = {
  399. bg_normal = "#0c0c0c",
  400. fg_normal = "#00FF00"
  401. },
  402. ]]
  403. base = {
  404. width = 140
  405. },
  406. },
  407. subpanel = {
  408. container = {
  409. bgimage_normal = theme.bgimage_inset,
  410. bg_normal = theme.bar_bg_inverted_normal,
  411. margins = 0,
  412. shape = function(cr,width,height)
  413. return gears.shape.rounded_rect(cr,width,height,8)
  414. end
  415. }
  416. },
  417. taglist = {
  418. base = {
  419. spacing = 2,
  420. layout = require("wibox").layout.flex.horizontal
  421. },
  422. button = {
  423. bgimage_focus = theme.bgimage_inset,
  424. bgimage_normal = theme.bgimage_outset,
  425. },
  426. container = {
  427. margins = 3
  428. }
  429. },
  430. tasklist = {
  431. button = {
  432. width = 160,
  433. height = 44,
  434. margins = 5,
  435. shape_focus = theme.button_shape,
  436. shape_normal = theme.button_shape,
  437. shape_urgent = theme.button_shape,
  438. shape_minimize = theme.button_shape,
  439. bg_normal = theme.button_bg_normal,
  440. bg_focus = theme.button_bg_focus,
  441. bg_urgent = theme.bg_urgent,
  442. bg_minimize = theme.bg_minimize,
  443. shape_border_color_normal = theme.bar_border_color,
  444. shape_border_color_focus = theme.bar_border_color,
  445. shape_border_color_urgent = theme.bar_border_color,
  446. shape_border_color_minimize = theme.bar_border_color,
  447. shape_border_width_normal = dpi(1),
  448. shape_border_width_focus = dpi(1),
  449. shape_border_width_urgent = dpi(1),
  450. shape_border_width_minimize = dpi(1),
  451. }
  452. },
  453. launcher = {
  454. button = {
  455. margins = 5,
  456. bg_normal = theme.button_bg_normal,
  457. bg_focus = theme.button_bg_focus,
  458. shape_border_width = dpi(1),
  459. shape_border_color = theme.bar_border_color,
  460. onpress = function(widget)
  461. widget:set_bg(theme.button_bg_focus)
  462. end,
  463. onrelease = function(widget)
  464. widget:set_bg(theme.button_bg_normal)
  465. end
  466. }
  467. },
  468. lockscreen = {
  469. popup = {
  470. margins = 0
  471. }
  472. },
  473. lockbar = {
  474. base = {
  475. height = 22
  476. }
  477. },
  478. lockpanel = {
  479. base = {
  480. icon_height = 60,
  481. icon_width = 60,
  482. panel_height = 300,
  483. panel_width = 200,
  484. panel_bgimage = theme.bgimage_outset
  485. },
  486. container = {
  487. shape = function(cr,width,height)
  488. return gears.shape.rounded_rect(cr,width,height,8)
  489. end,
  490. shape_border_color = theme.bg_highlight,
  491. shape_border_width = dpi(2)
  492. }
  493. },
  494. systray = {
  495. container = {
  496. margins = 2,
  497. shape = function(cr,width,height)
  498. return gears.shape.rounded_rect(cr,width,height,4)
  499. end,
  500. shape_border_color = theme.bg_normal,
  501. shape_border_width = dpi(2)
  502. }
  503. },
  504. lock_clock = {
  505. textbox = {
  506. font = "Ubuntu Mono 20"
  507. }
  508. },
  509. titlebar = {
  510. titlebar_top = {
  511. onfocus = function(titlebar)
  512. local root = titlebar:get_children_by_id("titlebar_root")[1]
  513. root:set_bg(theme.titlebar_bg_focus)
  514. root:set_shape(function(cr,width,height)
  515. return gears.shape.partially_rounded_rect(
  516. cr,width,height,
  517. true,true,false,false,6) end)
  518. end,
  519. onunfocus = function(titlebar)
  520. local root = titlebar:get_children_by_id("titlebar_root")[1]
  521. root:set_bg(theme.titlebar_bg_normal)
  522. root:set_shape(function(cr,width,height)
  523. return gears.shape.partially_rounded_rect(
  524. cr,width,height,
  525. true,true,false,false,6) end)
  526. end,
  527. bg_focus = "#00000000",
  528. bg_normal = "#00000000",
  529. fg_focus = "#FAFAFA",
  530. fg_normal = theme.fg_normal,
  531. size = 22,
  532. spacing = 1
  533. },
  534. titlebar_left = {
  535. size = 2,
  536. bg_focus = "#3C3B37",
  537. bg_normal = "#3C3B37",
  538. },
  539. titlebar_right = {
  540. size = 2,
  541. bg_focus = "#3C3B37",
  542. bg_normal = "#3C3B37",
  543. },
  544. titlebar_bottom = {
  545. size = 2,
  546. bg_focus = "#3C3B37",
  547. bg_normal = "#3C3B37",
  548. }
  549. },
  550. wibar = {
  551. wibar_top = {
  552. bg_normal = theme.bar_bg_normal,
  553. fg_normal = theme.fg_normal,
  554. size = 22,
  555. },
  556. wibar_left = {
  557. bg_normal = "#0D0D0966",
  558. border_width = dpi(1),
  559. border_color = "#26262666"
  560. }
  561. }
  562. }
  563. local wibox = require("wibox")
  564. theme.templates = {
  565. templates = {
  566. titlebar = function(style)
  567. return function(layout,options)
  568. local margins = style.titlebar.margins
  569. if (style.titlebar.left or
  570. style.titlebar.right or
  571. style.titlebar.bottom or
  572. style.titlebar.top) then
  573. margins = nil
  574. end
  575. return {
  576. {
  577. gears.table.join({
  578. layout,
  579. margins = margins,
  580. layout = wibox.container.margin,
  581. left = style.titlebar.left,
  582. right = style.titlebar.right,
  583. bottom = style.titlebar.bottom,
  584. top = style.titlebar.top
  585. },options or {}),
  586. bgimage = style.titlebar.root_bgimage_normal,
  587. bg = style.titlebar.root_bg_normal,
  588. fg = style.titlebar.root_fg_normal,
  589. shape = style.titlebar.root_shape,
  590. shape_border_color = style.titlebar.root_shape_border_color,
  591. shape_border_width = style.titlebar.root_shape_border_width,
  592. widget = wibox.container.background,
  593. id = "titlebar_root"
  594. },
  595. layout = wibox.container.margin,
  596. left = style.titlebar.root_margin_left,
  597. right = style.titlebar.root_margin_right,
  598. top = style.titlebar.root_margin_top,
  599. bottom = style.titlebar.root_margin_bottom
  600. }
  601. end
  602. end,
  603. popup = function(style)
  604. return function(widget,options)
  605. return gears.table.join({
  606. widget = {
  607. {
  608. widget,
  609. margins = style.popup.margins,
  610. layout = wibox.container.margin
  611. },
  612. bg = style.popup.bg_normal,
  613. shape = style.popup.root_shape,
  614. widget = wibox.container.background
  615. },
  616. bg = "#00000000",
  617. shape = style.popup.shape,
  618. visible = false,
  619. ontop = true
  620. },options or {})
  621. end
  622. end
  623. }
  624. }
  625. return theme
  626. -- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80