code: async function progressBar(plugin, context, { skip } = { skip : false }) {
    const cols = [];
    const index = await plugin.currentSlideIndex();
    cols.push(`${skip ? 'Skipping' : 'Printing'} slide `);
    cols.push(`#${index}`.padEnd(8));
    cols.push(' (');
    cols.push(`${context.currentSlide}`.padStart(context.totalSlides ? context.totalSlides.toString().length : 3));
    cols.push('/');
    cols.push(context.totalSlides || ' ?');
    cols.push(') ...');
    // erase overflowing slide fragments
    cols.push(' '.repeat(Math.max(context.progressBarOverflow - Math.max(index.length + 1 - 8, 0), 0)));
    context.progressBarOverflow = Math.max(index.length + 1 - 8, 0);
    return cols.join('');
  }
docs: TODO: add progress bar, duration, ETA and file size