diff --git a/assets/icons/maximize.svg b/assets/icons/maximize.svg new file mode 100644 index 0000000..626292e --- /dev/null +++ b/assets/icons/maximize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/minus.svg b/assets/icons/minus.svg new file mode 100644 index 0000000..9fae6d9 --- /dev/null +++ b/assets/icons/minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/unmaximize.svg b/assets/icons/unmaximize.svg new file mode 100644 index 0000000..e018969 --- /dev/null +++ b/assets/icons/unmaximize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/x.svg b/assets/icons/x.svg new file mode 100644 index 0000000..89927bb --- /dev/null +++ b/assets/icons/x.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/default_theme.lua b/default_theme.lua index 7e326f7..22aa389 100644 --- a/default_theme.lua +++ b/default_theme.lua @@ -111,31 +111,32 @@ theme.menu_width = dpi(256) --theme.bg_widget = "#cc0000" -- Define the image to load -theme.titlebar_close_button_normal = themes_path.."default/titlebar/close_normal.png" -theme.titlebar_close_button_focus = themes_path.."default/titlebar/close_focus.png" +theme.titlebar_close_button_normal = simple_awesome_path .. "/assets/icons/x.svg" +theme.titlebar_close_button_focus = theme.titlebar_close_button_normal +theme.titlebar_close_button_hover_bg_color = '#800' -theme.titlebar_minimize_button_normal = themes_path.."default/titlebar/minimize_normal.png" -theme.titlebar_minimize_button_focus = themes_path.."default/titlebar/minimize_focus.png" +theme.titlebar_maximized_button_normal_inactive = simple_awesome_path .. "/assets/icons/maximize.svg" +theme.titlebar_maximized_button_focus_inactive = theme.titlebar_maximized_button_normal_inactive +theme.titlebar_maximized_button_normal_active = simple_awesome_path .. "/assets/icons/unmaximize.svg" +theme.titlebar_maximized_button_focus_active = theme.titlebar_maximized_button_normal_active +theme.titlebar_maximized_button_hover_bg_color = '#555' + +theme.titlebar_minimize_button_normal = simple_awesome_path .. "/assets/icons/minus.svg" +theme.titlebar_minimize_button_focus = theme.titlebar_minimize_button_normal +theme.titlebar_minimize_button_hover_bg_color = '#555' theme.titlebar_ontop_button_normal_inactive = themes_path.."default/titlebar/ontop_normal_inactive.png" -theme.titlebar_ontop_button_focus_inactive = themes_path.."default/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_focus_inactive = theme.titlebar_ontop_button_normal_inactive theme.titlebar_ontop_button_normal_active = themes_path.."default/titlebar/ontop_normal_active.png" -theme.titlebar_ontop_button_focus_active = themes_path.."default/titlebar/ontop_focus_active.png" - -theme.titlebar_sticky_button_normal_inactive = themes_path.."default/titlebar/sticky_normal_inactive.png" -theme.titlebar_sticky_button_focus_inactive = themes_path.."default/titlebar/sticky_focus_inactive.png" -theme.titlebar_sticky_button_normal_active = themes_path.."default/titlebar/sticky_normal_active.png" -theme.titlebar_sticky_button_focus_active = themes_path.."default/titlebar/sticky_focus_active.png" +theme.titlebar_ontop_button_focus_active = theme.titlebar_ontop_button_normal_active +theme.titlebar_ontop_button_hover_bg_color = '#555' theme.titlebar_floating_button_normal_inactive = themes_path.."default/titlebar/floating_normal_inactive.png" -theme.titlebar_floating_button_focus_inactive = themes_path.."default/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_focus_inactive = theme.titlebar_floating_button_normal_inactive theme.titlebar_floating_button_normal_active = themes_path.."default/titlebar/floating_normal_active.png" -theme.titlebar_floating_button_focus_active = themes_path.."default/titlebar/floating_focus_active.png" +theme.titlebar_floating_button_focus_active = theme.titlebar_floating_button_normal_active +theme.titlebar_floating_button_hover_bg_color = '#555' -theme.titlebar_maximized_button_normal_inactive = themes_path.."default/titlebar/maximized_normal_inactive.png" -theme.titlebar_maximized_button_focus_inactive = themes_path.."default/titlebar/maximized_focus_inactive.png" -theme.titlebar_maximized_button_normal_active = themes_path.."default/titlebar/maximized_normal_active.png" -theme.titlebar_maximized_button_focus_active = themes_path.."default/titlebar/maximized_focus_active.png" theme.wallpaper = simple_awesome_path.."/assets/art/default_wallpaper.png" diff --git a/simple/init.lua b/simple/init.lua index ee9f4ca..a8bdf5f 100644 --- a/simple/init.lua +++ b/simple/init.lua @@ -15,6 +15,12 @@ local config = require("config") local hotkey = require("simple/core/hotkey") +-- +-- Misc components +-- +local titlebar = require("simple/titlebar") + + -- -- Awesome WM -- @@ -670,28 +676,34 @@ client.connect_signal("request::titlebars", function(c) awful.titlebar(c):setup { { - -- Left - awful.titlebar.widget.iconwidget(c), - buttons = buttons, - layout = wibox.layout.fixed.horizontal - }, - { - -- Middle { - -- Title - align = "center", - widget = awful.titlebar.widget.titlewidget(c) + awful.titlebar.widget.iconwidget(c), + buttons = buttons, + layout = wibox.layout.fixed.horizontal }, - buttons = buttons, - layout = wibox.layout.flex.horizontal + margins = 2, + widget = wibox.container.margin, }, { - -- Right - awful.titlebar.widget.floatingbutton(c), - awful.titlebar.widget.maximizedbutton(c), - awful.titlebar.widget.stickybutton(c), - awful.titlebar.widget.ontopbutton(c), - awful.titlebar.widget.closebutton(c), + { + { + -- Title + align = "left", + widget = awful.titlebar.widget.titlewidget(c) + }, + buttons = buttons, + layout = wibox.layout.flex.horizontal + }, + left = 8, + right = 8, + widget = wibox.container.margin, + }, + { + titlebar.widget.floatingbutton(c), + titlebar.widget.ontopbutton(c), + titlebar.widget.minimizebutton(c), + titlebar.widget.maximizedbutton(c), + titlebar.widget.closebutton(c), layout = wibox.layout.fixed.horizontal() }, layout = wibox.layout.align.horizontal diff --git a/simple/titlebar.lua b/simple/titlebar.lua new file mode 100644 index 0000000..1a89088 --- /dev/null +++ b/simple/titlebar.lua @@ -0,0 +1,47 @@ +local awful = require('awful') +local beautiful = require('beautiful') +local wibox = require('wibox') + +function button(c, image, hover_bg_color) + local background = wibox.container.background(image) + + background:connect_signal('mouse::enter', function() + background.bg = hover_bg_color + end) + + background:connect_signal('mouse::leave', function() + background.bg = nil + end) + + return background +end + +function closebutton(c) + return button(c, awful.titlebar.widget.closebutton(c), beautiful.titlebar_close_button_hover_bg_color) +end + +function maximizedbutton(c) + return button(c, awful.titlebar.widget.maximizedbutton(c), beautiful.titlebar_maximized_button_hover_bg_color) +end + +function minimizebutton(c) + return button(c, awful.titlebar.widget.minimizebutton(c), beautiful.titlebar_minimize_button_hover_bg_color) +end + +function ontopbutton(c) + return button(c, awful.titlebar.widget.ontopbutton(c), beautiful.titlebar_ontop_button_hover_bg_color) +end + +function floatingbutton(c) + return button(c, awful.titlebar.widget.floatingbutton(c), beautiful.titlebar_floating_button_hover_bg_color) +end + +return { + widget = { + closebutton = closebutton, + maximizedbutton = maximizedbutton, + minimizebutton = minimizebutton, + ontopbutton = ontopbutton, + floatingbutton = floatingbutton, + } +} \ No newline at end of file