+dynamic tagging
+---------------
+
+That is:
+
+- add a new tag;
+- rename current tag;
+- move current tag;
+- remove current tag.
+
+If you delete a tag, any rule set on it shall be broken, so be careful.
+
+Use it with key bindings like these:
+
+ awful.key({ modkey, "Shift" }, "n", function () lain.util.add_tag(mypromptbox) end),
+ awful.key({ modkey, "Shift" }, "r", function () lain.util.rename_tag(mypromptbox) end),
+ awful.key({ modkey, "Shift" }, "r", function () lain.util.move_tag(1) end), -- move to next tag
+ awful.key({ modkey, "Shift" }, "r", function () lain.util.move_tag(-1) end), -- move to previous tag
+ awful.key({ modkey, "Shift" }, "d", function () lain.util.remove_tag() end),
+
+**Note** that these function won't work properly with [Copland theme](https://github.com/copycat-killer/awesome-copycats) or any other configuration that already uses a dynamic tagging module like [Eminent](https://github.com/copycat-killer/awesome-copycats/tree/master/eminent).
+
+useless\_gaps\_resize
+---------------------
+
+Changes `beautiful.useless_gaps_width` on the fly.
+
+The function takes an integer argument, being the amount of pixel to add/remove to gaps.
+
+You could use it with these keybindings:
+
+ -- On the fly useless gaps change
+ awful.key({ altkey, "Control" }, "+", function () lain.util.useless_gaps_resize(1) end),
+ awful.key({ altkey, "Control" }, "-", function () lain.util.useless_gaps_resize(-1) end),
+
+where `altkey=Mod1`, or you could use it like this:
+
+ mywidget:buttons(awful.util.table.join (
+ awful.button({}, 4, function() lain.util.useless_gaps_resize(-1) end),
+ awful.button({}, 5, function() lain.util.useless_gaps_resize(1) end)
+ end)
+ ))
+
+so when hovering the mouse over `mywidget`, you can adjust useless gaps size by scrolling with the mouse wheel.
+
+tag\_view\_nonempty
+-------------------
+
+This function lets you jump to the next/previous non-empty tag.
+It takes two arguments:
+
+* `direction`: `1` for next non-empty tag, `-1` for previous.
+* `sc`: Screen which the taglist is in. Default is `mouse.screen` or `1`. This
+ argument is optional.
+
+You can use it with key bindings like these:
+
+ -- Non-empty tag browsing
+ awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
+ awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
+
+where `altkey = "Mod1"`.
+