about summary refs log tree commit diff
path: root/awesome
diff options
context:
space:
mode:
authorMcSinyx <vn.mcsinyx@gmail.com>2016-05-30 16:55:41 +0700
committerRaphael McSinyx <vn.mcsinyx@gmail.com>2016-11-20 16:43:38 +0700
commit33f963509eb04b956c0dfa1283d0a4d31c347bea (patch)
tree8d37374b8644e1ceaa59f636df472414be22263c /awesome
parent57a8d8360c85528fb477e76ef1a5f2eeb151be14 (diff)
downloaddotfiles-33f963509eb04b956c0dfa1283d0a4d31c347bea.tar.gz
Update 20160530
Diffstat (limited to 'awesome')
-rw-r--r--awesome/.config/awesome/rc.lua763
-rw-r--r--awesome/.config/awesome/themes/default/arrows/0.pngbin0 -> 276 bytes
-rw-r--r--awesome/.config/awesome/themes/default/arrows/1.pngbin0 -> 337 bytes
-rw-r--r--awesome/.config/awesome/themes/default/arrows/2.pngbin0 -> 274 bytes
-rw-r--r--awesome/.config/awesome/themes/default/arrows/3.pngbin0 -> 276 bytes
-rw-r--r--awesome/.config/awesome/themes/default/arrows/4.pngbin0 -> 276 bytes
-rw-r--r--awesome/.config/awesome/themes/default/arrows/5.pngbin0 -> 277 bytes
-rw-r--r--awesome/.config/awesome/themes/default/gradient-debian-big.png (renamed from awesome/.config/awesome/themes/gruvbox/gradient-debian-big.png)bin352996 -> 352996 bytes
-rw-r--r--awesome/.config/awesome/themes/default/submenu.pngbin0 -> 184 bytes
-rw-r--r--awesome/.config/awesome/themes/default/taglist/squarefw.pngbin0 -> 187 bytes
-rw-r--r--awesome/.config/awesome/themes/default/taglist/squarew.pngbin0 -> 193 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/close_focus.pngbin0 -> 666 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/close_normal.pngbin0 -> 849 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/floating_focus_active.pngbin0 -> 598 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/floating_focus_inactive.pngbin0 -> 584 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/floating_normal_active.pngbin0 -> 841 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/floating_normal_inactive.pngbin0 -> 564 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/maximized_focus_active.pngbin0 -> 1013 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/maximized_focus_inactive.pngbin0 -> 771 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/maximized_normal_active.pngbin0 -> 1524 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/maximized_normal_inactive.pngbin0 -> 744 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/ontop_focus_active.pngbin0 -> 774 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/ontop_focus_inactive.pngbin0 -> 702 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/ontop_normal_active.pngbin0 -> 1260 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/ontop_normal_inactive.pngbin0 -> 690 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/sticky_focus_active.pngbin0 -> 833 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/sticky_focus_inactive.pngbin0 -> 622 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/sticky_normal_active.pngbin0 -> 1434 bytes
-rw-r--r--awesome/.config/awesome/themes/default/titlebar/sticky_normal_inactive.pngbin0 -> 623 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/README.md12
-rw-r--r--awesome/.config/awesome/themes/gruvbox/awesome.png (renamed from awesome/.config/awesome/themes/gruvbox/awesome-icon.png)bin184 -> 184 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/background.png (renamed from awesome/.config/awesome/themes/gruvbox/background-1280x800.png)bin6232 -> 6232 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/gradient-debian.pngbin305404 -> 0 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/taglist/square.png (renamed from awesome/.config/awesome/themes/gruvbox/taglist/squarez.png)bin162 -> 162 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/taglist/squaref.png (renamed from awesome/.config/awesome/themes/gruvbox/taglist/squarefz.png)bin166 -> 166 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/theme.lua191
-rw-r--r--awesome/.config/awesome/themes/gruvbox/titlebar/close_focus.pngbin272 -> 161 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/titlebar/floating_focus_active.pngbin273 -> 161 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/titlebar/floating_focus_inactive.pngbin273 -> 161 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/titlebar/maximized_focus_active.pngbin271 -> 161 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/titlebar/maximized_focus_inactive.pngbin269 -> 161 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/titlebar/normal.pngbin272 -> 161 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/titlebar/ontop_focus_active.pngbin272 -> 161 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/titlebar/ontop_focus_inactive.pngbin272 -> 161 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/titlebar/sticky_focus_active.pngbin273 -> 161 bytes
-rw-r--r--awesome/.config/awesome/themes/gruvbox/titlebar/sticky_focus_inactive.pngbin272 -> 161 bytes
46 files changed, 559 insertions, 407 deletions
diff --git a/awesome/.config/awesome/rc.lua b/awesome/.config/awesome/rc.lua
index 7b41742..4785931 100644
--- a/awesome/.config/awesome/rc.lua
+++ b/awesome/.config/awesome/rc.lua
@@ -5,64 +5,78 @@ awful.rules = require("awful.rules")
 require("awful.autofocus")
 -- Widget and layout library
 local wibox = require("wibox")
+local vicious = require("vicious")
 -- Theme handling library
 local beautiful = require("beautiful")
 -- Notification library
 local naughty = require("naughty")
 local menubar = require("menubar")
--- Vicious and Lain
-local vicious = require("vicious")
 
 -- Load Debian menu entries
 require("debian.menu")
 
