Keyboard Increment when subdivision is smaller than 1

I have

grid spacing: 1

Currently I can’t use my keyboard to make the 0.2 increments, I have to use my mouse, it would be good to be able to control that via keyboard. Perhaps Alt+Arrow keys, for the smallest increment

It would only allow moments bigger then 0.33 units. I decreased the limit to 0.2.

I don’t understand. Are you implying that there is a way of nudging points with the keyboard by 0.2 of a unit Georg?

I have found the answer to my own question: I had assumed that one unmodified press of an arrow key would always move a point one unit, but I see now that it depends on the grid settings. With Grid Spacing at 1 [unit] and Subdivision at 5, one press on the arrow key moves a point 0.2 unit. Any higher value for subdivision and the increment reverts to 1, because it comes up against the 0.2 increment limit referred to above.

This leads to a suggestion: would it be possible to lower the limit to 0.1? Not so much because such a fine step is often necessary, but because having a range of keyboard-controlled steps at 0.1 unit/1 unit and 10 units (straight, +Shift and +Command) is much more intuitive than 0.2, 2 and 20.

And a basic question about grid settings: with Grid Spacing of 1 and Subdivision of 5, will coordinates still be rounded to 1 on export, or do the subdivisions apply to rounding as well as snapping?

No, it will only round if the grid is >= 1.

1 Like

Sorry if I am being dim Georg, but I am still unclear. Are you saying that with Grid=1, Sub=5, a coordinate value of (say) 245.6 would not be rounded on export, but with Grid=2, Sub=10 it would be rounded to 246?

I hope I am groping my way to an understanding here. Please correct me if I am wrong. From the handbook: The Grid Spacing value defines how coordinates get rounded […] Setting Grid Spacing to 1 and Subdivision to 10 will give your point coordinates one decimal.

So the value that determines the degree of rounding is not just the first (Grid Spacing) setting, but the combination of that with the Subdivision: rounding value = Grid Spacing / Subdivision. In the example quoted in the handbook 1/10 = 0.1 (one decimal). In the examples given in my last post, 1/5 and 2/10 are both 0.2. There will be no rounding in either case because coordinates will in any case have snapped to 0.2. Or does 1/5 behave differently from 2/10?

The confusion arose because of the opening statement quoted from the handbook above, which implied (to me at least) that the first value alone (“Grid Spacing”) determined the ultimate rounding, while the Subdivision value gave you a temporary working environment at higher resolution.

Any response to the middle para of my 2nd post?

That’s what bothers me. A temporary higher resolution would be of no use in the final product if it is rounded. Why not just round it myself to the main grid to begin with? That way when the software does its rounding it doesn’t mess up the shapes.

1 Like


Yes. And it can be exported into CFF/OT fonts.

It shouldn’t. If it does, please report.

Thanks for that clear confirmation Rainer.

I didn’t mean “nudge” in the Glyphs sense, but simply moving points using the arrow keys. If the resolution is set to 1/5 unit (Grid 1, Sub 5) then clearly this is now possible. So what about the suggestion in the second para of my second post?

I believe this is a bug.

Well if so it seems to me a nice bug. No chance we could encourage it to extend to o.1 unit? Bigger step units are readily available with Shift and Command. Who ever needs to step a point more than 10 units in a hurry? And if they do they can reduce their grid subdivisions.

It may sound nice if you are zoomed in very far. The problem I see is that editing will become tedious at a larger scale.

Perhaps we simply need a preference then:
[X] Step increment respects grid subdivisions.

I have been expecting to be asked why I think high resolution stepping is necessary. Two answers.

  1. One of Glyphs’ particular virtues is that it supports floating point coordinates. It should therefore make them easy to use. The smaller the distance, the more difficult to move a point manually so the more significant the use of keyboard stepping becomes. Ergo, Glyphs should enable stepping especially at high resolution.

  2. Different people use apps in different ways. Most people have practised digital font design perfectly well for many years with a min resolution of 1 unit. I don’t dispute this. There are occasions however (finely detailed or hatched letters, non-geometrical letters with very subtle angles and curves) where a higher resolution is desirable without having to raise the UPM.

It probably does make sense to keep 1 unit stepping the default, but allow finer steps as an option for those who need it.

1 Like

We will think about it. Thank you for your input.

Bringing this up again, I’m working on a font that’s for large sizes and I’m using decimal points, 10 steps, now I have to edit only using the mouse, why not have a keyboard modifier for the smallest unit…such as CTRL

I added an property to the font that stores the keyboard increment. It can’t be set from the UI yet but from the macro window:

Font.keyboardIncrement  = 0.1


Font.keyboardIncrement  = 2.34
1 Like

Great feature Georg, thank you.

Should this be functional already in build 213? When I try to run it I get:

Traceback (most recent call last):
File “”, line 1, in
AttributeError: ‘NSKVONotifying_GSFont’ object has no attribute ‘keyboardIncrement’

No, that will be in the next update. I implemented it yesterday and the last update is a few days old.