Repetitive tasks eradicator module for Awesome WM
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

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" })