--- Launch a composting manager
---awful.util.spawn_with_shell("compton -r 6 -o .50 -l -9 -t -9 -c -C &")
-
 -- {{{ Error handling
 -- Check if awesome encountered an error during startup and fell back to
 -- another config (This code will only ever execute for the fallback config)
 if awesome.startup_errors then
-    naughty.notify({ preset = naughty.config.presets.critical,
-                     title = "Oops, there were errors during startup!",
-                     text = awesome.startup_errors })
+    naughty.notify({
+        preset = naughty.config.presets.critical,
+        title = "Oops, there were errors during startup!",
+        text = awesome.startup_errors
+    })
 end
 
 -- Handle runtime errors after startup
 do
     local in_error = false
-    awesome.connect_signal("debug::error", function (err)
-        -- Make sure we don't go into an endless error loop
-        if in_error then return end
-        in_error = true
-
-        naughty.notify({ preset = naughty.config.presets.critical,
-                         title = "Oops, an error happened!",
-                         text = err })
-        in_error = false
-    end)
+    awesome.connect_signal(
+        "debug::error",
+        function(err)
+            -- Make sure we don't go into an endless error loop
+            if in_error then return end
+            in_error = true
+
+            naughty.notify({
+                preset = naughty.config.presets.critical,
+                title = "Oops, an error happened!",
+                text = err
+            })
+            in_error = false
+        end
+    )
 end
 -- }}}
 
 -- {{{ Variable definitions
 -- Themes define colours, icons, font and wallpapers.
-beautiful.init("~/.config/awesome/themes/gruvbox/theme.lua")
-
+beautiful.init("/home/cnx/.config/awesome/themes/gruvbox/theme.lua")
+
+-- This is used later as the default terminal and editor to run.
+terminal = "x-terminal-emulator"
+editor = "gvim"
+editor_cmd = terminal .. " -e vim"
+
+-- Default modkey.
+-- Usually, Mod4 is the key with a logo between Control and Alt.
+-- If you do not like this or do not have such a key,
+-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
+-- However, you can use another modifier like Mod1, but it may interact with others.
 modkey = "Mod4"
 
 -- Table of layouts to cover with awful.layout.inc, order matters.
-local layouts =
-{
-    --lain.layout.uselessfair,
-    --lain.layout.uselessfair.horizontal,
+local layouts = {
+    --awful.layout.suit.floating,
+    --awful.layout.suit.tile.left,
+    --awful.layout.suit.tile.top,
     awful.layout.suit.fair,
     awful.layout.suit.fair.horizontal,
-    awful.layout.suit.magnifier,
+    --awful.layout.suit.spiral,
+    --awful.layout.suit.spiral.dwindle,
+    --awful.layout.suit.max,
     awful.layout.suit.max.fullscreen,
     awful.layout.suit.tile.bottom,
     awful.layout.suit.tile,
-    --lain.layout.uselesstile.bottom,
-    --lain.layout.uselesstile
+    awful.layout.suit.magnifier
 }
 -- }}}
 
@@ -80,37 +94,37 @@ awful.util.spawn_with_shell("hsetroot -solid '#282828'")
 tags = {}
 for s = 1, screen.count() do
     -- Each screen has its own tag table.
-    tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1])
+    tags[s] = awful.tag({1, 2, 3, 4, 5, 6, 7, 8, 9}, s, layouts[1])
 end
 -- }}}
 
 -- {{{ Menu
 -- Create a laucher widget and a main menu
-mymainmenu = awful.menu( debian.menu.Debian_menu.Debian )
+myawesomemenu = {
+   {"manual", terminal .. " -e man awesome"},
+   {"edit config", editor_cmd .. " " .. awesome.conffile},
+   {"restart", awesome.restart},
+   {"quit", awesome.quit}
+}
+
+mymainmenu = awful.menu({items = {
+    {"awesome", myawesomemenu, beautiful.awesome_icon},
+    {"Debian", debian.menu.Debian_menu.Debian},
+    {"open terminal", terminal}
+}})
+
+mylauncher = awful.widget.launcher({
+    image = beautiful.awesome_icon,
+    menu = mymainmenu
+})
 
 -- Menubar configuration
---menubar.utils.terminal = "uxterm" -- Set the terminal for applications that require it
+menubar.utils.terminal = terminal -- Set the terminal for applications that require it
 -- }}}
 
 -- {{{ Wibox
--- Create a wibox for each screen and add it
-mywibox = {}
-mypromptbox = {}
-mylayoutbox = {}
-mytaglist = {}
-mytaglist.buttons = awful.util.table.join(
-                    awful.button({ }, 1, awful.tag.viewonly),
-                    awful.button({ modkey }, 1, awful.client.movetotag),
-                    awful.button({ }, 3, awful.tag.viewtoggle),
-                    awful.button({ modkey }, 3, awful.client.toggletag),
-                    awful.button({ }, 4, function(t) awful.tag.viewnext(awful.tag.getscreen(t)) end),
-                    awful.button({ }, 5, function(t) awful.tag.viewprev(awful.tag.getscreen(t)) end)
-                    )
-
 -- Create a textclock widget
-myclock_text = awful.widget.textclock(
-    "<span color='#3c3836'> #%u %FT%R</span>",
-    60)
+myclock_text = awful.widget.textclock("<span color='#3c3836'> #%u %FT%R</span>")
 myclock = wibox.widget.background()
 myclock:set_widget(myclock_text)
 myclock:set_bg("#d65d0e")
@@ -123,7 +137,8 @@ vicious.register(
     function(widget, args)
         return("<span color='#3c3836'> CPU%03d%%</span>"):format(args[1])
     end,
-    5)
+    5
+)
 mycpuwidget = wibox.widget.background()
 mycpuwidget:set_widget(mycpuwidget_text)
 mycpuwidget:set_bg("#d79921")
@@ -136,7 +151,8 @@ vicious.register(
     function(widget, args)
         return("<span color='#3c3836'> MEM%03d%%</span>"):format(args[1])
     end,
-    5)
+    5
+)
 mymemwidget = wibox.widget.background()
 mymemwidget:set_widget(mymemwidget_text)
 mymemwidget:set_bg("#98971a")
@@ -147,72 +163,36 @@ vicious.register(
     mybatwidget_text,
     vicious.widgets.bat,
     function(widget, args)
-        return("<span color='#3c3836'> %s%03d%%</span>"):format(args[1],
-                                                                args[2])
+        return("<span color='#3c3836'> %s%03d%%</span>"):format(
+            args[1],
+            args[2]
+        )
     end,
     5,
-    "C11F")
+    "C11F"
+)
 mybatwidget = wibox.widget.background()
 mybatwidget:set_widget(mybatwidget_text)
 mybatwidget:set_bg("#689d6a")
 
 -- Create a volume widget
---function update_volume(widget)
---   local fd = io.popen("amixer sget Master")
---   local status = fd:read("*all")
---   fd:close()
---   -- local volume = tonumber(string.match(status, "(%d?%d?%d)%%")) / 100
---   local volume = string.match(status, "(%d?%d?%d)%%")
---   volume = string.format("VOL%03d", volume)
---   status = string.match(status, "%[(o[^%]]*)%]")
---   if string.find(status, "on", 1, true) then
---       volume = volume .. "%"
---   else
---       volume = volume .. "M"
---   end
---   widget:set_markup("<span color='#3c3836'> " .. volume .. "</span>")
---end
- 
 myvolwidget_text = wibox.widget.textbox()
---update_volume(myvolwidget_text)
 vicious.register(
     myvolwidget_text,
     vicious.widgets.volume,
     function(widget, args)
-        return("<span color='#3c3836'> %s%03d%%</span>"):format(args[2],
-                                                                args[1])
+        return("<span color='#3c3836'> %s%03d%%</span>"):format(
+            args[2],
+            args[1]
+        )
     end,
     1,
-    "Master")
+    "Master"
+)
 myvolwidget = wibox.widget.background()
 myvolwidget:set_widget(myvolwidget_text)
 myvolwidget:set_bg("#458588")
 
--- Create network usage widgets
---myupwidget_text = wibox.widget.textbox()
---vicious.register(
---    myupwidget_text,
---    vicious.widgets.net,
---    function (widget, args)
---        return ("<span color='#3c3836'> ↑%04.0fkB</span>"):format(args["{wlp2s2 up_kb}"])
---    end,
---    1)
---myupwidget = wibox.widget.background()
---myupwidget:set_widget(myupwidget_text)
---myupwidget:set_bg("#689d6a")
---
---mydownwidget_text = wibox.widget.textbox()
---vicious.register(
---    mydownwidget_text,
---    vicious.widgets.net,
---    function (widget, args)
---        return ("<span color='#3c3836'> ↓%04.0fkB</span>"):format(args["{wlp2s2 down_kb}"])
---    end,
---    1)
---mydownwidget = wibox.widget.background()
---mydownwidget:set_widget(mydownwidget_text)
---mydownwidget:set_bg("#458588")
-
 -- Arrows
 myarrow0 = wibox.widget.imagebox()
 myarrow0:set_image(beautiful.arrow0)
@@ -227,6 +207,85 @@ myarrow4:set_image(beautiful.arrow4)
 myarrow5 = wibox.widget.imagebox()
 myarrow5:set_image(beautiful.arrow5)
 
+-- Create a wibox for each screen and add it
+mywibox = {}
+mypromptbox = {}
+mylayoutbox = {}
+mytaglist = {}
+mytaglist.buttons = awful.util.table.join(
+    awful.button({}, 1, awful.tag.viewonly),
+    awful.button({modkey}, 1, awful.client.movetotag),
+    awful.button({}, 3, awful.tag.viewtoggle),
+    awful.button({modkey}, 3, awful.client.toggletag),
+    awful.button(
+        {},
+        4,
+        function(t)
+            awful.tag.viewnext(awful.tag.getscreen(t))
+        end
+    ),
+    awful.button(
+        {},
+        5,
+        function(t)
+            awful.tag.viewprev(awful.tag.getscreen(t))
+        end
+    )
+)
+mytasklist = {}
+mytasklist.buttons = awful.util.table.join(
+    awful.button(
+        {},
+        1,
+        function(c)
+            if c == client.focus then
+                c.minimized = true
+            else
+                -- Without this, the following
+                -- :isvisible() makes no sense
+                c.minimized = false
+                if not c:isvisible() then
+                    awful.tag.viewonly(c:tags()[1])
+                end
+                -- This will also un-minimize
+                -- the client, if needed
+                client.focus = c
+                c:raise()
+            end
+        end
+    ),
+    awful.button(
+        {},
+        3,
+        function()
+            if instance then
+                instance:hide()
+                instance = nil
+            else
+                instance = awful.menu.clients({
+                    theme = {width = 250}
+                })
+            end
+        end
+    ),
+    awful.button(
+        {},
+        4,
+        function()
+            awful.client.focus.byidx(1)
+            if client.focus then client.focus:raise() end
+        end
+    ),
+    awful.button(
+        {},
+        5,
+        function()
+            awful.client.focus.byidx(-1)
+            if client.focus then client.focus:raise() end
+        end
+    )
+)
+
 for s = 1, screen.count() do
     -- Create a promptbox for each screen
     mypromptbox[s] = awful.widget.prompt({prompt = " "})
