This is part of the old website. New website begins at fontforge.github.io

Are you a web developer? Help us migrate this page on Github

Menu Hot Keys

As noted in hotkey assignment you can nominate the hotkeys which you prefer for all items in any menu of FontForge. Some default hotkeys are shipped with FontForge so that you do not have to assign any keys yourself unless you want to make changes. The defaults are shown below:

Ctl-A Select All Ctl-Shft-A Build Accented Glyph Alt-Ctl-A Select All Points
Ctl-B Regenerate Bitmaps Ctl-Shft-B Bitmaps Available
Ctl-C Copy Ctl-Shft-C Copy Fg to Bg Alt-Ctl-C Copy Lookup Data
Ctl-D Show/Hide Points Ctl-Shft-D Correct Direction
Ctl-E Find Problems Ctl-Shft-E Expand Stroke
Ctl-F Fit in Window Ctl-Shft-F Font Info Alt-Ctl-F Find / Replace Alt-Ctl-Shft-F Replace With Reference
Ctl-G Copy Reference Ctl-Shft-G Generate Fonts Alt-Ctl-G Generate Mac Family
Ctl-H Open Outline Ctl-Shft-H AutoHint Alt-Ctl-H Review Hints
Ctl-I Get Info Ctl-Shft-I Import Alt-Ctl-Shft-I Glyph Info Alt-Ctl-I Show Dependencies...
Ctl-J Open Bitmap Ctl-Shft-J Join
Ctl-K Open Metrics Ctl-Shft-K Auto Kern Alt-Ctl-Shft-K Merge Feature Info
Ctl-L Set LBearing Ctl-Shft-L Set Width
Ctl-M Merge Point Ctl-Shft-M Simplify Alt-Ctl-M Elide Point Alt-Ctl-Shft-M Simplify More
Ctl-N New Ctl-Shft-N
Ctl-O Open Ctl-Shft-O Remove Overlap
Ctl-P Print Ctl-Shft-P Alt-Ctl-P Display
Ctl-Q Quit Ctl-Shft-Q Close
Ctl-R Set RBearing Ctl-Shft-R Revert File Ctl-Alt-R Revert Glyph
Ctl-S Save Ctl-Shft-S Save As
Ctl-T AutoInstr Ctl-Shft-T AutoTrace
Ctl-U Unlink Reference Ctl-Shft-U
Ctl-V Paste Ctl-Shft-V Paste Into
Ctl-W Copy Width Ctl-Shft-W Auto Width
Ctl-X Cut Ctl-Shft-X Add Extrema
Ctl-Y Redo Ctl-Shft-Y
Ctl-Z Undo Ctl-Shft-Z
Ctl-\ Transform
Ctl-Shft-_ Round to Int
Ctl-1 Make First Ctl-Shft-! Alt-Ctl-1 Invokes user script
Ctl-2 24 pixel outline
Curve Point
Ctl-Shft-@ Average Points Alt-Ctl-2 Invokes user script
Ctl-3 36 pixel outline
Corner Point
Ctl-Shft-# Space Points Alt-Ctl-3 Invokes user script
    ...
