jscribble - infinite notepad written in Java
java -jar jscribble.jar [options]
jscribble is a graphical notepad with as many pages as you want. You can organize your notes within notepads. Best used with a graphics
tablet or touchscreen.
You can organize your notes into notebooks, which allow you to have several collections of notesheets. At startup, you can select which
notepad you want to use. If you do not want to save your notes, you can go into the scribble mode. All notes that you take there, will be
thrown away when you close the program--without any sheet of paper wasted.
Taking notes on paper allows you to draw and write whatever you want. Some people are fast enough in LaTeX to set complicated formulas
while in a lecture. Some prefer to draw these by hand but do not like carrying lots of paper with them.
jscribble offers screen based note taking with as many pages as you want. Xournal offers more features but is paper size oriented which
does not make sense on a 10" netbook screen where one wants to use the whole screen for taking notes.
Another focus was set to avoid any mouse navigation. All you can do with your mouse (or pen) is draw, therefore you cannot click anything
accidentally. Navigation is done with the keyboard. This stance is weakened a little now, there is a mouse only mode which features panels
at the left and right side of the screen to flip pages. You can also advance to the next page using the middle click. Both of these options
have to be enabled in the configuration file, though.
The eraser was implemented later too, it can be disabled in the config if it causes trouble. It is activated by default since it is very
You need the Java Runtime Environment (JRE) to run jscribble.
-v Verbose Mode.
Allows one to overwrite any config key in the default config and the user config. See below for a list of all available config keys
To flip between the pages, you can use the arrows keys, space bar, enter and backspace.
When the primary mouse button is pressed, a line is drawn, the secondary mouse button erases.
All controls are displayed in the online help screen activated by h or F1.
jscribble uses plain PNG images to store your drawings. They are, by default, in the ~/.local/share/jscribble directory. On Windows, that
is somewhere in the C:Documents & Settings or C:Users directory.
The notebooks are plain folders, each containing a heap of images. The folder name corresponds to the notebook name. To avoid strange
names, the notebook name is restricted to very few characters by default.
The images are numbered, zero padded to 6 digits. The program uses %06d.png to format the number. In case you have more images, the file
name will get longer.
You can delete images from the folder, the program will still find them. You will get something like Page 15/13 if you delete two images in
front of the gast one.
There is a configuration option that will tell jscribble to automatically compress the file names, that is to renumber them so that they
jscribble supports a user config file that overrides values from the default config file.
Create a file called config.properties in the .config/jscribble directory in your home directory. Then insert key-value pairs with an equal
sign in each line.
The format is the standard Java Properties format.
String A string which will get parsed in some way.
A number, often sizes measured in pixels.
Color A hexadecimal color with optional alpha part in the front, RRGGBB or AARRGGBB.
Float A decimal number.
Keyboard Char or Code
A comma separated list of key key codes and key chars. A single character will be interpreted as a literal character on the key-
board, multiple characters will be interpreted as a key code number.
A comma separated list of mouse down masks.
true or false.
The type is given in brackets, the default value in parentheses.
Date format used for logging. [String] (yyyy-MM-dd HH:mm:ss)
Background color of the online help screen. This is a translucent black currently. [Color] (C8000000)
Border radius on the backdrop of the online help screen. [Integer] (20)
Closes the online help screen. [Key] (27)
Margin outside the backdrop. [Integer] (50)
Padding inside the backdrop. [Integer] (70)
Spacing between left and right column of the help screen. [Integer] (250)
Toggles the online help screen. [Key] (h,112)
Spacing between the rows of the help screen. [Integer] (30)
Color of the help splash. This is a very translucent black currently. [Color] (64000000)
Corner radius of the help splash screen. [Integer] (20)
Enables the help splash at startup. [Boolean] (true)
Height of the help splash box. [Integer] (50)
Margin around the help splash. [Integer] (15)
Distance of the memory usage from the bottom. [Integer] (10)
Distance of the memory usage from the left. [Integer] (10)
Enables the memory usage display. [Boolean] (false)
Enables automatic renaming of files. [Boolean] (false)
Color of the paper. [Color] (FFFFFF)
Number of notesheets that are to be cached when moving back and forward in the notebook. [Integer] (10)
Closes the current notebook. [Key] (q)
Height of new notebooks if the user does not use his native resolution. [Integer] (600)
Width of new notebooks if the user does not use his native resolution [Integer] (1024)
Mouse button to use for drawing. [Mouse] (0,1024)
Width of the pen. [Integer] (1)
Enables the eraser. [Boolean] (true)
Mouse button to use for erasing. [Mouse] (256,4096)
Width of the eraser. It should be way larger than the pen to make erasing easy. [Integer] (8)
Time in milliseconds to wait after last erasing to repaint the onion layers and ruling. [Integer] (100)
Color of the pen. [Color] (000000)
Key to go back a page. [Key] (k,38,37,08)
Mouse button to go back a page. [Mouse] ()
Key to go forward a page. [Key] (j,40,39,32,10)
Mouse button to go forward a page. [Mouse] ()
Key to go to first page. [Key] (f,36)
Key to go to last page. [Key] (l,35)
The name of every new notebook is validated against this. This prevents anything cumbersome in file names. [String]
Height of the initial selection window. [Integer] (300)
Width of the initial selection window. [Integer] (400)
Position of the onion layer info from the left. [Integer] (10)
Position of the onion layer info from the top. [Integer] (15)
Removes one onion layer. [Key] (-)
Adds one onion layer. [Key] (+)
Opacity of the individual onion layers. If this is set high, one can see the other layers pretty well, if one sets it low, a better
separation is achieved. [Float] (0.8)
Position of the page number from the top. [Integer] (15)
The name is used for the settings directory. If this is changed, all previously made notebooks are still on the disk, but cannot be
accessed through the program any more. [String] (jscribble)
Key to toggle graph ruling. [Key] (g)
Color of the ruling. It is drawn with the same opaqueness as the onion layers. [Color] (646464)
Spacing between the lines or squares. [Integer] (40)
Key to toggle line ruling. [Key] (r)
Color of the mouse only mode scroll panels. [Color] (64000000)
Padding top and bottom of the scroll panels. [Integer] (5)
Width of the scroll panels. [Integer] (20)
Enables panels at the side of the screen to navigate without a keyboard. Useful for tablet computers. [Boolean] (false)
It does not make much sense to overwrite this since this property is always looked up in the default config. [String] (config.prop-
Named notebooks are saved in a folder in the user's home directory. Notebooks that are in the scribble mode are not saved to the user's
home directory but in the temporary directory of the system. On Linux, this is usually /tmp. The files are not readable to anyone but the
If the user's home directory is encrypted, but the temporary folder is not, an attacker might be able to recover images drawn in the scrib-
Please report bugs in English or German via email to me. Include the version number which is displayed at the bottom of the help screen
within the program.
Martin Ueding <email@example.com>