@@ -234,30 +293,40 @@ for s = 1, screen.count() do
     -- We need one layoutbox per screen.
     mylayoutbox[s] = awful.widget.layoutbox(s)
     mylayoutbox[s]:buttons(awful.util.table.join(
-                           awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
-                           awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
-                           awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
-                           awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
+            awful.button({}, 1, function() awful.layout.inc(layouts, 1) end),
+            awful.button({}, 3, function() awful.layout.inc(layouts, -1) end),
+            awful.button({}, 4, function() awful.layout.inc(layouts, 1) end),
+            awful.button({}, 5, function() awful.layout.inc(layouts, -1) end)
+    ))
     -- Create a taglist widget
-    mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons)
+    mytaglist[s] = awful.widget.taglist(
+        s,
+        awful.widget.taglist.filter.all,
+        mytaglist.buttons
+    )
+
+    -- Create a tasklist widget
+    mytasklist[s] = awful.widget.tasklist(
+        s,
+        awful.widget.tasklist.filter.currenttags,
+        mytasklist.buttons
+    )
 
     -- Create the wibox
-    mywibox[s] = awful.wibox({ position = "top", height = "24", screen = s })
+    mywibox[s] = awful.wibox({position = "top", height = "24", screen = s})
 
     -- Widgets that are aligned to the left
     local left_layout = wibox.layout.fixed.horizontal()
+    --left_layout:add(mylauncher)
     left_layout:add(myclock)
-    --left_layout:add(myarrow0)
     left_layout:add(myarrow1)
     left_layout:add(mycpuwidget)
     left_layout:add(myarrow2)
     left_layout:add(mymemwidget)
     left_layout:add(myarrow3)
-    --left_layout:add(myupwidget)
     left_layout:add(mybatwidget)
     left_layout:add(myarrow4)
     left_layout:add(myvolwidget)
-    --left_layout:add(mydownwidget)
     left_layout:add(myarrow5)
     left_layout:add(mypromptbox[s])
 
@@ -270,6 +339,7 @@ for s = 1, screen.count() do
     -- Now bring it all together (with the tasklist in the middle)
     local layout = wibox.layout.align.horizontal()
     layout:set_left(left_layout)
+    --layout:set_middle(mytasklist[s])
     layout:set_right(right_layout)
 
     mywibox[s]:set_widget(layout)
