SYNOPSIS

jscribble [options]

java -jar jscribble.jar [options]

javaws http://martin-ueding.de/download/jscribble/jscribble.jnlp

DESCRIPTION

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 handy.

You need the Java Runtime Environment (JRE) to run jscribble.

OPTIONS

-v

Verbose Mode.

--key value

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

DEFAULT CONTROLS

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.

FILES

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.

~/.jscribble/test_notebook/
    000001.png
    000002.png
    ...
    000100.png
    ...
    999999.png
    1000000.png
    ...

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 are consecutive.

Config File

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.

Value Types

String

A string which will get parsed in some way.

Integer

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 keyboard, multiple characters will be interpreted as a key code number.

Mouse Mask

A comma separated list of mouse down masks.

Boolean

true or false.

Example Config

memory_usage_show=true
rule_line_spacing=20

Available Keys

The type is given in brackets, the default value in parentheses.

date_format

Date format used for logging. [String] (yyyy-MM-dd HH:mm:ss)

help_screen_background_color

Background color of the online help screen. This is a translucent black currently. [Color] (C8000000)

help_screen_border_radius

Border radius on the backdrop of the online help screen. [Integer] (20)

help_screen_close_key

Closes the online help screen. [Key] (27)

help_screen_margin

Margin outside the backdrop. [Integer] (50)

help_screen_padding

Padding inside the backdrop. [Integer] (70)

help_screen_spacing

Spacing between left and right column of the help screen. [Integer] (250)

help_screen_toggle_key

Toggles the online help screen. [Key] (h,112)

help_screen_vspacing

Spacing between the rows of the help screen. [Integer] (30)

help_splash_background_color

Color of the help splash. This is a very translucent black currently. [Color] (64000000)

help_splash_border_radius

Corner radius of the help splash screen. [Integer] (20)

help_splash_enable

Enables the help splash at startup. [Boolean] (true)

help_splash_height

Height of the help splash box. [Integer] (50)

help_splash_margin

Margin around the help splash. [Integer] (15)

memory_usage_position_bottom

Distance of the memory usage from the bottom. [Integer] (10)

memory_usage_position_left

Distance of the memory usage from the left. [Integer] (10)

memory_usage_show

Enables the memory usage display. [Boolean] (false)

notebook_auto_compress

Enables automatic renaming of files. [Boolean] (false)

notebook_background_color

Color of the paper. [Color] (FFFFFF)

notebook_cache_width

Number of notesheets that are to be cached when moving back and forward in the notebook. [Integer] (10)

notebook_close_key

Closes the current notebook. [Key] (q)

notebook_default_height

Height of new notebooks if the user does not use his native resolution. [Integer] (600)

notebook_default_width

Width of new notebooks if the user does not use his native resolution [Integer] (1024)

notebook_draw_mouse_button

Mouse button to use for drawing. [Mouse] (0,1024)

notebook_draw_stroke_width

Width of the pen. [Integer] (1)

notebook_erase_enable

Enables the eraser. [Boolean] (true)

notebook_erase_mouse_button

Mouse button to use for erasing. [Mouse] (256,4096)

notebook_erase_stroke_width

Width of the eraser. It should be way larger than the pen to make erasing easy. [Integer] (8)

notebook_erase_timeout

Time in milliseconds to wait after last erasing to repaint the onion layers and ruling. [Integer] (100)

notebook_foreground_color

Color of the pen. [Color] (000000)

notebook_go_back_key

Key to go back a page. [Key] (k,38,37,08)

notebook_go_back_mouse_button

Mouse button to go back a page. [Mouse] ()

notebook_go_forward_key

Key to go forward a page. [Key] (j,40,39,32,10)

notebook_go_forward_mouse_button

Mouse button to go forward a page. [Mouse] ()

notebook_goto_first_key

Key to go to first page. [Key] (f,36)

notebook_goto_last_key

Key to go to last page. [Key] (l,35)

notebook_name_validation_pattern

The name of every new notebook is validated against this. This prevents anything cumbersome in file names. [String] ([A-Za-z0-9-_]+)

notebook_selection_window_height

Height of the initial selection window. [Integer] (300)

notebook_selection_window_width

Width of the initial selection window. [Integer] (400)

onion_info_position_left

Position of the onion layer info from the left. [Integer] (10)

onion_info_position_top

Position of the onion layer info from the top. [Integer] (15)

onion_layer_decrease_key

Removes one onion layer. [Key] (-)

onion_layer_increase_key

Adds one onion layer. [Key] (+)

onion_mode_opacity

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)

page_number_position_top

Position of the page number from the top. [Integer] (15)

program_name

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)

ruling_graph_toggle_key

Key to toggle graph ruling. [Key] (g)

ruling_line_color

Color of the ruling. It is drawn with the same opaqueness as the onion layers. [Color] (646464)

ruling_line_spacing

Spacing between the lines or squares. [Integer] (40)

ruling_toggle_key

Key to toggle line ruling. [Key] (r)

scroll_panel_color

Color of the mouse only mode scroll panels. [Color] (64000000)

scroll_panel_padding

Padding top and bottom of the scroll panels. [Integer] (5)

scroll_panel_width

Width of the scroll panels. [Integer] (20)

scroll_panels_show

Enables panels at the side of the screen to navigate without a keyboard. Useful for tablet computers. [Boolean] (false)

user_config_filename

It does not make much sense to overwrite this since this property is always looked up in the default config. [String] (config.properties)

SECURITY CONSIDERATIONS

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 user.

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 scribble mode.

BUGS

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.

RELATED TO jscribble…

Xournal

AUTHOR

Martin Ueding <[email protected]>