In Photoshop, you can add jitter to brush settings, so opacity, size, etc., change within a range while drawing.

I'm curious if anyone knows of a method for creating jitter for kerning and tracking, so that a piece of text has randomized kerning/tracking values throughout without having to go through and edit the kerning and tracking every few characters.

Photoshop solutions or otherwise would be great! Thanks.

  • I was just a bout to start writing an answer for InDesign. Not sure I'm interested in doing one for Photoshop. Why even work with type in Photoshop? 😉 What are you trying to achieve with this aesthetically? It will just look digitally glitched somehow.
    – Wolff
    May 14, 2021 at 23:35
  • An InDesign solution would be fine. May 15, 2021 at 0:01

1 Answer 1


Here is a script for InDesign which allows you to randomize the tracking of the individual characters selected text.

The script has two settings: minTracking which sets the lowest allowed tracking and maxTracking which sets the highest allowed tracking.


// settings
var minTracking = -100;
var maxTracking = 100;

// main function
function main() {
    // reference to the characters within the current selection
    var characters = app.selection[0].characters;
    // iterate through the selected characters
    for (var i = 0; i < characters.length; i++) {
        // set tracking to a random number between minTracking and maxTracking
        characters[i].tracking = Math.random() * (maxTracking - minTracking) + minTracking;

// run main function as one undoable action
app.doScript(main, ScriptLanguage.javascript, undefined, UndoModes.ENTIRE_SCRIPT, 'Randomize Tracking');


  • Copy the script and paste it into a text editor.
  • Edit the two settings to fit your needs.
  • Save the script as a .jsx file and place it in the folder with your other userscripts. (You can find them by right-clicking the User folder in the Scripts panel and choose Reveal in Explorer/Finder.)
  • Make a text selection or select a text frame.
  • Locate and double-click the script in the Scripts panel.


  • The script will fail if you try to run it with no open document, without having any text selected or if you have a selection which contains other objects (and maybe more). Different checks could be added to account for these situations.
  • An interface could be added to make it easier to choose other settings.
  • Wow, that's just perfect. And I bet I could figure out how to do kerning using your example too! Thanks! May 15, 2021 at 2:43
  • Yes, to instead change kerning you can just change characters[i].tracking to characters[i].kerningValue. But visually it will look exactly the same.
    – Wolff
    May 15, 2021 at 8:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.