I have the Black widow Ultimate and here's how you do recording on the fly
Function F9
type your key combination that you wish you record
Function F9 again to stop (a flashing indicator will show you it has stopped)
Then hit the key combo that you want it to be recorded on like M1
To get rid of the timing you have to manually delete the timings in the macro after it is recorded. A new macro will show up in your macro list that was not there before. That will be your newly recorded macro. There is no way of setting the automatic key recording to have no time recorded with it. You simply have to remove it manually.
You can however export the macro which will export in xml, insert it into a text editor like TextPad and change the entire macro's delays all at once doing a search and replace using RegEx in the Find/Replace dialog. Turn on the RegEx find feature and use
<Delay>[\d]*</Delay>
as your search feature. This will find all of the Delay references with numbers in them. In the replace part of the dialog put
<Delay>0</Delay>
Now you can reimport the XML code with no delays. A little tedious however worth it for long macros.
M1-M5 are in fact regular keys - they just need to be specifically enabled before pressing them will generate a scancode. tux_mark_5 developed a small Haskell program which sends the correct SET_REPORT message to Razer keyboards to enable these keys, and ex-parrot ported the same code to Python.
On Arch Linux systems the Python port has been packaged and is available from https://aur.archlinux.org/packages.php?ID=60518.
On Debian or Ubuntu systems setting up the Python port of the code is relatively easy. You need to install PyUSB and libusb (as root):
aptitude install python-usb
Then grab the blackwidow_enable.py
file from http://finch.am/projects/blackwidow/ and execute it (also as root):
chmod +x blackwidow_enable.py
./blackwidow_enable.py
This will enable the keys until the keyboard is unplugged or the machine is rebooted. To make this permanent call the script from whatever style of startup script you most prefer. For instructions on how to set this up in Debian have a look at the Debian documentation.
To use tux_mark_5's Haskell code you'll need to install Haskell and compile the code yourself. These instructions are for a Debian-like system (including Ubuntu).
Install GHC, libusb-1.0-0-dev and cabal (as root):
aptitude install ghc libusb-1.0-0-dev cabal-install git pkg-config
Fetch the list of packages:
cabal update
Install USB bindings for Haskell (no need for root):
cabal install usb
Download the utility:
git clone git://github.com/tuxmark5/EnableRazer.git
Build the utility:
cabal configure
cabal build
Run the utility (also as root):
./dist/build/EnableRazer/EnableRazer
After this you can copy EnableRazer binary anywhere you want and run it at startup.
Immediately after execution, X server should see M1 as XF86Tools, M2 as XF86Launch5, M3 as XF86Launch6, M4 as XF86Launch7 and M5 as XF86Launch8. Events for FN are emitted as well.
These keys can be bound within xbindkeys or KDE's system settings to arbitrary actions.
Since your keyboard might be different, you might need to change the product ID in Main.hs line 64:
withDevice 0x1532 0x<HERE GOES YOUR KEYBOARD's PRODUCT ID> $ \dev -> do
Best Answer
I just figured it out myself.
Go to macro tab, within the macro tab there is a macro dropdown box. Click the arrow and choose one of them, then just delete any that you have.
It shows that none are there but you just have to go in and select one.