Infinite notepad written in java
jscribble [options]
java -jar jscribble.jar [options]
javaws http://martin-ueding.de/download/jscribble/jscribble.jnlp
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.
-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
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.
~/.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.
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.
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.
memory_usage_show=true rule_line_spacing=20
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)
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.
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.
Xournal
Martin Ueding <[email protected]>