HOW TO: Eagle shortcut keys and scripts

in Eagle, tutorials by DP | 10 comments

As we picked up some experience with Eagle, we figured out that clicking icons and typing in commands slows down productivity. Eagle’s key-binding features make it faster to do common tasks by pressing a few keys, but for a real kick they can also run scripts. We use a hot-key to run our project export script that builds preview images and BOMs in excel, html, and wiki formats.

This is a short tutorial about our journey into creating key-bindings for common commands. Read below how to create shortcuts in Cadsoft Eagle.

Where to access

To add custom key-bindings, or shortcuts, go into the ‘Options’ tab and click on ‘Assign’.

Available commands

Eagle has a few default keys already assigned like ‘zoom’, ‘move’, ‘grid on-off’, etc… You could always change them to your liking.

Assigning a shortcut

To assign a key to a command, go to the ‘Assign Menu’ and click ‘New’. The key assignment window will pop up.

Select the hot-key combination from the drop-down list, then type in the command to be executed.

Other Commands

A list of Commands can be found in Eagle’s Help file (”Help>General”) under ‘Editor Commands’.

 Be aware that the schematic and PCB editor don't share the same hotkeys.
Both have to be individually set-up. 

Running scripts

Another good thing about Eagle key-bindings is that you can run scripts directly from a key. Here’s an example of our PCB editor custom shortcut keys.

 script [complete eagle script path] 

The syntax for running a script is shown above.

We’ve put some scripts we find useful  in SVN here.

Assigning custom shortcut keys is easy, but the ability to run scripts is a big bonus.

This entry was posted in Eagle, tutorials and tagged , .


  1. Mats says:

    My custom key shortcuts looks like this…

    F2 Route
    F3 Ripup
    F5 Ratsnest;
    ctrl-a DISPLAY None Top Bottom tOrigins bOrigins tPlace bPlace Dimension Pad Via 45 milling;
    ctrl-b DISPLAY None Bottom bOrigins bPlace Dimension Pad Via 45 bNames milling;
    ctrl-d DISPLAY none Top Bottom Dimension Via Pad Unrouted
    ctrl-t DISPLAY None Top tOrigins tPlace Dimension Pad Via 45 tNames milling;
    ctrl-u DISPLAY Unrouted;
    shift-ctrl-u DISPLAY -Unrouted;
    ctrl-k DISPLAY tKeep bKeep tRest bRest vRest;
    shift-ctrl-k DISPLAY tKeep bKeep tRest bRest vRest;

    ^A displays both layes and the silk
    ^D displays both layers but without the silk to declutter while routing
    ^T Top layers displayed
    ^B Bottom layers displayed
    ^U Toggles Unroutred
    ^K Toggles Keepouts & Restricts
    F5 Is the classic refresh screen so the Ratsnest command makes sense

    I was tempted to add your shortcuts for setting text size/ratio and smashing for a while, then I remembered that usually just do a “RUN normalize-text” and use the two default values. That smashes all parts and sets the text size to 40 mil and ratio 11%. Easy as pie. Labels are easy to handle in one go later.

  2. Cransh says:

    I can’t imagine Eagle without the keyboard short-cuts , it’s really great

    • Mats says:

      Eagle on a trackpad is horrible. A proper mouse with a middle button and a scrollwheel makes life so much easier.

  3. mathir says:

    Where is placed the file with set keybindings? I want to copy it to another computer.

  4. Dan says:

    I assigned the keys while editing a library. When I go to the project the key assignments are back to the default. So do I have to reassign them in every project? How do I make them global throughout Eagle?

    • vimark says:

      Hi Dan, the assigned keys should stay even if you switch from library editor to schematic/pcb editor. If you’re on windows 7 or maybe 8, you should run eagle in administrator mode in order for the key assignment to stick.

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.