Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Repetitive tasks eradicator for Awesome WM

Warning Awesome 3.5 users should use the awesome3.5 branch. This module officially support 4.0+.

This module allow Awesome users to map keyboard shortcuts to actions. Supported actions are:

  • Focus tag
  • Focus client and restore cursor position
  • Record/Play mouse+keyboards macros

There is 2 types of bindings:

  • Semi static: Use clients and tags properties to assign keybindings
  • Dynamic: Keyboard shortcus can be set and replaced at runtime

Dynamic shortcuts are assigned to F keys (F1-F12) to either select tags, clients or execute macros. This is done by using alternate keys to set the shortcut mode. The modes are:


In a terminal:

cd ~/.config/awesome
git clone

In rc.lua (at line 1):


You are done!


By default, nothing is done. If you use mod4+F1, it will set a keybindins on F1 to focus the current client. If you use alt+F1, it will do the same for the current tag. Pression F1 will select the client/tag.

Mode Description Setter Mod
none Execute the F-key as a regular F-key (default) none
exec Execute the command already set using modifiers none
client Assign a client to the F-key and save cursor mod4
tag Assign a tag to be focussed when pressing the key mod1 (alt)
macro Record a macro until Escape is pressed Control

Semi static keyboard bindings are designed to be set by a third party rule such as Awful.rules or Tyrannical. Once the object is either activated (tag) or tagged (client), Repetitive will assign the shortcuts based on the following criterias:

Mode Description Default
shortcut A shortcut, use the same syntax as rc.lua ones N/A
rotate_shortcut Select the next instance true
exclusive_shortcut Replace the previous shortcut used for this key★ false
relative_shortcut Use the tag index as mod4+index shortcut false
viewonly Toggle a tag visibility instead of replacing it true

★ Can only replace shortcuts set by Repetitive, if one has been set using the global or clients shortcut section of rc.lua, both will be executed.

Another way to assign a shortcut is when creating tags manually:

    local t = awful.tag.add("MyTag",{shortcut = { {"Mond4}, "e" }, --[[more options]] })

In a function:

    awful.tag.setproperty(t, "shortcut", { {"Mond4}, "e" })

Or for clients:

    awful.client.propoery.set(c,"shortcut", { {"Mond4}, "e" })


Repetitive tasks eradicator module for Awesome WM







No releases published


No packages published