Application icon courtesy of an anonymous contributor.
Title: Newtzilla Conquers the Desktop?
Many external links may be obsolete -- if you have updates, please send.
There may be problems with .pkg files (esp. for Mac OS X) -- it may be safest to use .zip archives.
- 28 Nov 2001:
newtVNC 3.3a9 available: version history;
it now includes a server! (screenshot);
updated Implementation Notes. does anyone have 2 networked Newtons?
it would be an interesting test to run newtVNC (viewer mode) on one, and newtVNC (server mode) on the other...
- 9 Nov: -48201 in 3.3a7 discussed in Issues;
added overview screenshot
- 8 Nov: newtVNC 3.3a7
- 6 Nov: newtVNC 3.3a6; many thanks to Paul Guyot for faster bitmap drawing code and Zlib library
- 29 Oct: VNC 3.3a5; many thanks to Paul Guyot for faster rectangle filling code;
added screenshots to the known working servers section
- 26 Oct: VNC 3.3a4;
updated screenshots: viewer UI
(default (Expanded) interface: status area at top, scroll controls at right and bottom, commands at bottom);
connected to Windows PC
(new (Compact) one-line interface: compact scroll controls, commands at top; in landscape)
Since this is a working document, I've used typographic prefixes in some places to indicate:
- ***
- important requirement or current constraint
- !!!
- in progress or to do
- ???
- possible problem, or needs clarification/information/feedback
VNC = Virtual Network Computing.
Basically, you can display the screen of a remote system over a network,
point at its screen and enter text. There are other tools available for screen sharing,
but VNC is cross-platform, free, open source.
newtVNC is free VNC viewer and server for Newton; !!! source code will be made
available after this has stabilized and I've had a chance to do some code
cleanup, and figured out the license; it's a complete rewrite (rather than port)
it was inspired by GPL (GNU General Public License) Java code, but completely rewritten in NewtonScript;
also, there are contributions from others and Apple's NTK and Newton libraries aren't GPL,...
Please provide feedback on this version, current issues, and
missing features to Steve.
If you experience problems, be sure to check
Version History, Current Issues
and Implementation Notes to see
if a problem/issue has already been noted or fixed.
Otherwise, telling me version of newtVNC, your model MessagePad, screen
orientation, and relevant viewer/server preference
settings (Encoding, Use Copy Rect, Display Size, Gray Levels) would help
greatly if you'd actually like me to reproduce, identify, and fix the
problem. It also helps if you can verify that the server does not have
the same problem with a different viewer, similarly configured (if
possible); and if the server provides a log, so much the better.
BugTrap or NTK Inspector results and screenshots are helpful also. If you
have success with a particular server, especially if you have to tweak
settings in newtVNC and/or server, let me know details -- and I can
post here to spare others the same pain. There may be discussion also on
NewtonTalk.
- NOS 2.1
- MessagePad2000(MP2K), 2100 or eMate
- ??? although earlier newtVNC versions [≤ 3.3a7] should work for NOS 2.0, using b&w display and non-ethernet
connections, I have not heard from any 2.0 users, so assume this is not really practical. success anyone?
- *** store
- [Viewer] you should have an extra space available on your Default Store for a full (~320x416 or ~432x304)
local screen (double these if you create an overview also):
- 16-grays: 66K
- 4-grays: 33K
- b&w: 16K
- ??? should Store be a preference
- software
- if you plan to use Zlib encoding, be sure to install Paul Guyot's library
- user
- experience with using other VNC viewers (and perhaps configuring your own server)
- ability to deal with beta software and partial documentation, and provide detailed bug reports
- $$$?
- nope, this is free
- network connection
- *** tested only with NIE 2.0, Ethernet card and local network (both hub, and directly via crossover cable)
- ??? dialup, firewalls/proxies
- remote server
- for use with newtVNC as viewer
- I've tested mostly with WinVNC, and somewhat with the two Mac OS 9 versions;
if you have success with other platforms/servers, please send details so that I can include here;
(if you have a different server and provide a host address and password, perhaps I can investigate/reproduce problems there)
- servers known to work with newtVNC, issues, screenshots:
- Windows (2000)
- WinVNC 3.3.3R9
- screenshot
- this has worked best for my testing
- TightVNC 1.2.2
- screenshot
- based on WinVNC 3.3R9 3.3; supports Zlib encoding
- TridiaVNC 1.4.0
- screenshot
- based on WinVNC 3.3R9 3.3; supports Zlib encoding
- Macintosh (OS 9.2)
- Mac VNC 3.3.3b2
- screenshot
- for server, be sure to enter a password and save preferences
- this server performs well (*** when it doesn't hang Mac); right click, clipboard don't work
- ChromiVNC 3.4.0a5
- screenshot
- *** server sends updates for entire remote screen (I've contacted developer about this),
so Newton has to skip through a lot of extra data (so, use Hide Others and make rest of screen a plain background?) --
this may lead to timeouts/disconnects; more stable, but less usable, than MacVNC IMHO;
right click works; !!! I need to add some mapping for cmd-
- ??? does not actually support Zlib encoding even though server displays that preference
- Macintosh (OSX 10.1)
- OSXvnc-0.6
- screenshots (from Carsten Lemmen)
- Linux
- there should be versions of standard (ATT) VNC viewer, TightVNC and TridiaVNC; ??? others
- remote viewer
- for use with newtVNC as a server
- most of the servers listed above also include viewers
- newtVNC server has been tested with WinVNC, TightVNC, TridiaVNC, MacVNC [Macintosh]
It is possible to start using newtVNC fairly quickly:
- check/set preferences
- connect (or listen -- Server)
- view, interact: scroll, point, enter text, use clipboard
- disconnect, or exit newtVNC
Even though the newtVNC application view consists mostly of the remote display,
there are a number of controls available.
Since this is an early version and there are some things that are different from a
standard desktop viewer -- smaller screen, pen instead of mouse, different forms of text input,
it's best to go thru the user interface commands/features first. This assumes you have some
familiarity with VNC terminology and other VNC viewer(s). If you've used an earlier version of newtVNC,
you should check Version History and the descriptions below since some preferences
and behavior may have changed.
*** It is possible to select between four(for now) Local interface styles;
any interface items in different locations are labeled with [Expanded], [Compact], [Compact(top)], [Compact(float)].
Also, it is possible to use newtVNC as either a [Viewer] or as a [Server].
screenshot [Expanded]: Prefs, Connect, About
- "i" (info) button
- lower left; [Compact(top)] upper left
- used to access preferences and About
This displays brief information about the version of newtVNC.
If Newt's Cape is installed, you can tap on the web link;
in addition, if you have a mail client installed, you can tap on the mail link to provide feedback.
??? add relevant config info automatically to email, e.g., Log.
Note: Server currently uses only Display Size and Refresh.
- Encoding
- these are ranked here roughly in increasing order of data transferred, and annotated with proportion of
bitmap drawing and rectangle filling
- ??? Tight, ZlibHex
- (some bitmaps, some fills)
- these may be more compressed/concise than Zlib, but due to more complex processing,
are not currently faster on Newton -- so they are not included
- Zlib
- (all bitmap)
- this is basically the same as Raw except it is compressed (similar to .zip file), so less data is transferred
- requires Zlib.pkg-- library from Paul Guyot
- requires a server that supports Zlib: TightVNC, TridiaVNC; ??? others
- Hextile [default]
- (some bitmaps, mostly fills)
- server sends series of 16x16 encoded (raw, filled, etc.) rectangles
- CoRRE
- (all fill)
- Compact RRE
- RRE
- (all fill)
- "rise-and-run-length"; similar to CoRRE but more data
- Raw
- (all bitmap)
- if Zlib is not available on your server, this encoding is recommended next since it is universal
- however, if you have a slow connection, Hextile might be faster overall since less data is transferred
- generally, less data is better, but more complex encodings can actually be slower on the Newton;
Paul Guyot has written a fast bitmap drawing and rectangle filling functions (≥ 3.3a6)
(in additon to the Zlib library); bitmaps are often faster than filling many small rectangles;
Steve's current recommendation is Zlib (if your server supports it), then Raw, then Hextile --
your mileage may vary depending on server and bandwidth
- [Server] ignores this preference and sends Raw (with occasional RRE or CoRRE same-color rectangles)
- Use CopyRect
- Yes, No [default]
- [≥ 3.3a3] server tells viewer to reuse parts of screen it already has
- this can be much faster for certain operations like dragging a window by its title bar or scrolling a remote window
- if server sends CopyRect request that involves copying a source area that Newton does not completely have, newtVNC
ignores the CopyRect and request a refresh for just the destination area (this is a problem for big windows, but simpler
than to compute and request multiple missing pieces that the server assumed newtVNC already has)
- after CopyRect, server should send updates for the old areas; ??? this usually works, though sometimes I have noticed
slight errors (e.g., near window bottom a window); need to investigate whether it's a newtVNC or server problem
- Right Click
- maps caret gesture to "right" mouse button click on remote system
- ctrl-Button 1 (Mac): sends a ctrl-key modifier; this worked with ChromiVNC but not MacVNC server
- Button 2: ??? I don't have a system with middle button to test
- Button 3 (Win): [default] works with WIndows
- (≤ 3.3a3: this preference was "Mouse buttons 2&3" with Normal/Reverse settings)
- Share Desktop
- Yes, No [default]
- ??? untested with sharing enabled
- Refresh(sec)
- number of seconds between checking for incremental updates
- viewer sends an update request immediately after a pen, keyboard or scroll event,
so Refresh applies only to interim changes generated by server;
??? probably safer for this to be larger (esp. if large display size or slow connection)
- [Server] frequency to check/send incremental updates to viewer; however,
server sends an update immediately if viewer requests a full screen update,
after a pen tap, or while there are multiple updates in queue
- Display Size
-
- n x n
- various smaller sizes for initial testing, faster interaction, less storage
- full
- full width and height of local screen area (minus command line; and [Expanded] top and right);
- this is roughly 320x416 (portrait) or 432x304 (landscape); for convenience/efficiency,
newtVNC constrains display area to be a multiple of 16 (not inherently required)
- full+bar
- overlays Newton button bar area and adds those commands (including Overview) to action menu
- when used with Compact(float), screen sizes maxes out at 320x480 or 480x320
- as mentioned under Requirements, the default store is
used for local bitmap (≥ 3.3a3) and overview (≥ 3.3a6)
- the amount of storage needed is related to the local display size
and resolution (Gray Level): the amount needed is ≈ (width * height) / (8 / bpp),
where bpp = bits_per_pixel (Gray Level);
there also also some bitmap header bytes, plus bytes to pad width of each row to a multiple of 32;
so, for a full 16-gray (4 bpp) screen: 320*416 / 2 or 432*304 / 2 ≈ 66K.
- [Server] this preference determines how large a display area to send to viewer;
generally, this would be full+bar, but you can set it to full or a smaller size.
- Gray Level
- newtVNC viewer receives the same amount of data for all of these; however, the amount of local storage increases
with more gray levels -- see Display Size
- b&w (1+ bpp)
- screenshot
- this uses black, white; "+" indicates that 3 gray patterns are also used to improve display
- acceptable if lots of text and few detailed icons/images
- for NOS 2.0, you can't use or save a different setting
- 4 grays (2 bpp)
- screenshot
- better?
- 16 grays (4 bpp)
- screenshot
- best quality
- [Server] ignores this preference and always uses 16 grays;
bitmap is not stored locally, but copied in small portions to viewer
- KeyboardPref
- this preference controls which keyboard to open with the Keyboard(icon) button at lower left; [Compact(top)] upper left:
the built-in alphanumeric keyboard or one modified with extra keys; note: this does not affect the keyboard
obtained by double-tapping (if Handwriting pref is enabled)
- Standard [default]
- regular built-in alphanumeric keyboard
- +ctrl,opt,cmd
- modifies built-in Newton keyboard by adding ctrl and cmd keys, shortening option to opt
- opt sends "meta" key modifier, cmd sends "alt" to server
- more Mac-oriented
- +ctrl,meta,alt,bs
- modifies built-in Newton keyboard by adding ctrl and cmd keys, relabeling option with meta, del with bs(backspace)
- more PC-,Unix-oriented
- ??? although the patch code is extremely careful, if errors occur, let me know -- and switch back to "Standard"
- note: tapping the keyboard icon while the keyboard is open provides a menu of other system keyboards
- Handwriting On
- controls whether Handwriting Recognition is enabled or not
- Yes [default]
- enter single characters or words by writing directly on remote screen
- double tap gesture opens keyboard; hilite gesture does nothing; caret may be difficult to use
- No
- text entry only via hard or soft keyboard
- double tap gesture sent to remote system; hilite gesture available for local scrolling
- Local UI
- three styles of overall user interface:
- Expanded [default]
- commands on bottom, scrollbars on bottom and right [almost identical to 3.3a3]
- top: title, status
- right: vertical scroll controls
- bottom: info button, kbd button, horizontal scroll controls, action button, close button
- screenshot
- Compact
- bottom: info button, kbd button, title, compact scroll arrows (same as 3.3a2), action button, close button
- no status or long horizontal/vertical scroll controls; more space for remote display
- Compact (top)
- like Compact, but with commands/controls on top [former "Compact" in 3.3a4,a5]
- About, Prefs, Connect open near top
- ??? this was judged to be a less consistent Newton user interface;
if there are enough users who prefer Compact(top), this option may remain;
otherwise, it might be removed in a future code cleanup
- Compact (float)
- like Compact, the command bar appears at bottom, but it's in a floating/draggable view,
so you can display another 16 rows of pixels from the remote system; when used with
Display Size: full+bar, entire screen can be used
- Scroll Increment
- used currently for top scroll arrows [Compact, Compact(top) only]
- Create Overview
- Yes, No [default]
- if No, removes overview bitmap
- if Yes, creates a scaled overview bitmap for entire remote screen,
using same Gray Level (and roughly same storage) as the detailed bitmap
- overview is accessible via overview button • in Newton menu
- portions are filled/updated as you scroll around screen -- it's a "history" rather than a complete, current snapshot
- screenshot
- Landscape orientation provides the most detail if remote screen also has landscape dimensions
- ??? transferring entire screen at beginning could be time consuming (and would involve redesign)
- (in 3.3a6, this was on action menu)
- Apply
- save changes and close Prefs; send relevant settings to server, refresh screen
- closeBox
- close Prefs (changes discarded)
You should be able to safely view and change Prefs while connected;
however, changing the Display Size, Gray Level and/or Local UI may cause the screen to completely Refresh
(and if an update is progress, inconsistencies may be visible temporarily)
??? Include other Newton-specific preferences, or preferences from other VNC viewers?
The action menu (envelope icon) is at lower right; [Compact(top)] upper right.
Some of these commands appear only when disconnected: Connect, Log; the others appear while
connected: Disconnect, Refresh, Clipboard, Ctrl-Alt-Del; always there: Hide.
- Connect [disconnected]
- Connect dialog automatically appears when newtVNC is started (or after an unsuccessful connection with incorrect password)
- Generally, a VNC server communicates on port 5900 + displayNumber.
- General
- (common to both Viewer and Server)
- Display
- 0 [default]
- if display radio button is selected, the display number is added to 5900
- Port
- 5900 [default]
- if Port radio button is selected, the port number is used directly (without display number)
- you should probably not use 5800 since server might try to return a Java applet
- Viewer
- select Viewer radio button to choose Viewer; button displays "Connect"
- Host
- enter/pick a server name or IP address
- Newton maintains a list of ??? 5 most recent servers (and associated passwords)
- Password
- this is supplied to server if authentication is needed
- tap kbd icon for keyboard
- if connection fails due to incorrect password, Connect dialog automatically reopens
- in general, check Log if disconnect occurs
- Server
- select Server radio button to choose Server; button displays "Listen"
- System Name
- default: newtVNC: <user name>
- Password
- enter a password (up to 8 characters) to validate remote viewers
- note: currently there is no retry limit
- (in viewer)
- Host: Newton's IP address (from newtVNC's progress box while waiting for viewer to connect)
- Color: "restrict pixels to 8-bit" or "use server depth"; for MacVNC, you may have to edit "VNCViewer Preferences" manually
- Encoding: newtVNC ignore viewer preference and sends Raw, but include RRE or CoRRE for faster fill of same-color rectangles
- Connect / Listen
- connect for Viewer/listen for Server, using the Display or Port, and Host and Password info; save setting and close dialog
- [Server]: no host is required; displays progress box with its own IP address (Host for viewer);
after connected, newtVNC automatically hides
- closeBox
- close dialog (without connecting; no settings saved)
- Disconnect [connected]
- Disconnect from server; this also occurs automatically when you close newtVNC
- newtVNC should automatically (and correctly) release NIE link
- if newtVNC disconnects automatically, e.g., server timeout or network error, "gong" sounds;
check the Log; ??? should Log automatically open or Notify window popup (or too annoying)?
- [Server] newtVNC automatically shows and redisplays connect dialog;
??? later it may automatically Listen again if viewer initiated Disconnect (or an error occurred)
- Refresh [connected; Viewer]
- perform an immediate, full update
- useful to verify different encodings or if screen does become out of date;
??? if you do see incorrect areas on screen,
and need to use Refresh, let me know your Pref settings and what actions led to this,
and I could see if it's a newtVNC problem that I can fix.
- Log [disconnected]
- lists important status and error messages that occur during Connect or Disconnect, most recent at top
- if you are having problems, especially Connecting, and the status messages at top refresh too quickly,
this may provide some history of where things failed;
each Connect causes it to clear, or you can use Clear button
- Clipboard [connected; Viewer]
- displays any text on server's clipboard via copy or cut operation; characters are 8-bit, not unicode
- to use this text in other Newton applications, drag selection to Newton screen edge
- ??? works with WinVNC, but not MacVNC or ChromiVNC
- Save to Server: send modified text to server clipboard, close Clipboard
- closeBox: close Clipboard (changes discarded)
- Hide (aka Minimize)
- newtVNC view is hidden but not actually closed;
it can be reopened by tapping the flashing * menu at center top of screen,
or newtVNC icon in Extras
- useful if you want to access another application or Rotate screen without disconnecting
- Cut [connected; Viewer]
- cuts current remote text selection, i.e., delete and copy to remote clipboard,
which appears on local clipboard
- equivalent to ctrl-X
- Copy [connected; Viewer]
- copy text selection to clipboard
- equivalent to ctrl-C
- Paste [connected; Viewer]
- paste remote clipboard into text
- equivalent to ctrl-V
- Undo [connected; Viewer]
- undoes last remote edit
- equivalent to ctrl-Z
- for MacVNC server, this worked if Cmd-Key equivalent set to "L Ctrl"
- Select All [connected; Viewer]
- select all text (or ???)
- equivalent to ctrl-A
- ??? Other
- keyboard equivalents like Open, Close, Quit would be nice if standard across platforms,
or provide way to customize keyboard and menu mappings
- ctrl-Alt-Del [connected; Viewer]
- sends this special character to remote server
- this can also be entered directly on hardware or soft keyboard via ctrl-opt-cmd-shift-Delete
- works with WinVNC, but not Mac (map to cmd-opt-Esc ???)
- Newton menu bar items
- [if Display Size = full+bar; Viewer]
??? Other Newton-specific commands that should be included (Print; Save Screen to NewtWorks?)
or commands from other VNC viewers -- in action menu or as separate buttons? icons, sounds (esp. if built-in)
Since the Newton screen area is likely to be smaller than the display on the remote system,
newtVNC [Viewer] supports scrolling via several methods:
- horizontal and vertical scrollbars ⇐——◊------⇒
- [Expanded only] horizontal at bottom, vertical on right
- arrows on ends scroll full width(height) of local screen
- for less/more, use sliders to set position (they're rounded to 16-pixel increments, and updated by other scrollers)
- ??? change end scroll arrows to those used by compact scroller (involves some bitmap surgery to remove frame)
- scroll arrows ←→↑↓
- [Compact] bottom center; [Compact(top)] top center
- tap once to scroll by Scroll increment, e.g., 16, 64 or full, or hold down for multiple (audible) steps
- hilite gesture
- only if Handwriting preference is disabled
- if hold down at a point on screen (for a second or so until 'blob' appears), then draw to a new point,
e.g., upper left of application window to upper left of newtVNC view
- if you are in overview, hold down at corner of view rectangle and move it to a different location on screen (move gesture also works)
- if Handwriting is enabled, this gesture is remapped/trapped by the character recognizer (along with double-tap)
- overview button (Newton button bar) •
- display overview of remote screen if it has been created, along with rectangle showing current view
- use hilite or move gesture to scroll (move view rectangle to another location); other gestures ignored; detailed screen reappears
- (≤ 3.3a5, this button always scrolled to 0,0, i.e, upper left of remote screen)
- if Newton menu bar is hidden by newtVNC (i.e., Display Size = full+bar), Overview command appears in action menu
- up/down scroll arrows (Newton button bar) ⇑ ⇓
- for each separate tap (not while held down) scrolls up/down by 1/2 Display Size height
For scrolls of less than screen width or height (in one dimension), newtVNC shifts the local bitmap
and requests only the new portion.
In general, you should wait for an update to be done before scrolling -- otherwise, updates in progress
might get written to wrong location; ??? perhaps need to delay setting new origin until next update starts.
When not connected, experiment with these methods; if interface is in Expanded mode,
you can see location feedback in the status area and on the scroll sliders.
newtVNC [Viewer] uses several ways to provide feedback:
- status area
- [Expanded only] upper right
- displays status and error messages
- during updates, counts down the number of "top-level rectangles" remaining to be updated;
this varies according to encoding -- CoRRE may use a large number of rectangles (with a small amount of data in each);
others typically use a small number of rectangles
- displays pointing and keyboard events
- important status and error messages also appear in Log
- ??? more messages needed, shorten some for portrait orientation
- title area
- upper left [Expanded, Compact(top)]; lower left [Compact, Compact(float)]
- disconnected: newtVNC application name, version and local Display Size
- connected: name and size of the remote display
- during update, the title functions as a gauge:
- it turns black (with white text) when data starts to arrive from the server
- intermittently, it fills for each rectangle in update
- when update is done, title reappears in black text on white background (and main screen updates)
- main display
- automatically updates from server after scrolling, pointing or text events, or periodically -- see Refresh preference
- display usually refreshes only after a complete update has been received from server;
- there may be temporary inconsistencies if there are user events,
e.g., closing Prefs or keyboard, handwriting, scroll etc.; if inconsistencies are serious, use Refresh;
if they're reproducible, try to give me details
- (≤ 3.3a2: displayed partial updates immediately but only ephemerally)
- sounds
- built-in sounds play for many user (pointing, keyboard, scroll, action) events
- ??? if remote server sends a Bell event, Newton should play a sound, but doesn't work with servers tested
Removed in 3.3a3: separate x,y origin feedback at upper left; this now appears temporarily in [Expanded] status area;
??? should location be appended to Title (instead of fixed size)
Desktop systems typically use a mouse with 1-3 buttons as a pointing device.
The newtVNC [Viewer] can send pointing events using several gestures (note: for best results,
these should occur between rather than during updates):
- tap
- equivalent "left click": down/up in same location
- e.g., to select a menu, menu item or text insertion point
- double tap
- Handwriting disabled: doubletap should be sent to remote system, e.g., to open a document or application
- Handwriting enabled: local keyboard opens (without extra keys)
- in order to open a remote document, you can usually also use right-click to obtain a remote menu (e.g., on Windows)
that contains "Open" and other commands
- try preceding with a single tap to get 'focus' for current application
- doubletap plays another sound after regular tap if recognized; sometimes two single taps will work
- on Mac, doubletap worked to select text, and to collapse a window bar
- caret: ^ < > v
- equivalent to "right click": down/up in same location
- e.g., to obtain a Windows or Mac(ChromiVNC) menu
- Right Click preference controls how this is sent to server
- line: —————
- equivalent to select or "drag across", i.e., pen down at start location, pen up at end.
- e.g., to select text, move a window by its title, drag a scroller, or resize window via bottom right corner
- don't hold down too long -- if "fat" cursor appears, "hilite" gesture begins to be recognized,
and that either scrolls or is ignored (Handwriting pref)
- used for scrolling of overview map (≥ 3.3a6)
- this works well on Windows
- on Mac (regular VNC server), drawing across text selects; ??? dragging on title bar moves reverse direction!
- scrub: WW
- local gesture
- equivalent to typing a Backspace character
- hilite: =========
- local gesture
- used for scrolling of detailed map (≥ 3.3a4) and overview map (≥ 3.3a6)
if Handwriting is disabled
When not connected, experiment with these methods; listen to sounds; look for feedback in the [Expanded] status area.
Desktop systems typically have a hardware keyboard, with various modifier keys like Shift, Ctrl, Option, Cmd/Apple.
newtVNC [Viewer] maps Option to "Meta", Cmd/Apple to "Alt". The Newton can send keyboard events via several methods:
- hardware keyboard
- the Newton keyboard has Ctrl, Option and Apple key, which map to Ctrl, Meta, Alt
- the "Delete" key is actually Backspace; newtVNC maps Shift-Delete to Del; to get Ctrl-Alt-Del, you could type Ctrl-Cmd-Shift-Delete
- if keys do not appear (in status area or remote system), tap the screen or open the soft keyboard via keyboard button (then close it)
- ??? convention to map to Function (F1-F12) keys, e.g., ctrl-option-cmd-1,...
- soft (on screen) keyboard
- accessible by keyboard button
- standard kbd includes Option, but not Ctrl or Cmd -- Keyboard preference to add/rename keys
- ??? any third party kbds with extra keys
- character recognition
- [≥ 3.3a3]
- enable/disable via Handwriting pref
- write directly on remote screen -- recognized characters or word (w/ space) are inserted at remote selection point
- difficulty with some characters recognized as gestures:
"." for tap, "I" or "-" for line, "v" or "^" as caret. ??? user settings/practice, or newtVNC adjust recognizer flags/scripts
- scrub gesture
- backspace (clear)
- action menu
- Undo, Cut, Copy, Paste, Select All, ctrl-Alt-Del
- drag-and-drop
- you can drag and drop text from another application or the Newton clipboard
When not connected, experiment with these methods and look for feedback in the [Expanded] status area.
The status displays key combination (with modifier keys), along with actual character sent (if different).
Note: you can continue to enter text during an update; however, if the Newton generates a refresh
(e.g., after chracter recognition or if you close the keyboard), you may see partial results.
??? Perhaps add a flag to block refresh until update is done.
For completeness, here are a few other controls:
- keyboard button
- lower left; [Compact(top)] upper left
- opens standard or modified keyboard (see Keyboard preference) or popup menu of keyboards
- close box
- lower right; [Compact(top)] upper right
- exit application; if connected, it delays a few seconds in order to Disconnect automatically
- [3.3a7] manually Disconnect first to avoid delayed errors
- Rotate
- Extras Drawer, or 3rd party extension
- VNC does not provide a Rotate button;
however, you can minimize newtVNC and then use the Rotate control in Extras
- if Display Size is full, this will cause a complete refresh (and reset of overview) due to screen resizing;
- [Server] Rotate while not connected to a viewer
??? More commands in action menu; in Expanded mode, some buttons could fit in right margin.
Version note: newtVNC began numbering with "3.3" to reflect that its viewer and server conform to 3.3 protocol;
the first Newton version was "3.3a1". Although having separate Viewer and Server apps might make it possible to
run both simultaneously, I'm doubtful that the Newton (at least MP2K) has adequate resources for both;
single newtVNC .pkg is easier to maintain due to large code overlap; and it's smaller: ~105K vs. separate: 2 * ~85K?
3.3b1 (?? Nov 01)
- Clipboard/Log smaller if NIE is connected
- (color maps don't work with common viewers, so not included)
- eliminated viewQuitScript patch (maybe faster)
- misc. cleanup
3.3a9 (28 Nov 01)
- note: version 3.3a8 removed; first two items address problems in that version
- fixed inconsistency in internal "Server Name" preference name
- fixed handling of initial, Full refresh of partial areas
- note: if you don't want a server or are using NOS 2.0 (or have problems), you should continue to use 3.3a7;
this release took longer than anticipated due to additional experiments, tuning and testing; although
there are still many loose-ends and areas for improvement, I thought this version was stable and useful enough
for distribution and feedback
- NOS 2.1 only: tenatively removed NOS 2.0 compatibility -- ??? are there any actual NOS 2.0 users out there
- fixed problem of exit generating delayed errors (3.3a7 workaround: Disconnect manually before exit)
- full+bar setting overlays rather than actually removes button bar -- faster, more reliable/compatible
- clipboard from server automatically sets/creates Newton clipboard object at margin
- added Prefs and Log buttons to Connect dialog
- some additional keys supported (if available): up/down arrows and Fn keys -- ??? any eMate users who can test
- VNC server! screenshot using WinVNC Viewer;
earlier documentation has been partially updated; tested with viewers: [Windows] WinVNC, TightVNC, TridiaVNC; [Macintosh] MacVNC
here is a summary of usage/functionality
- Connect
- select either Viewer [default] or Server radio button
- button label changes to Connect (for Viewer) or Listen (for Server)
- for Server, you can enter a System Name (default: "newtVNC: <user name>") and Password (optional)
- ??? ideally the server application would not use the full screen, but just consist of Connect dialog?
- !!! set viewer preference to "restrict pixels to 8-bit" or "use server depth" (for MacVNC, you may have to manually edit "VNCViewer Preferences")
- if you select Listen, Server displays its IP# and waits for a connection from viewer
- once connected, newtVNC automatically hides (accessible via * menu or Extras icon)
- after disconnect, it automatically shows and redisplays connect dialog
- ??? later it may automatically Listen again if viewer initiated Disconnect (or an error occurred)
- Prefs
- currently, newtVNC server shares only the Viewer prefs: Encoding, Display Size, Refresh,
- ??? perhaps separate Prefs for Viewer and Server or selective hiding
- Encoding
- only Raw is supported currently, so viewer Encoding settings are basically ignored; however,
if your viewer supports RRE or CoRRE, and newtVNC detects a same-color bitmap,
it can send an RRE (or CoRRE) fill rectangle (only 2 instead of w*h bytes) -- this is faster for plain background areas;
it can also pre-erase larger bitmap update areas -- which can be useful to indicate that an update is still in progress;
to disable these fills, select Raw encoding in newtVNC; to enable these fills, select any non-Raw encoding in newtVNC
and check your viewer's encodings: for WinVNC and TridiaVNC, select RRE as preferred encoding; for TightVNC,
any encoding is fine; for MacVNC and VNCThing (turn off local buffer option to see pre-erase);
??? for some reason, many viewers that include RRE or CoRRE in their supported encodings list,
tend to ignore those unless it's the preferred encoding (a bug IMHO; and they also often include the obsolete "3" encoding).
- (initial Hextile support was slower than Raw + RRE/CoRRE same-color optimization, so not included)
- (Zlib may be possible but only on MP2100; however, initial experiments
did not yield major speed or compression improvements -- ??? Paul is investigating)
- Display Size
- defines how large a screen to create and update --
typically, full or full+bar, though smaller sizes could work for small apps
- Grays
- ignored -- server sends update using 16-grays; since it's sent in small slices,
a large bitmap/buffer isn't needed; since the same number of 8-bit (256 color) pixels are sent to viewer,
b&w or 4-grays would not be faster or smaller (but would look worse)
- Refresh
- defines how frequently to check/send incremental updates; however,
Refresh is immediate if viewer requests a full screen update, immediately after a pen tap,
or while there are pending updates; short delay between multiple keystrokes should minimize separate refreshes
- color issues
- !!! since only 256 colors are used, the color representation is not ideal/accurate;
if backlight is turned on, a greener set of colors is used (similar to NPDS); if anyone would like to try fine tuning
these colors in NTK Inspector, I can tell you how to compute/patch the two color arrays
- ??? VNC servers/viewers do not currently/widely support actual "color maps",
so it's necessary to encode colors as "true" rgb bit values;
for 8-bit pixels, this is bbgggrrr, which isn't really adequate; perhaps if newtVNC used 16-bit pixels
(which would double the amount of data sent), it could use 5-bits for each r,g,b value -- this option may be added
in a future update, and/or I will look into using color maps if enough viewers indeed support them
- update/refresh issues
- when newtVNC detects a new open application (or global view like a popup), it updates the app's area, including border,
and patches several methods in the app (and its child views) such as viewQuitscript,
and either viewDrawScript or a class-specific change script so that it can be notified about incremental changes to the screen;
??? this patching/notification mechanism still needs much tuning to be more complete, while minimizing the number of update requests and size of update areas
- some current known refresh problems are: help books (expanding topic hierarchy in a help book),
books (i:About, i:Prefs, scroll arrows)
month view (after selecting month popup),
day picker (in Dates Prefs),
some children not patched (e.g., radio buttons in Extras:Filing; analog clock popup in statusbar)
progress bars slow down updating,
and no text caret (anyone know loc of bitmap?) or highlighting; if you don't see an expected change, you can send
a full update request from your viewer; you can also tell me the app and what didn't refresh
- newtVNC attempts to eliminate unnecessary updates, e.g., contained already in pending requests;
however, there are still situations where an app that animates or updates frequently could still cause
extra refreshes,e.g., the "Card" app
- newtVNC should unpatch apps when disconnected; hopefully there are no incompatibilities with
other 3rd party apps. don't remove memory card or Rotate while newtVNC server connected.
- !!! when NIE connected on MP2K/eMate, closing a full-screen app can often be excruciatingly slow (due to Newton system bug)
- keyboard
- regular keys work fine; Alt- on Windows maps to cmd- on Newton; I haven't tested other modifier keys/combinations
- F1-F12: I've got unicode result codes, but need low-level (hardware) keycodes (??? any eMate developers out there)
- views and controls may appear highlighted as if external keyboard were connected
- pointing
- tap, drawing, handwriting and simple gestures work!
- ??? hilighting text, selecting apps (in Extras icon mode), and dragging windows do not currently work
(unsure if it's possible to use InsertTabletSample or other low-level function)
- Current Issues
- earlier versions
.pkg
For downloading directly via http: to Newton with
Newt's Cape or other web browser.
Note: when installed, the packages are stored compressed, so take less space than shown.
If after downloading to Mac, icon does not appear correctly -- use PackType.
The .zip archives will contain the package, as well as license and source --
available after I've had a chance to address the most immediate initial requests & bugs,
and cleanup the source a little.
.zip
If there's a newer version than the one you have -- current is 3.3a9,
check Version History in case an issue has already been note, or Find "???" items.
Please let me know if there are problem connecting to specific servers
with specific encodings or configurations, and your Log, and I'll see what else I can do (or explain).
Suggestions always welcome. ??? Here are the latest problems/questions/issues that have been raised --
via email to me, NewtonTalk or comp.sys.newton.misc:
- faster communication transfers (eventually) via NIL (Newton Interface Library) [encourage Paul]
- still investigating how pointing events / keyboard mapping are handled, esp. with Mac [need a decent Mac server]
- update viewer scroll origin after current update done (avoid refresh problems)
- start some code cleanup; possible candidates: e.g., remove Compact(top), ...
- look at color map for server, support for drag?
This more technical section has moved to vnc/implem.htm.
[Top: TOC]
| Updates
| VNC?
| Requirements
| User Interface
| Download
| Issues