Ctl-4 48 pixel outline
Tangent Point
Ctl-5 Anti-Alias Ctl-Shft-% 32x8 cell window
Ctl-6 Fit To Em Ctl-Shft-^ 16x4 cell window
Ctl-7 72 pixel outline
Ctl-8 Ctl-Shft-* 8x2 cell window
Ctl-9 96 pixel outline
Ctl-0 Add Anchor Point...
Ctl-] Next Glyph Ctl-Shft-} Next Point
Ctl-[ Prev Glyph Ctl-Shft-{ Prev Point
Ctl-. Execute Script
Select First Point
Ctl-Shft-> Goto Alt-Ctl-. First Point, Next Contour
Ctl-, Select Point At Ctl-Shft-< Find In Font View Alt-Ctl-, Points on Selected Contours
Escape Deselect All Ctl-Escape Invert Selection
Backspace Clear
Delete Clear
Ctl-= Grid Fit Anti Alias Ctl-Shft-+ Bigger Pixel Size
Bigger Point Size
Alt-Ctl-Shift-+ Zoom In
Ctl-- Smaller Pixel Size
Smaller Point Size
Alt-Ctl-- Zoom Out
Help Help
F1 Help Index
F2
F3
F4
F5
F6
F7
F8
F9
F10

Hot Keys are now configurable through a gettext based mechanism.

Different Keyboards

The above descriptions assume you are using a keyboard for an IBM pc or compatible. But different keyboard vendors label their keys differently and different versions of X may map them differently.

I am aware of the following significant differences:

FontForge will attempt to guess what keyboard you are using and produce menus with hot-key indicators that match the host machine. If you are displaying on a different machine from the one you are running on the menu names may be wrong. You can fix this up with the keyboard resource, or the -keyboard command line argument.

Tool modifiers in the Outline Glyph Window

Tool Modifier Result Tool Modifier Result
pointer Shift Constrain horizontal/vert or italic angle/45° Magnify
Shift
Alt
When dragging a magnification area,
make it square
minify
Alt Select control points before normal points
Shift-Alt Constrain control point motion to original angle from point
freehand Shift Constrain horizontal/vert/45° scroll Shift Constrain scroll either in single direction or
by same amount in both directions
add curve Shift Constrain horizontal/vert/45° from last point add corner Shift Constrain horizontal/vert/45° from last point
add tangent Shift Constrain horizontal/vert/45° from last point pen Shift Constrain points h/v/45 from last point
Constrain control points h/v/45 from point
knife Shift Constrain horizontal/vert/45° ruler Shift Constrain measurement to one direction
Alt Give current position more accurately
scale Shift Constrain either to scale along x or y axis or
scale both axes the same
flip
rotate Shift Constrain rotation to a multiple of 45° skew
3d rotate perspective
rect/elipse Shft square/circle polygon/star Shift Constrains so that one of the vertices is
horizontal/vertical/45°

Modifer keys for arrow keys in the Outline Glyph Window

Control
- or -
CapsLock

Makes the arrow keys scroll
Alt Makes the arrow keys move by ten times as much as they would otherwise

The menus

Hotkeys

FontForge lets you assign custom hotkeys to the menus and other actions. Default hotkeys are provided for the menus in all windows which follow familiar key assignments such as Control+O to open a file and Control+c to "copy" something. The current hotkey for each menu item are shown in the menu itself to help you learn existing bindings and see if your modification to the bindings are as you expect.

The hotkey system allows you to customize the hotkey for anything that appears in the menus. You can freely change the hotkey for a menu item or add one if you find you are using a menu item frequently. Your settings for hotkeys are read from and stored in the ~/.FontForge/hotkeys file. In it's most basic form this file is a sequence of lines of the form action:key. A large default hotkeys file is provided with FontForge in the hotkeys/default file.

The below fragment of ~/.FontForge/hotkeys will hopefully provide a nice example to get you started creating your own hotkey bindings. As you can see the action part starts with "CharView.Menu.", meaning that this action is to invoke a menu on a specific window type. You can assign a different hotkey to the same menu item in two different window types. For example, the glyph window might have control+o to show font information, whereas the fontview might retain control+o to mean open a font.

The first action in the below file, Point.Tools.Ruler, will invoke the Ruler menu item which is in the Tools menu, which is itself in the Point top level menu of the charview window (Glyph window). Notice that the key does not need to have a qualifier such as control or alt. Having no modifier for a hotkey is currently limited to the glyph window.

CharView.Menu.Point.Tools.Ruler: r
CharView.Menu.Point.Tools.Pointer: v
CharView.Menu.View.Show.Tab.Tab0: Ctl+1
CharView.Menu.View.Show.Tab.Tab1: Ctl+2
CharView.Menu.View.Zoom in: Shft++
CharView.Menu.View.Zoom in: z
CharView.Menu.View.Zoom in: =
CharView.Menu.Point.Tools.HVCurve: 1
+CharView.Menu.Point.Tools.G2: 1

Continuing down the list you see the use of Ctl+1 to select a specific tab in the glyph window. This is followed by three key bindings, any of which will zoom the display to a higher magnification level.

When reading hotkeys files at startup, FontForge will first load many system defaults and then your ~/.FontForge/hotkeys file. Each file is processed from the first line to the last line. When reading these hotkey files, it might be the case that two or more lines have the exact same hotkey. For example, the system default is Control+o to open a file. You might like to override that hotkey to open the font info dialog instead. When FontForge is reading hotkeys files, if a hotkey is encountered that is already in use, the current action for that hotkey is replaced with the new action. So if you have the below line in your ~/.FontForge/hotkeys file then Control+o will open the font info dialog instead of trying to open a font.

CharView.Menu.Element.Font Info...:Ctl+o

If you want to add an action for a hotkey rather than replace the current action, prefix the line with a "+" character as the Tools.G2 line does in the above example. This allows the "1" key to invoke both the Tools.HVCurve and Tools.G2 menu items. In this case only one menu will perform a task depending on if spiro mode is active.

There are many modifiers that FontForge recognizes which are listed in the next paragraph. These are always the English name for the modifier regardless of your locale. The names are fully case insensitive; you can write Control, conTROL, or control and they will have the same effect. The non modifier key, for example 's' without the quotes undergoes an internal case modification. If you specify control+S this will be interpreted as control being held while the 's' key is pressed. If you are wanting the Shift key to be held too, you need to explicitly specify that as with control+shift+s as the key definition.

FontForge recognizes the following standard modifiers: Alt, Esc Ctl, Control, Ctrl, Shft, Shift, CapsLock, Opt (the last corresponds to the Option key on the mac keyboard, Cmd+ for the mac Command key Note: This can only be used by an X program if the X11 application does not appropriate it -- this can be configured in the X11 Preferences).

Other than the CharView window type, there are FontView and MetricsView.

-- Prev -- TOC -- Next --