Stylus Labs Write FAQ

Known issues

Additional downloads

Write 3 (current version)

On Github

Write 2

Last updated 2017. Note that documents saved with the latest version may not be readable by older versions.

Other

Shared Whiteboarding

Write supports shared whiteboarding - multiple users can collaborate on a document in real-time. For performance, the server is best run on your local network - see github.com/styluslabs/stylusboard or download this Linux executable to get started. For simple testing, you may use "www.styluslabs.com" for the whiteboard server after creating an account. Write is hardcoded to use ports 7000 and 7001, so these must be open in any firewalls between the server and clients. Note that a given user can only have one connection to a whiteboard.

In Write for iOS, enable advanced preferences, then in the Advanced -> Whiteboard server field enter the host name or IP address of the machine running `stylusboard`. After restarting Write, options to create a whiteboard and open a whiteboard will be available on the Document menu. (from the current document) will be available in the document menu, and a button to connect to a whiteboard will be available in the document list window.

The format for whiteboard URLs is: [swb://][user[:password]@server/]whiteboard_id

Whiteboards can be opened from the command line by passing a URL beginning with "swb://" to Write. It is also possible to register the "swb://" scheme to allow whiteboard links to be opened from web browsers, etc - see below.

General Questions

How can I support the development of Write?

The best way to support the development of Write is to help spread the word: share a screenshot of your notes on Reddit, Twitter, etc., leave a review on the app store (for iOS and Android users), and, if you know anyone who might find Write useful, let them know!

Why isn't Write for Android being updated on Google Play?

Due to Google's increasingly hostile policies, it is no longer possible to update Write on Google Play without breaking things for current users. Install Write from here instead.

How can I insert shapes such as circles or squares?

Shapes can be stored in and inserted from the clippings library, then stretched and rotated as needed. One way to add new shapes is to find or create the desired shape as SVG. Short bits of SVG can be copied to the clipboard as text and pasted into Write. On desktops platforms, SVG files can be dragged and dropped into Write. If you are typing SVG manually on iOS, be sure to disable Smart Punctuation in system Settings -> General -> Keyboard.

How can I use DOI links, e.g. for journal articles, without having to use a fixed URL?

In Windows, you can register a "doi://" URL scheme with a registry entry that launches a browser via a batch file. You may wish to replace doi.org in this example with a more useful site. You can then use links of the form "doi://10.1109/5.771073". Similar approaches may work for other platforms.

How can I create custom page backgrounds?

See github.com/styluslabs/templates

In the Create Link dialog, enter the relative path to the target document, i.e., a path beginning with . or .. To link to a specific bookmark in the target document, append the id of the bookmark to the path. The id of a bookmark can be copied from the "URL" field of the Create Link dialog when the bookmark is selected (in the target document). Example: "../document.svgz#b-hu3knsl5j". When a link to another document is used, the current document will be saved and the linked document will replace it. To return to the previous document, long press or right click the document title button to show the recent documents list.

Is Write's interface available in languages other than English?

Write includes a Simplified Chinese localization, but currently it must be selected manually on platforms other than iOS - run Write from the command line with "--locale=zh-CN --saveconfig" once.

How can I display a cover for each document?

Use the first page of each document for your cover design and enable "Use first page for thumbnail" in Document List preferences.

How can I sync my files between devices?

Write stores documents as plain files accessible by other applications, so any application that allows the user to specify which folder(s) to sync will work. On iOS, Write uses the Files app, so syncing is automatic when documents are saved in cloud folders (just install the app for your preferred service to make it available in the Files app). On Android, users have reported success with DropSync. Other options include FolderSync and SyncThing. The default folder for Write documents is /styluslabs/write if Storage permission is granted, or /Android/data/com.styluslabs.writeqt/files if not.

How can I copy a Write documents to and from an iOS device?

The iOS Files app supports mounting network drives in addition to using cloud storage services. Alternatively, to access files on a device connected with USB, open the device in Finder, chose the "Files" tab and open the folder for "Write" (on macOS versions prior to Catalina, use iTunes). Access to app folders over USB is also possible on Linux with libimobiledevice (install libimobiledevice-utils on Ubuntu/Debian). If your desktop enviroment does not automatically mount Write's documents folder, install ifuse and run ifuse --documents com.styluslabs.write3 <mount-point>. If you encounter an error referring to "lockdownd", try running idevicepair pair. When finished, unmount with fusermount -u <mount-point>.

What are the units used in the Page Setup dialog?

The units in the Page Setup dialog are (1/150) inch. Write attempts to detect the DPI of your device's screen so that pages are displayed actual size, but it is possible to force a specific DPI in the Advanced section of Preferences.

Is it possible to have more than 8 saved pens?

Yes, open the config file in a text editor and duplicate some of the lines at the bottom of the file to add more saved pens which can then be customized in Write. Note that the colors and widths on pen toolbar can also be customized by long pressing on them.

How can I save a document in a different format?

Write can save documents in four formats: .svgz (gzip-compressed SVG, the new default), .svg (uncompressed SVG), .htm (single file HTML document with <svg> elements), and .html (separate .svg file for each page). To create or save a document in a format other than the default, add the appropriate extension to the name in the New Document or Save As dialog. .html and .htm are not supported on iOS. Documents can also be exported to PDF.

How can I convert a document to a different format from the command line?

./Write --exit --out <new>.<new ext> <old>.<old ext>

How can I import a PDF?

On Linux or Mac, pdf2write.sh in github.com/styluslabs/templates can convert PDF to SVG for use in Write. Another option using inkscape is github.com/kosmospredanie/pdftowrite. For LaTeX documents, dvisvgm produces good results converting directly from DVI:dvisvgm -p1- -bpapersize --stdout in.dvi > out.svg

Does Write support typed text?

Write can display text in SVG documents, so it is possible to paste text into Write by wrapping it in <text> tags, but the text itself cannot be edited in Write. Some simple editing functionality may be added in the future. It is worth noting that research has shown handwriting improves learning vs. typing: see, e.g., this research article.

How can I open a multi-file Write document on iOS?

The easiest way is to save in a single file format before copying to iOS. Otherwise, all files must be copied into the "On My iPad" -> Write folder in the Files app (because iOS requires the user grant permission for each individual file in all other locations).

How can I open a Write .svgz file in other applications?

Some vector graphic applications, such as Inkscape, may not be able to open Write's svgz documents directly because they do not fully implement the gzip specification. In this case, the extension can be changed from .svgz to .svg.gz and a compression utility used to expand to an svg file, or the document can be saved as uncompressed svg in Write. Note that Write may not be able to reopen the file if it is saved by another application and some modifications can cause strange behavior in Write, so be sure to make a backup. Google Chrome stopped supporting svgz around version 72, see this bug. And here is a 20 year old bug regarding svgz support in Firefox.

How can I safely edit a Write document in other applications?

Only content inside svg.write-page will be rendered and preserved by Write. Only content inside g.write-content can be edited in Write. Inkscape at least should be able to move content into the necessary location.

How can I reduce the file size of Write documents?

First, make sure you are using the .svgz format. To further reduce the file size, you can try increasing the "Simplification" setting in Preferences -> Input. Also, make sure Preferences -> Advanced -> Reduce image size is enabled.

What is "Linear color interpolation"?

In short, colors in images and vector graphics files are specified and rendered in sRGB space, but any color blending, including for antialiasing, should happen in linear color space. Most applications (browsers, PDF viewers, etc.) don't do any sRGB/linear conversion and thus do all blending in sRGB space. This results in reduced antialiasing quality, i.e., more jagged lines. A simple demonstration of this is to compare a checkerboard pattern of black and white pixels to 50% opacity solid black on white (or white on black). These two will appear, correctly, to be the same color only with linear color interpolation. Write now does linear color blending by default, so lines in a Write document will look slightly thicker when viewed in other applications. If this is an issue, linear color interpolation can be disabled in Preferences.

How can I customize the appearance of Write?

Open ugui/theme.cpp, then cut and paste the two strings, defaultStyleCSS and defaultWidgetSVG, to files, e.g., theme.css and theme.svg. Edit these files as desired and run Write from the terminal with the following command to test:./Write --guiSVG=theme.svg --guiCSS=theme.cssWhen done, add the "--saveconfig" option to the above command and run once.

Where are clippings stored?

The path to the clippings document is stored in the clippingDoc key in Write's configuration file. This can be changed to store the clippings document in a different location. On iOS, a path such as "Documents/clippings.html" will make the clippings doc accessible in the Files app.

Where can I find Write's configuration file?

Note that Write must be closed when manually editing the configuration file or the changes will be overwritten.

How can I change the suggested title for new documents?

Edit the preference "newDocTitleFmt" in write.xml - see http://www.cplusplus.com/reference/ctime/strftime/ for the format to use.

What other options are available in write.xml?

Configuration options can also be passed on the command line. For example: --continuousZoom=1

How can I customize the toolbar?

Edit the preference "toolBars2" in write.xml. See below for possible values.

Actions and shortcut keys (items with * cannot be placed on toolbar):

action_Previous_Page - Previous Page: Left Arrow
action_Next_Page - Next Page (add if at end): Ctrl+Right Arrow
*action_Page_Down - Next Page (do not add new page): Right Arrow
*action_Prev_Screen - Previous Screen: PageUp
*action_Next_Screen - Next Screen: PageDown
*action_Scroll_Up - Scroll Up: Up Arrow
*action_Scroll_Down - Scroll Down: Down Arrow
*action_JumpBeginning - Goto Beginning of Document: Ctrl+Home
*action_JumpEnd - Goto End of Document: Ctrl+End
*actionZoom_In - Zoom In: Ctrl+=
*actionZoom_Out - Zoom Out: Ctrl+-
*actionReset_Zoom - Reset Zoom: Ctrl+0
actionPrevious_View - Previous View: Backspace
actionNext_View - Next View: Shift+Backspace
actionFullscreen - Fullscreen: F11
actionSplitView - Split View: Ctrl+T
*actionNew_Page_Before - New Page Before
*actionNew_Page_After - New Page After
*actionDeletePage - Delete Page
actionExpand_Down - Expand Page Down
actionExpand_Right - Expand Page Right
*actionMove_Page - Move Page...
actionUndo - Undo: Ctrl+Z
actionRedo - Redo: Ctrl+Y
actionCut - Cut Selection: Ctrl+X
actionCopy - Copy Selection: Ctrl+C
actionPaste - Paste from Clipboard: Ctrl+V
actionDupSel - Duplicate Selection
*actionSelect_All - Select All: Ctrl+A
*actionInvert_Selection - Invert Selection
actionDelete_Selection - Delete Selection: Delete
actionCreate_Link - Create Link...: Ctrl+L
*actionUngroup - ungroup (by one level) any groups in current selection
actionNew_Document - New Document - Ctrl+N
action_Open - Open Document...: Ctrl+O
actionSave - Save Document: Ctrl+S
*actionSave_As - Save As...: Ctrl+Shift+S
actionRevert - Discard Changes... (Close Document): Ctrl+W
actionShare_Document - Create Whiteboard...
actionOpen_Shared_Doc - Open Whiteboard...
actionShow_Bookmarks - Bookmarks: Ctrl+B
actionShow_Clippings - Clippings: Ctrl+H
actionPage_Setup - Page Setup...
actionInsert_Image - Insert Image...
*actionInsertDocument - Insert Document...
*actionExport_PDF - Export PDF...
actionPreferences - Preferences...
actionDisable_Touch - Disable Touch Input
actionTools_Menu - all tools on one menu
actionSelection_Menu - all selection related actions
actionOverflow_Menu - main menu

iOS/Android only:
*actionSend_Page - Send Page Image
*actionSend_HTML - Send Document
*actionSend_PDF - Send PDF

Tools:
actionPan - Pan
actionDraw - Draw
actionCustom_Pen - Custom Pen... (Pen toolbar): 9
actionAdd_Bookmark - Add Bookmark: 0
actionErase - Erase
actionStroke_Eraser - Stroke Eraser (erase whole stroke)
actionRuled_Eraser - Ruled Eraser
actionFree_Eraser - Free Eraser (erase part of strokes)
actionSelect - Select
actionRect_Select - Rectangle Select
actionRuled_Select - Ruled Select
actionLasso_Select - Lasso Select
actionPath_Select - Path Select
actionInsert_Space - Insert Space
actionInsert_Space_Vert - (Unruled) Insert Vertical Space
actionRuled_Insert_Space - Ruled Insert Space

Special toolbar items:
tools - Draw, Erase, Select, Insert Space as a single menu bar
seltools - Cut, Copy, Paste or Paste if popup selection tools enabled
docTitle - button showing title of current document; tapping opens document browser; long press shows recent documents
stretch - stretchable space
separator - vertical line for visually separating groups of toolbar buttons

Modifier keys:
Space bar or Ctrl+Shift: Pan
Shift: Erase
Ctrl: Select
Alt: Insert Space

Additional shortcuts:
Number keys 1-8 select saved pens
;/' cycle through saved pens sequentially

Devices

How should a Wacom tablet be configured for use with Write on Linux?

On X11, be sure to install the Wacom input driver (xserver-xorg-input-wacom package on Ubuntu and Debian). For more responsive touch scrolling and zooming on pen and touch tablets, you may wish to runxsetwacom set <id> Gesture offwhere <id> is the device number or name (e.g. "Wacom Intuos PT S Finger touch") for the device with "type: TOUCH" listed byxsetwacom list devicesNote that this setting may prevent scrolling and zooming gestures from working in other apps. To prevent unintended zooming with two-finger scroll when the tablet is smaller than the screen, you may wish to add the following line to Write's config file:<float name="touchMinZoomPtrDist" value="250" />adjusting value as needed.

Which devices are recommended for use with Write?

Write is primarily developed on the Lenovo Thinkpad X1 Yoga and Apple iPad with Apple Pencil. There are now many other Windows/Linux and Android devices with stylus support - those with Wacom or N-trig digitizers are best.

Can Write be used without an active stylus?

Yes, although it will be necessary to write 2 to 4 times larger than normal. We recommend zooming in rather than changing the page size or ruling. Be sure the "Pan from edge" option is enabled in Input preferences, as this makes it easy to move the page by dragging in a single touch from the screen edge, eliminating the need to switch between one and two fingers.

Legacy Android Version

How can I crop, rotate, or edit images inserted into a document?

To crop or remove portions of an image in Write, use the Free Erase tool. For more advanced editing, first import the image to a third party editor such as Android Photo Editor and then send to Write when done.

How do I get newly synced or copied documents to appear in the document list?

Go to the Advanced section of Preferences and select "Clear document list", then "Import existing documents."

How can I restore the backup zip file created by Write?

Use a file manager app to extract the contents of the zip file to /sdcard/styluslabs/write. Then, go to Preferences -> Advanced -> Import existing documents (if using Write Beta, this option is not need - the documents will be found automatically).

Problems opening documents

Even if Write itself were perfect, your documents could be lost due to your device being lost or damaged. Documents can also be become corrupt if your device suddenly loses power. Therefore, it is absolutely essential to have automated backups of all documents. The easiest backup method is to sync documents to a cloud storage service, as described above in "How can I sync my files between devices?"

If Write is unable to open documents, the first thing to do is check the /sdcard/styluslabs/write folder using a file manager app. If the folder contains .svg files but the .html files are missing or corrupt (for example, have a size of 0), Write 3 may be able to open the documents because it has improved handling of damaged documents. If the folder is empty, or only contains recent documents, a third-party application may have deleted the documents. Because Write documents are accessible to other applications, backup is easy, but it is also possible for other applications to delete Write documents. Unfortunately, it may not be possible to recover the lost documents in this case. If you recently used a "cleaner" application to free up storage space, it may be the culprit. Please email support@styluslabs.com with details of the cleaner application used. A previous version of a popular cleaner application erroneously deleted Write's documents but was fixed after the issue was reported to the application's developer.