@@ -278,172 +348,264 @@ end
 
 -- {{{ Mouse bindings
 root.buttons(awful.util.table.join(
-    awful.button({ }, 3, function () mymainmenu:toggle() end),
-    awful.button({ }, 4, awful.tag.viewnext),
-    awful.button({ }, 5, awful.tag.viewprev)
+    awful.button({}, 3, function() mymainmenu:toggle() end),
+    awful.button({}, 4, awful.tag.viewnext),
+    awful.button({}, 5, awful.tag.viewprev)
 ))
 -- }}}
 
 -- {{{ Key bindings
 globalkeys = awful.util.table.join(
-    awful.key({ modkey,           }, "Left",   awful.tag.viewprev       ),
-    awful.key({ modkey,           }, "Right",  awful.tag.viewnext       ),
-    awful.key({ modkey,           }, "Escape", awful.tag.history.restore),
-
-    awful.key({ modkey,           }, "0",      function () awful.screen.focus_relative( 1) end),
-    awful.key({ modkey,           }, "j",
-        function ()
+    awful.key({modkey}, "Left", awful.tag.viewprev),
+    awful.key({modkey}, "Right", awful.tag.viewnext),
+    awful.key({modkey}, "Escape", awful.tag.history.restore),
+
+    awful.key(
+        {modkey},
+        "j",
+        function()
             awful.client.focus.byidx( 1)
             if client.focus then client.focus:raise() end
-        end),
-    awful.key({ modkey,           }, "k",
-        function ()
+        end
+    ),
+    awful.key(
+        {modkey},
+        "k",
+        function()
             awful.client.focus.byidx(-1)
             if client.focus then client.focus:raise() end
-        end),
-    awful.key({ modkey, "Shift"   }, "w", function () mymainmenu:show() end),
+        end
+    ),
+    awful.key({modkey}, "w", function() mymainmenu:show() end),
 
     -- Layout manipulation
-    awful.key({ modkey, "Shift"   }, "j", function () awful.client.swap.byidx(  1)    end),
-    awful.key({ modkey, "Shift"   }, "k", function () awful.client.swap.byidx( -1)    end),
-    awful.key({ modkey,           }, "u", awful.client.urgent.jumpto),
-    awful.key({ modkey,           }, "Tab",
-        function ()
+    awful.key(
+        {modkey, "Shift"},
+        "j",
+        function() awful.client.swap.byidx(1) end
+    ),
+    awful.key(
+        {modkey, "Shift"},
+        "k",
+        function() awful.client.swap.byidx(-1) end
+    ),
+    awful.key({modkey}, "0", function() awful.screen.focus_relative(1) end),
+    awful.key({modkey}, "u", awful.client.urgent.jumpto),
+    awful.key(
+        {modkey},
+        "Tab",
+        function()
             awful.client.focus.history.previous()
-            if client.focus then
-                client.focus:raise()
-            end
-        end),
+            if client.focus then client.focus:raise() end
+        end
+    ),
 
     -- Standard program
-    awful.key({ modkey,           }, "t",     function () awful.util.spawn("uxterm") end),
-    awful.key({ modkey, "Shift"   }, "t",     function () awful.util.spawn("uxterm -e su -") end),
-    awful.key({ modkey,           }, "b",     function () awful.util.spawn("x-www-browser") end),
-    awful.key({ modkey,           }, "v",     function () awful.util.spawn("gvim") end),
-    awful.key({ modkey,           }, "f",     function () awful.util.spawn("spacefm") end),
-    awful.key({ modkey,           }, "p",     function () awful.util.spawn("uxterm -e python3") end),
-    awful.key({ modkey,           }, "m",     function () awful.util.spawn("uxterm -e mutt") end),
-    awful.key({ modkey,           }, "r",     function () awful.util.spawn("uxterm -e ranger") end),
-    awful.key({ modkey,           }, "c",     function () awful.util.spawn("uxterm -e cmus") end),
-    awful.key({ modkey,           }, "w",     function () awful.util.spawn("uxterm -e weechat") end),
-    awful.key({ modkey,           }, "s",     function () awful.util.spawn("slock xset dpms force off") end),
-    awful.key({ modkey, "Shift"   }, "s",     function () awful.util.spawn("slock systemctl suspend -i") end),
-    awful.key({ modkey, "Shift"   }, "r", awesome.restart),
-    awful.key({ modkey, "Shift"   }, "q", awesome.quit),
-
-    awful.key({ modkey,           }, "l",     function () awful.tag.incmwfact( 0.05)    end),
-    awful.key({ modkey,           }, "h",     function () awful.tag.incmwfact(-0.05)    end),
-    awful.key({ modkey, "Shift"   }, "h",     function () awful.tag.incnmaster( 1)      end),
-    awful.key({ modkey, "Shift"   }, "l",     function () awful.tag.incnmaster(-1)      end),
-    awful.key({ modkey, "Control" }, "h",     function () awful.tag.incncol( 1)         end),
-    awful.key({ modkey, "Control" }, "l",     function () awful.tag.incncol(-1)         end),
-    awful.key({ modkey,           }, "Return", function () awful.layout.inc(layouts,  1) end),
-    awful.key({ modkey, "Shift"   }, "Return", function () awful.layout.inc(layouts, -1) end),
-
-    awful.key({ modkey, "Shift"   }, "n", awful.client.restore),
-
+    awful.key({modkey, "Control"}, "r", awesome.restart),
+    -- Not needed / Too dangerous
+    --awful.key({modkey, "Shift"}, "q", awesome.quit),
+    awful.key({modkey}, "l", function() awful.tag.incmwfact(0.05) end),
+    awful.key({modkey}, "h", function() awful.tag.incmwfact(-0.05) end),
+    awful.key({modkey, "Shift"}, "h", function() awful.tag.incnmaster(1) end),
+    awful.key({modkey, "Shift"}, "l", function() awful.tag.incnmaster(-1) end),
+    awful.key({modkey, "Control"}, "h", function() awful.tag.incncol(1) end),
+    awful.key({modkey, "Control"}, "l", function() awful.tag.incncol(-1) end),
+    awful.key({modkey}, "Return", function() awful.layout.inc(layouts, 1) end),
+    awful.key(
+        {modkey, "Shift"},
+        "Return",
+        function() awful.layout.inc(layouts, -1) end
+    ),
+    -- Not used
+    --awful.key({modkey, "Control"}, "n", awful.client.restore),
     -- Prompt
-    awful.key({ modkey, "Shift"   }, ";",     function () mypromptbox[mouse.screen]:run() end),
-
-    awful.key({ modkey }, "x",
-              function ()
-                  awful.prompt.run({ prompt = "Run Lua code: " },
-                  mypromptbox[mouse.screen].widget,
-                  awful.util.eval, nil,
-                  awful.util.getdir("cache") .. "/history_eval")
-              end)
+    awful.key(
+        {modkey, "Shift"},
+        ";",
+        function() mypromptbox[mouse.screen]:run() end
+    ),
+    awful.key(
+        {modkey},
+        "x",
+        function()
+            awful.prompt.run({prompt = "Run Lua code: "},
+            mypromptbox[mouse.screen].widget,
+            awful.util.eval, nil,
+            awful.util.getdir("cache") .. "/history_eval")
+        end
+    ),
     -- Menubar
-    -- awful.key({ modkey }, "p", function() menubar.show() end)
+    awful.key({modkey, "Shift"}, "p", function() menubar.show() end),
+
+    -- Applications
+    awful.key({modkey}, "t", function() awful.util.spawn(terminal) end),
+    awful.key(
+        {modkey, "Shift"},
+        "t",
+        function() awful.util.spawn(terminal .. " -e su -") end
+    ),
+    awful.key(
+        {modkey},
+        "p",
+        function() awful.util.spawn(terminal .. " -e python3") end
+    ),
+    awful.key(
+        {modkey},
+        "r",
+        function() awful.util.spawn(terminal .. " -e ranger") end
+    ),
+    awful.key(
+        {modkey},
+        "c",
+        function() awful.util.spawn(terminal .. " -e cmus") end
+    ),
+    awful.key(
+        {modkey},
+        "m",
+        function() awful.util.spawn(terminal .. " -e mutt") end
+    ),
+    awful.key({modkey}, "v", function() awful.util.spawn(editor) end),
+    awful.key({modkey}, "f", function() awful.util.spawn("firefox") end),
+    awful.key({modkey}, "z", function() awful.util.spawn("zathura") end),
+    awful.key({modkey}, "s", function() awful.util.spawn("slock") end),
+    awful.key(
+        {modkey, "Shift"},
+        "s",
+        function() awful.util.spawn("slock systemctl -i suspend") end
+    )
 )
 
 -- Adjusting volumes
-globalkeys = awful.util.table.join(globalkeys, awful.key({ }, "XF86AudioRaiseVolume", function()
-    awful.util.spawn("amixer sset Master 5%+", false)
-    --update_volume(myvolwidget_text)
-end))
-globalkeys = awful.util.table.join(globalkeys, awful.key({ }, "XF86AudioLowerVolume", function()
-    awful.util.spawn("amixer sset Master 5%-", false)
-    --update_volume(myvolwidget_text)
-end))
-globalkeys = awful.util.table.join(globalkeys, awful.key({ }, "XF86AudioMute", function()
-    awful.util.spawn("amixer sset Master toggle", false)
-    -- The 2 following lines were needed at least on my configuration, otherwise it would get stuck muted
-    -- However, if the channel you're using is "Speaker" or "Headpphone"
-    -- instead of "Master", you'll have to comment out their corresponding line below.
-    awful.util.spawn("amixer sset Speaker unmute", false)
-    awful.util.spawn("amixer sset Headphone unmute", false)
-    --update_volume(myvolwidget_text)
-end))
+globalkeys = awful.util.table.join(
+    globalkeys,
+    awful.key({}, "XF86AudioRaiseVolume",
+    function() awful.util.spawn("amixer sset Master 5%+", false) end)
+)
+globalkeys = awful.util.table.join(
+    globalkeys,
+    awful.key(
+        {},
+        "XF86AudioLowerVolume",
+        function() awful.util.spawn("amixer sset Master 5%-", false) end
+    )
+)
+globalkeys = awful.util.table.join(
+    globalkeys,
+    awful.key(
+        {},
+        "XF86AudioMute",
+        function()
+            awful.util.spawn("amixer sset Master toggle", false)
+            -- The 2 following lines were needed at least on my configuration,
+            -- otherwise it would get stuck muted. However, if the channel
+            -- you're using is "Speaker" or "Headpphone" instead of "Master",
+            -- you'll have to comment out their corresponding line below.
+            awful.util.spawn("amixer sset Speaker unmute", false)
+            awful.util.spawn("amixer sset Headphone unmute", false)
+        end
+    )
+)
 
 clientkeys = awful.util.table.join(
-    awful.key({ modkey, "Shift"   }, "f",      function (c) c.fullscreen = not c.fullscreen  end),
-    awful.key({ modkey,           }, "q",      function (c) c:kill()                         end),
-    --awful.key({ modkey, "Control" }, "Return",  awful.client.floating.toggle                     ),
-    awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
-    awful.key({ modkey, "Shift"   }, "0",      awful.client.movetoscreen                        ),
-    --awful.key({ modkey,           }, "t",      function (c) c.ontop = not c.ontop            end),
-    --awful.key({ modkey,           }, "m",
-    --    function (c)
+    awful.key({modkey}, "q", function(c) c:kill() end),
+    awful.key(
+        {modkey, "Control"},
+        "Return",
+        function(c) c:swap(awful.client.getmaster()) end
+    ),
+    awful.key({modkey, "Shift"}, "0", awful.client.movetoscreen),
+    awful.key(
+        {modkey, "Control"},
+        "t",
+        function(c) awful.titlebar.toggle(c) end
+    )
+    -- Not used
+    --awful.key({modkey}, "f", function(c) c.fullscreen = not c.fullscreen end),
+    --awful.key({modkey, "Control"}, "space", awful.client.floating.toggle),
+    --awful.key({modkey}, "t", function(c) c.ontop = not c.ontop end),
+    --awful.key(
+    --    {modkey},
+    --    "n",
+    --    function(c)
+    --        -- The client currently has the input focus, so it cannot be
+    --        -- minimized, since minimized clients can't have the focus.
+    --        c.minimized = true
+    --    end
+    --),
+    --awful.key(
+    --    {modkey},
+    --    "m",
+    --    function(c)
     --        c.maximized_horizontal = not c.maximized_horizontal
     --        c.maximized_vertical   = not c.maximized_vertical
-    --    end),
-    awful.key({ modkey,           }, "n",
-        function (c)
-            -- The client currently has the input focus, so it cannot be
-            -- minimized, since minimized clients can't have the focus.
-            c.minimized = true
-        end)
+    --    end
+    --)
 )
 
 -- Bind all key numbers to tags.
 -- Be careful: we use keycodes to make it works on any keyboard layout.
 -- This should map on the top row of your keyboard, usually 1 to 9.
 for i = 1, 9 do
-    globalkeys = awful.util.table.join(globalkeys,
+    globalkeys = awful.util.table.join(
+        globalkeys,
         -- View tag only.
-        awful.key({ modkey }, "#" .. i + 9,
-                  function ()
-                        local screen = mouse.screen
-                        local tag = awful.tag.gettags(screen)[i]
-                        if tag then
-                           awful.tag.viewonly(tag)
-                        end
-                  end),
+        awful.key(
+            {modkey},
+            "#" .. i + 9,
+            function()
+                  local screen = mouse.screen
+                  local tag = awful.tag.gettags(screen)[i]
+                  if tag then
+                     awful.tag.viewonly(tag)
+                  end
+            end
+        ),
         -- Toggle tag.
-        awful.key({ modkey, "Control" }, "#" .. i + 9,
-                  function ()
-                      local screen = mouse.screen
-                      local tag = awful.tag.gettags(screen)[i]
-                      if tag then
-                         awful.tag.viewtoggle(tag)
-                      end
-                  end),
+        awful.key(
+            {modkey, "Control"},
+            "#" .. i + 9,
+            function()
+                local screen = mouse.screen
+                local tag = awful.tag.gettags(screen)[i]
+                if tag then
+                   awful.tag.viewtoggle(tag)
+                end
+            end
+        ),
         -- Move client to tag.
-        awful.key({ modkey, "Shift" }, "#" .. i + 9,
-                  function ()
-                      if client.focus then
-                          local tag = awful.tag.gettags(client.focus.screen)[i]
-                          if tag then
-                              awful.client.movetotag(tag)
-                          end
-                     end
-                  end),
+        awful.key(
+            {modkey, "Shift"},
+            "#" .. i + 9,
+            function()
+                if client.focus then
+                    local tag = awful.tag.gettags(client.focus.screen)[i]
+                    if tag then
+                        awful.client.movetotag(tag)
+                    end
+               end
+            end
+        ),
         -- Toggle tag.
-        awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
-                  function ()
-                      if client.focus then
-                          local tag = awful.tag.gettags(client.focus.screen)[i]
-                          if tag then
-                              awful.client.toggletag(tag)
-                          end
-                      end
-                  end))
+        awful.key(
+            {modkey, "Control", "Shift"},
+            "#" .. i + 9,
+            function()
+                if client.focus then
+                    local tag = awful.tag.gettags(client.focus.screen)[i]
+                    if tag then
+                        awful.client.toggletag(tag)
+                    end
+                end
+            end
+        )
+    )
 end
 
 clientbuttons = awful.util.table.join(
-    awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
-    awful.button({ modkey }, 1, awful.mouse.client.move),
-    awful.button({ modkey }, 3, awful.mouse.client.resize))
+    awful.button({}, 1, function(c) client.focus = c; c:raise() end),
+    awful.button({modkey}, 1, awful.mouse.client.move),
+    awful.button({modkey}, 3, awful.mouse.client.resize)
+)
 
 -- Set keys
 root.keys(globalkeys)
@@ -453,78 +615,90 @@ root.keys(globalkeys)
 -- Rules to apply to new clients (through the "manage" signal).
 awful.rules.rules = {
     -- All clients will match this rule.
-    { rule = { },
-      properties = { border_width = beautiful.border_width,
-                     border_color = beautiful.border_normal,
-                     focus = awful.client.focus.filter,
-                     size_hints_honor = false,
-                     raise = true,
-                     keys = clientkeys,
-                     buttons = clientbuttons } },
-    --{ rule = { class = "X-terminal-emulator" }, 
-    --  properties = { size_hints_honor = false } },
-    --{ rule = { class = "Gvim" }, 
-    --  properties = { size_hints_honor = false } },
-    { rule = { class = "Volti-mixer" },
-      properties = { floating = true } },
-    { rule = { class = "vlc" },
-      properties = { floating = true } },
-    { rule = { class = "Gcolor2" },
-      properties = { floating = true } },
-    { rule = { class = "pinentry" },
-      properties = { floating = true } },
-    { rule = { class = "Twf" },
-      properties = { floating = true } },
-    { rule = { class = "Galculator" },
-      properties = { floating = true } },
+    {
+        rule = {},
+        properties = {
+            border_width = beautiful.border_width,
+            border_color = beautiful.border_normal,
+            size_hints_honor = false,
+            focus = awful.client.focus.filter,
+            raise = true,
+            keys = clientkeys,
+            buttons = clientbuttons
+        }
+    },
+    --{rule = {class = "MPlayer"}, properties = {floating = true}},
+    --{rule = {class = "pinentry"}, properties = {floating = true}},
+    --{rule = {class = "gimp"}, properties = {floating = true}},
+    {rule = {class = "Gcolor2"}, properties = {floating = true}},
+    {rule = {class = "Torbrowser-launcher"}, properties = {floating = true}},
+    {rule = {class = "Twf"}, properties = {floating = true}},
     -- Set Firefox to always map on tags number 2 of screen 1.
-    -- { rule = { class = "Firefox" },
-    --   properties = { tag = tags[1][2] } },
+    --{rule = {class = "Firefox"}, properties = {tag = tags[1][2]}},
 }
 -- }}}
 
 -- {{{ Signals
--- Signal function to execute when a new client appears.
-client.connect_signal("manage", function (c, startup)
-    -- Enable sloppy focus
-    c:connect_signal("mouse::enter", function(c)
-        if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
-            and awful.client.focus.filter(c) then
-            client.focus = c
-        end
-    end)
+-- Signal functionto execute when a new client appears.
+client.connect_signal(
+    "manage",
+    function(c, startup)
+        -- Enable sloppy focus
+        c:connect_signal(
+            "mouse::enter",
+            function(c)
+                if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
+                        and awful.client.focus.filter(c) then
+                    client.focus = c
+                end
+            end
+        )
 
     if not startup then
         -- Set the windows at the slave,
         -- i.e. put it at the end of others instead of setting it master.
         -- awful.client.setslave(c)
-
-        -- Put windows in a smart way, only if they does not set an initial position.
-        if not c.size_hints.user_position and not c.size_hints.program_position then
+        -- Put windows in a smart way, only if they does not set an initial
+        -- position.
+        if not c.size_hints.user_position
+                and not c.size_hints.program_position then
             awful.placement.no_overlap(c)
             awful.placement.no_offscreen(c)
         end
-    elseif not c.size_hints.user_position and not c.size_hints.program_position then
+    elseif not c.size_hints.user_position
+            and not c.size_hints.program_position then
         -- Prevent clients from being unreachable after screen count change
         awful.placement.no_offscreen(c)
     end
 
-    --local titlebars_enabled = true
-    --if titlebars_enabled and (c.type == "normal" or c.type == "dialog") then
-    if awful.client.floating.get(c) then
+    local titlebars_enabled = true
+    if titlebars_enabled and (c.type == "normal" or c.type == "dialog") then
         -- buttons for the titlebar
         local buttons = awful.util.table.join(
-                awful.button({ }, 1, function()
+            awful.button(
+                {},
+                1,
+                function()
                     client.focus = c
                     c:raise()
                     awful.mouse.client.move(c)
-                end),
-                awful.button({ }, 3, function()
+                end
+            ),
+            awful.button(
+                {},
+                3,
+                function()
                     client.focus = c
                     c:raise()
                     awful.mouse.client.resize(c)
-                end)
-                )
+                end
+            )
+        )
+
+        -- Widgets that are aligned to the right
+        local right_layout = wibox.layout.fixed.horizontal()
+        --right_layout:add(awful.titlebar.widget.iconwidget(c))
+        right_layout:buttons(buttons)
 
         -- Widgets that are aligned to the left
         local left_layout = wibox.layout.fixed.horizontal()
@@ -536,20 +710,31 @@ client.connect_signal("manage", function (c, startup)
 
         -- The title goes in the middle
         local middle_layout = wibox.layout.flex.horizontal()
-        local title = awful.titlebar.widget.titlewidget(c)
-        title:set_align("center")
-        middle_layout:add(title)
+        --local title = awful.titlebar.widget.titlewidget(c)
+        --title:set_align("center")
+        --middle_layout:add(title)
         middle_layout:buttons(buttons)
 
         -- Now bring it all together
         local layout = wibox.layout.align.horizontal()
         layout:set_left(left_layout)
+        layout:set_right(right_layout)
         layout:set_middle(middle_layout)
 
-        awful.titlebar(c):set_widget(layout)
+        awful.titlebar(c, {size = "6"}):set_widget(layout)
+    end
+
+    if not awful.client.floating.get(c) then
+        awful.titlebar.hide(c)
     end
 end)
 
-client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
-client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
+client.connect_signal(
+    "focus",
+    function(c) c.border_color = beautiful.border_focus end
+)
+client.connect_signal(
+    "unfocus",
+    function(c) c.border_color = beautiful.border_normal end
+)
 -- }}}
diff --git a/awesome/.config/awesome/themes/default/arrows/0.png b/awesome/.config/awesome/themes/default/arrows/0.png
new file mode 100644
index 0000000..9acbc37
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/arrows/0.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/arrows/1.png b/awesome/.config/awesome/themes/default/arrows/1.png
new file mode 100644
index 0000000..29ad5b0
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/arrows/1.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/arrows/2.png b/awesome/.config/awesome/themes/default/arrows/2.png
new file mode 100644
index 0000000..4b6a25f
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/arrows/2.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/arrows/3.png b/awesome/.config/awesome/themes/default/arrows/3.png
new file mode 100644
index 0000000..5d40ead
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/arrows/3.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/arrows/4.png b/awesome/.config/awesome/themes/default/arrows/4.png
new file mode 100644
index 0000000..c821055
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/arrows/4.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/arrows/5.png b/awesome/.config/awesome/themes/default/arrows/5.png
new file mode 100644
index 0000000..47c8db0
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/arrows/5.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/gradient-debian-big.png b/awesome/.config/awesome/themes/default/gradient-debian-big.png
index 6c51fff..6c51fff 100644
--- a/awesome/.config/awesome/themes/gruvbox/gradient-debian-big.png
+++ b/awesome/.config/awesome/themes/default/gradient-debian-big.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/submenu.png b/awesome/.config/awesome/themes/default/submenu.png
new file mode 100644
index 0000000..6f9e9c5
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/submenu.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/taglist/squarefw.png b/awesome/.config/awesome/themes/default/taglist/squarefw.png
new file mode 100644
index 0000000..107fdb1
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/taglist/squarefw.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/taglist/squarew.png b/awesome/.config/awesome/themes/default/taglist/squarew.png
new file mode 100644
index 0000000..208ec0c
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/taglist/squarew.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/close_focus.png b/awesome/.config/awesome/themes/default/titlebar/close_focus.png
new file mode 100644
index 0000000..a5b7958
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/close_focus.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/close_normal.png b/awesome/.config/awesome/themes/default/titlebar/close_normal.png
new file mode 100644
index 0000000..df06784
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/close_normal.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/floating_focus_active.png b/awesome/.config/awesome/themes/default/titlebar/floating_focus_active.png
new file mode 100644
index 0000000..0eaa397
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/floating_focus_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/floating_focus_inactive.png b/awesome/.config/awesome/themes/default/titlebar/floating_focus_inactive.png
new file mode 100644
index 0000000..9b71af1
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/floating_focus_inactive.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/floating_normal_active.png b/awesome/.config/awesome/themes/default/titlebar/floating_normal_active.png
new file mode 100644
index 0000000..1b5acea
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/floating_normal_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/floating_normal_inactive.png b/awesome/.config/awesome/themes/default/titlebar/floating_normal_inactive.png
new file mode 100644
index 0000000..9a3841f
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/floating_normal_inactive.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/maximized_focus_active.png b/awesome/.config/awesome/themes/default/titlebar/maximized_focus_active.png
new file mode 100644
index 0000000..78a2914
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/maximized_focus_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/maximized_focus_inactive.png b/awesome/.config/awesome/themes/default/titlebar/maximized_focus_inactive.png
new file mode 100644
index 0000000..5eacc95
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/maximized_focus_inactive.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/maximized_normal_active.png b/awesome/.config/awesome/themes/default/titlebar/maximized_normal_active.png
new file mode 100644
index 0000000..b0a031f
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/maximized_normal_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/maximized_normal_inactive.png b/awesome/.config/awesome/themes/default/titlebar/maximized_normal_inactive.png
new file mode 100644
index 0000000..48ae050
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/maximized_normal_inactive.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/ontop_focus_active.png b/awesome/.config/awesome/themes/default/titlebar/ontop_focus_active.png
new file mode 100644
index 0000000..f954bed
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/ontop_focus_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/ontop_focus_inactive.png b/awesome/.config/awesome/themes/default/titlebar/ontop_focus_inactive.png
new file mode 100644
index 0000000..01c4822
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/ontop_focus_inactive.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/ontop_normal_active.png b/awesome/.config/awesome/themes/default/titlebar/ontop_normal_active.png
new file mode 100644
index 0000000..d6d1ee9
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/ontop_normal_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/ontop_normal_inactive.png b/awesome/.config/awesome/themes/default/titlebar/ontop_normal_inactive.png
new file mode 100644
index 0000000..59dcee5
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/ontop_normal_inactive.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/sticky_focus_active.png b/awesome/.config/awesome/themes/default/titlebar/sticky_focus_active.png
new file mode 100644
index 0000000..1106399
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/sticky_focus_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/sticky_focus_inactive.png b/awesome/.config/awesome/themes/default/titlebar/sticky_focus_inactive.png
new file mode 100644
index 0000000..f83949f
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/sticky_focus_inactive.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/sticky_normal_active.png b/awesome/.config/awesome/themes/default/titlebar/sticky_normal_active.png
new file mode 100644
index 0000000..186397e
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/sticky_normal_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/default/titlebar/sticky_normal_inactive.png b/awesome/.config/awesome/themes/default/titlebar/sticky_normal_inactive.png
new file mode 100644
index 0000000..3c32f7c
--- /dev/null
+++ b/awesome/.config/awesome/themes/default/titlebar/sticky_normal_inactive.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/README.md b/awesome/.config/awesome/themes/gruvbox/README.md
new file mode 100644
index 0000000..f70383c
--- /dev/null
+++ b/awesome/.config/awesome/themes/gruvbox/README.md
@@ -0,0 +1,12 @@
+# Gruvbox awesome theme by McSinyx
+
+## A few side notes
+
+* The backgrounds are pixel-based, so please resize them by proper algorithim,
+  e.g. in GIMP use *None* or *Linear* interpolation.
+
+* Titlebar and wibox use some pixel art, so please keep theme at the size of 24
+  (wibox) and 6 (titlebar).
+
+* I add some 24-pixel high arrow to the theme. You might wanna use it to rice
+  your desktop in the powerarrow way
diff --git a/awesome/.config/awesome/themes/gruvbox/awesome-icon.png b/awesome/.config/awesome/themes/gruvbox/awesome.png
index 6ce854b..6ce854b 100644
--- a/awesome/.config/awesome/themes/gruvbox/awesome-icon.png
+++ b/awesome/.config/awesome/themes/gruvbox/awesome.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/background-1280x800.png b/awesome/.config/awesome/themes/gruvbox/background.png
index a8d6ff0..a8d6ff0 100644
--- a/awesome/.config/awesome/themes/gruvbox/background-1280x800.png
+++ b/awesome/.config/awesome/themes/gruvbox/background.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/gradient-debian.png b/awesome/.config/awesome/themes/gruvbox/gradient-debian.png
deleted file mode 100644
index 6e3928f..0000000
--- a/awesome/.config/awesome/themes/gruvbox/gradient-debian.png
+++ /dev/null
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/taglist/squarez.png b/awesome/.config/awesome/themes/gruvbox/taglist/square.png
index f49944e..f49944e 100644
--- a/awesome/.config/awesome/themes/gruvbox/taglist/squarez.png
+++ b/awesome/.config/awesome/themes/gruvbox/taglist/square.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/taglist/squarefz.png b/awesome/.config/awesome/themes/gruvbox/taglist/squaref.png
index a780e55..a780e55 100644
--- a/awesome/.config/awesome/themes/gruvbox/taglist/squarefz.png
+++ b/awesome/.config/awesome/themes/gruvbox/taglist/squaref.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/theme.lua b/awesome/.config/awesome/themes/gruvbox/theme.lua
index 4f1bceb..0ad981d 100644
--- a/awesome/.config/awesome/themes/gruvbox/theme.lua
+++ b/awesome/.config/awesome/themes/gruvbox/theme.lua
@@ -1,153 +1,108 @@
--------------------------------
---  "gruvbox" awesome theme  --
---      By McSinyx (cnx)     --
--------------------------------
+---------------------------
+-- gruvbox awesome theme --
+---------------------------
 
--- Alternative icon sets and widget icons:
---  * http://awesome.naquadah.org/wiki/Nice_Icons
-
--- {{{ Main
 theme = {}
---theme.wallpaper = mythemedir .. "gradient-debian-big.png"
-theme.wallpaper_cmd = { "hsetroot -solid '#282828'" }
--- }}}
-
--- {{{ Styles
-theme.font  = "Droid Sans Mono Slashed 11"
-mybg        = "#282828"
-mybg_alt    = "#3c3836"
-myfg        = "#ebdbb2"
-myred       = "#cc241d"
-mypurple    = "#b16286"
-
--- {{{ Colors
-theme.fg_normal  = myfg
-theme.fg_focus   = myfg
-theme.fg_urgent  = "#d3869b"
-theme.bg_normal  = mybg
-theme.bg_focus   = mybg_alt
-theme.bg_urgent  = theme.bg_normal
+
+theme.font = "Droid Sans Mono Slashed 11"
+
+theme.bg_normal = "#282828"
+theme.bg_focus = "#3c3836"
+theme.bg_urgent = theme.bg_normal
+--theme.bg_minimize = "#444444"
 theme.bg_systray = theme.bg_normal
--- }}}
 
--- {{{ Borders
-theme.border_width  = 1
-theme.border_normal = "#3c3836"
-theme.border_focus  = "#b16286"
-theme.border_marked = "#d3869b"
--- }}}
+theme.fg_normal = "#ebdbb2"
+theme.fg_focus = theme.fg_normal
+theme.fg_urgent = "#d3869b"
+--theme.fg_minimize = "#ffffff"
 
--- {{{ Titlebars
-theme.titlebar_bg_focus  = "#282828"
-theme.titlebar_bg_normal = "#282828"
--- }}}
+theme.border_width = 1
+theme.border_normal = "#3c3836"
+theme.border_focus = "#b16286"
+theme.border_marked = "#91231c"
 
 -- There are other variable sets
 -- overriding the default one when
 -- defined, the sets are:
--- [taglist|tasklist]_[bg|fg]_[focus|urgent]
--- titlebar_[normal|focus]
+-- taglist_[bg|fg]_[focus|urgent|occupied|empty]
+-- tasklist_[bg|fg]_[focus|urgent]
+-- titlebar_[bg|fg]_[normal|focus]
 -- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
--- Example:
---theme.taglist_bg_focus = "#d3869b"
--- }}}
+-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
+
+theme.titlebar_bg_focus = "282828"
+
+mythemedir = "~/.config/awesome/themes/gruvbox/"
+
+-- Display the taglist squares
+theme.taglist_squares_sel   = mythemedir .. "taglist/squaref.png"
+theme.taglist_squares_unsel = mythemedir .. "taglist/square.png"
 
--- {{{ Widgets
--- You can add as many variables as
--- you wish and access them by using
--- beautiful.variable in your rc.lua
---theme.fg_widget        = "#AECF96"
---theme.fg_center_widget = "#88A175"
---theme.fg_end_widget    = "#FF5656"
---theme.bg_widget        = "#494B4F"
---theme.border_widget    = "#282828"
--- }}}
-
--- {{{ Mouse finder
-theme.mouse_finder_color = "#d3869b"
--- mouse_finder_[timeout|animate_timeout|radius|factor]
--- }}}
-
--- {{{ Menu
 -- Variables set for theming the menu:
 -- menu_[bg|fg]_[normal|focus]
 -- menu_[border_color|border_width]
+theme.menu_submenu_icon = mythemedir .. "submenu.png"
 theme.menu_height = 20
 theme.menu_width  = 160
--- }}}
 
--- {{{ Icons
-mythemedir = "~/.config/awesome/themes/gruvbox/"
--- {{{ Taglist
-theme.taglist_squares_sel   = mythemedir .. "taglist/squarefz.png"
-theme.taglist_squares_unsel = mythemedir .. "taglist/squarez.png"
---theme.taglist_squares_resize = "false"
--- }}}
-
--- {{{ Misc
-theme.awesome_icon           = mythemedir .. "awesome-icon.png"
-theme.menu_submenu_icon      = mythemedir .. "submenu.png"
--- }}}
-
--- {{{ Layout
-theme.layout_tile       = mythemedir .. "layouts/tile.png"
-theme.layout_tileleft   = mythemedir .. "layouts/tileleft.png"
-theme.layout_tilebottom = mythemedir .. "layouts/tilebottom.png"
-theme.layout_tiletop    = mythemedir .. "layouts/tiletop.png"
-theme.layout_fairv      = mythemedir .. "layouts/fairv.png"
-theme.layout_fairh      = mythemedir .. "layouts/fairh.png"
-theme.layout_spiral     = mythemedir .. "layouts/spiral.png"
-theme.layout_dwindle    = mythemedir .. "layouts/dwindle.png"
-theme.layout_max        = mythemedir .. "layouts/max.png"
-theme.layout_fullscreen = mythemedir .. "layouts/fullscreen.png"
-theme.layout_magnifier  = mythemedir .. "layouts/magnifier.png"
-theme.layout_floating   = mythemedir .. "layouts/floating.png"
-
--- Lain's useless layouts
-theme.layout_uselesstile        = theme.layout_tile
-theme.layout_uselesstileleft    = theme.layout_tileleft
-theme.layout_uselesstilebottom  = theme.layout_tilebottom
-theme.layout_uselesstiletop     = theme.layout_tiletop
-theme.layout_uselessfair        = theme.layout_fairv
-theme.layout_uselessfairh       = theme.layout_fairh
-theme.layout_uselesspiral       = theme.layout_spiral
-theme.layout_uselessdwindle     = theme.layout_dwindle
-theme.useless_gap_width = 12
--- }}}
-
--- {{{ Titlebar
-theme.titlebar_close_button_focus  = mythemedir .. "titlebar/close_focus.png"
+-- You can add as many variables as
+-- you wish and access them by using
+-- beautiful.variable in your rc.lua
+--theme.bg_widget = "#cc0000"
+
+-- Define the image to load
 theme.titlebar_close_button_normal = mythemedir .. "titlebar/normal.png"
+theme.titlebar_close_button_focus  = mythemedir .. "titlebar/close_focus.png"
 
-theme.titlebar_ontop_button_focus_active  = mythemedir .. "titlebar/ontop_focus_active.png"
-theme.titlebar_ontop_button_normal_active = mythemedir .. "titlebar/normal.png"
-theme.titlebar_ontop_button_focus_inactive  = mythemedir .. "titlebar/ontop_focus_inactive.png"
 theme.titlebar_ontop_button_normal_inactive = mythemedir .. "titlebar/normal.png"
+theme.titlebar_ontop_button_focus_inactive  = mythemedir .. "titlebar/ontop_focus_inactive.png"
+theme.titlebar_ontop_button_normal_active = mythemedir .. "titlebar/normal.png"
+theme.titlebar_ontop_button_focus_active  = mythemedir .. "titlebar/ontop_focus_active.png"
 
-theme.titlebar_sticky_button_focus_active  = mythemedir .. "titlebar/sticky_focus_active.png"
-theme.titlebar_sticky_button_normal_active = mythemedir .. "titlebar/normal.png"
-theme.titlebar_sticky_button_focus_inactive  = mythemedir .. "titlebar/sticky_focus_inactive.png"
 theme.titlebar_sticky_button_normal_inactive = mythemedir .. "titlebar/normal.png"
+theme.titlebar_sticky_button_focus_inactive  = mythemedir .. "titlebar/sticky_focus_inactive.png"
+theme.titlebar_sticky_button_normal_active = mythemedir .. "titlebar/normal.png"
+theme.titlebar_sticky_button_focus_active  = mythemedir .. "titlebar/sticky_focus_active.png"
 
-theme.titlebar_floating_button_focus_active  = mythemedir .. "titlebar/floating_focus_active.png"
-theme.titlebar_floating_button_normal_active = mythemedir .. "titlebar/normal.png"
-theme.titlebar_floating_button_focus_inactive  = mythemedir .. "titlebar/floating_focus_inactive.png"
 theme.titlebar_floating_button_normal_inactive = mythemedir .. "titlebar/normal.png"
+theme.titlebar_floating_button_focus_inactive  = mythemedir .. "titlebar/floating_focus_inactive.png"
+theme.titlebar_floating_button_normal_active = mythemedir .. "titlebar/normal.png"
+theme.titlebar_floating_button_focus_active  = mythemedir .. "titlebar/floating_focus_active.png"
 
-theme.titlebar_maximized_button_focus_active  = mythemedir .. "titlebar/maximized_focus_active.png"
-theme.titlebar_maximized_button_normal_active = mythemedir .. "titlebar/normal.png"
-theme.titlebar_maximized_button_focus_inactive  = mythemedir .. "titlebar/maximized_focus_inactive.png"
 theme.titlebar_maximized_button_normal_inactive = mythemedir .. "titlebar/normal.png"
--- }}}
+theme.titlebar_maximized_button_focus_inactive  = mythemedir .. "titlebar/maximized_focus_inactive.png"
+theme.titlebar_maximized_button_normal_active = mythemedir .. "titlebar/normal.png"
+theme.titlebar_maximized_button_focus_active  = mythemedir .. "titlebar/maximized_focus_active.png"
+
+theme.wallpaper = mythemedir .. "background.png"
+
+-- You can use your own layout icons like this:
+theme.layout_fairh = mythemedir .. "layouts/fairh.png"
+theme.layout_fairv = mythemedir .. "layouts/fairv.png"
+theme.layout_floating  = mythemedir .. "layouts/floating.png"
+theme.layout_magnifier = mythemedir .. "layouts/magnifier.png"
+theme.layout_max = mythemedir .. "layouts/max.png"
+theme.layout_fullscreen = mythemedir .. "layouts/fullscreen.png"
+theme.layout_tilebottom = mythemedir .. "layouts/tilebottom.png"
+theme.layout_tileleft   = mythemedir .. "layouts/tileleft.png"
+theme.layout_tile = mythemedir .. "layouts/tile.png"
+theme.layout_tiletop = mythemedir .. "layouts/tiletop.png"
+theme.layout_spiral  = mythemedir .. "layouts/spiral.png"
+theme.layout_dwindle = mythemedir .. "layouts/dwindle.png"
+
+theme.awesome_icon = mythemedir .. "awesome.png"
+
+-- Define the icon theme for application icons. If not set then the icons 
+-- from /usr/share/icons and /usr/share/icons/hicolor will be used.
+theme.icon_theme = nil
 
--- {{{ Arrows
+-- Arrows
 theme.arrow0 = mythemedir .. "arrows/0.png"
 theme.arrow1 = mythemedir .. "arrows/1.png"
 theme.arrow2 = mythemedir .. "arrows/2.png"
 theme.arrow3 = mythemedir .. "arrows/3.png"
 theme.arrow4 = mythemedir .. "arrows/4.png"
 theme.arrow5 = mythemedir .. "arrows/5.png"
--- }}}
--- }}}
 
 return theme
diff --git a/awesome/.config/awesome/themes/gruvbox/titlebar/close_focus.png b/awesome/.config/awesome/themes/gruvbox/titlebar/close_focus.png
index e100e4a..36300e2 100644
--- a/awesome/.config/awesome/themes/gruvbox/titlebar/close_focus.png
+++ b/awesome/.config/awesome/themes/gruvbox/titlebar/close_focus.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/titlebar/floating_focus_active.png b/awesome/.config/awesome/themes/gruvbox/titlebar/floating_focus_active.png
index a6f0042..dcf5363 100644
--- a/awesome/.config/awesome/themes/gruvbox/titlebar/floating_focus_active.png
+++ b/awesome/.config/awesome/themes/gruvbox/titlebar/floating_focus_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/titlebar/floating_focus_inactive.png b/awesome/.config/awesome/themes/gruvbox/titlebar/floating_focus_inactive.png
index f70fa67..072f114 100644
--- a/awesome/.config/awesome/themes/gruvbox/titlebar/floating_focus_inactive.png
+++ b/awesome/.config/awesome/themes/gruvbox/titlebar/floating_focus_inactive.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/titlebar/maximized_focus_active.png b/awesome/.config/awesome/themes/gruvbox/titlebar/maximized_focus_active.png
index 0a73987..3481363 100644
--- a/awesome/.config/awesome/themes/gruvbox/titlebar/maximized_focus_active.png
+++ b/awesome/.config/awesome/themes/gruvbox/titlebar/maximized_focus_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/titlebar/maximized_focus_inactive.png b/awesome/.config/awesome/themes/gruvbox/titlebar/maximized_focus_inactive.png
index 802061a..6bed56d 100644
--- a/awesome/.config/awesome/themes/gruvbox/titlebar/maximized_focus_inactive.png
+++ b/awesome/.config/awesome/themes/gruvbox/titlebar/maximized_focus_inactive.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/titlebar/normal.png b/awesome/.config/awesome/themes/gruvbox/titlebar/normal.png
index 89f68b4..a8d94cf 100644
--- a/awesome/.config/awesome/themes/gruvbox/titlebar/normal.png
+++ b/awesome/.config/awesome/themes/gruvbox/titlebar/normal.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/titlebar/ontop_focus_active.png b/awesome/.config/awesome/themes/gruvbox/titlebar/ontop_focus_active.png
index efd96c6..7b938f0 100644
--- a/awesome/.config/awesome/themes/gruvbox/titlebar/ontop_focus_active.png
+++ b/awesome/.config/awesome/themes/gruvbox/titlebar/ontop_focus_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/titlebar/ontop_focus_inactive.png b/awesome/.config/awesome/themes/gruvbox/titlebar/ontop_focus_inactive.png
index bb85b1c..9b6727f 100644
--- a/awesome/.config/awesome/themes/gruvbox/titlebar/ontop_focus_inactive.png
+++ b/awesome/.config/awesome/themes/gruvbox/titlebar/ontop_focus_inactive.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/titlebar/sticky_focus_active.png b/awesome/.config/awesome/themes/gruvbox/titlebar/sticky_focus_active.png
index 53b1394..5f627db 100644
--- a/awesome/.config/awesome/themes/gruvbox/titlebar/sticky_focus_active.png
+++ b/awesome/.config/awesome/themes/gruvbox/titlebar/sticky_focus_active.png
Binary files differdiff --git a/awesome/.config/awesome/themes/gruvbox/titlebar/sticky_focus_inactive.png b/awesome/.config/awesome/themes/gruvbox/titlebar/sticky_focus_inactive.png
index 2787cbe..8f484ad 100644
--- a/awesome/.config/awesome/themes/gruvbox/titlebar/sticky_focus_inactive.png
+++ b/awesome/.config/awesome/themes/gruvbox/titlebar/sticky_focus_inactive.png
Binary files differ