---
name: "xjove"
section: "1"
platform: "linux"
package: "xjove"
version: "4.16.0.72-2"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/xjove"
---

# xjove(1)

run JOVE under X-windows with function-key and mouse support.

## NAME

Xjove - run JOVE under X-windows with function-key and mouse support.

## SYNOPSIS

**xjove** \[ *window\_args* \] \[ **-f \| -nf** \] \[ **-rc** *run\_command\_path* \]... \[ args ... \]

## DESCRIPTION

*Xjove* creates an XView frame and a tty subwindow within which mouse events and function keys are translated to ASCII sequences which JOVE can parse.  The translated input events are sent to the process running in the tty subwindow, which is typically JOVE. *Xjove* thereby allows JOVE users to make full use of the mouse and function keys. JOVE has functions to interpret the mouse and function-key events to make a truly fine screen oriented editor for any workstation supporting XView or SunView.

## OPTIONS

*Xjove* supports all the standard window arguments, including font and icon specifiers.

*Xjove* has the ability to fork off a separate process to run the window that is created, leaving the shell from which the *Xjove* command was issued free to accept other commands.  This feature is enabled by the **-f** (for fork) flag and disabled by the **-nf** (for no fork) flag. The default is set by the *xjove.forking* resource which can be set to True or False in your .Xdefaults file (default False).

By default, *Xjove* runs the program *jove* in the created subwindow. The value of the environment variable *JOVETOOL* can be used to override this if your version of JOVE is not accessible on your search path by the name *jove*. In addition, the run command can be set by the *pathname* following the last occurrence of the **-rc** flag. This is convenient for using *Xjove* to run on remote machines.

All other command line arguments not used by the window system are passed as arguments to the program that runs in the Xjove window.

For example:

local% xjove -rc rlogin remote

will create an Xjove window logged in to a machine named *remote*. *Xjove* will encode mouse and function keys, and send them to rlogin. If JOVE is run from this shell on the remote machine, it will see the mouse and function keys properly.

## USING XJOVE

The following assumes the use of the recommended bindings from the mouse operations to the Jove mouse-commands. Note how, in general, LEFT does things involving the *point*, whereas MIDDLE does things involving the *mark*.

Use of mouse buttons

- LEFT

  Sets the cursor at the character pointed to. Actually, it is the place you are pointing at when you release the button that counts.

- MIDDLE

  Sets the *mark* at the character pointed to when you press it. You may then move to another point before releasing it, thus delineating the *region* from where you pressed to where you released. The position of the mark always remains underlined (not easy to see if the cursor is at the same place).

- MIDDLE + CTRL

  Sets the region as before, but then does a COPY (copy-region).

- MIDDLE + CTRL + SHIFT

  Sets the region as before, but then does a CUT (kill-region).

- LEFT + CTRL

  Sets the cursor as before, but then does a PASTE (yank). This can be used in conjunction with the previous two commands so as to copy or move text from one place to another. However, the following two commands do this job better.

- MIDDLE + PASTE

  Remembers the current position of the cursor, then does a COPY (copy-region) on the region you select (possibly in another window), and finally PASTEs (yanks) it at the remembered position.

- MIDDLE + CUT

  Remembers the current position of the cursor, then does a CUT (kill-region) on the region you select (possibly in another window), and finally PASTEs (yanks) it at the remembered position.

- Multiple clicks on MIDDLE

  In all the above usages of MIDDLE, a double click will set the *mark* at the start of the word pointed into and the *point* at the end of that word. Likewise, a triple click selects the whole of the current line. This is similar to the effects of multiple clicks in Open-Look windows and Sunview.

Note that the above commands only work if you point within the current window. Except when in conjunction with PASTE or CUT, the first click into a different window simply selects that other window. Click twice if you want to set the cursor or the mark in the other window.

- LEFT when in the Modeline

  Assuming the variable scroll-bar is ON, the position of the window within the overall buffer is shown by unhighlighting the corresponding part of the Modeline. Pointing at a place in the Modeline and pressing either of LEFT or MIDDLE causes the text to scroll to that place. You may hold the button down and move the mouse left or right until you see what you want in the window.

- RIGHT

  Brings up a menu with pull-right options enabling you to obey any JOVE command, or set any JOVE variable. If the command requires a parameter (or the variable requires a value other than ON/OFF), you still have to type it in as usual.

- SHIFT

  Holding SHIFT down at the same time as any other key or mouse operation (except with CTRL — see above) reverts to the normal behaviour of *Shelltool(1)*. Thus you can make selections, and copy and paste them to/from the clipboard using L6, L8 and L10.

## OPERATION

JOVE will automatically load the file *jove.rc.$TERM*. It is therefore necessary that this file understands the code sequences that are produced when function keys are pressed in Xjove (these are not necessarily the same as might normally be produced by that $TERM). These follow, more or less, the practice of Sun Workstations (with the addition, except when SHIFT is down, of some keys such as L-1,6,8,9 and 10 which Shelltool usually reserves for its own purposes, and of the KP-\* keys around the outside of the numeric keypad, such as KP\_Add and KP\_Enter).

In addition, *Xjove* sets the environment variable *IN\_JOVETOOL* **= 't' ,** so that applications running in an Xjove window can be aware of the fact.

Mouse buttons are encoded as \`^Xm\[0-9\](c x y t)\\n'.  ^Xm is the JOVE mouse-command prefix, \[0-9\] indicate which key was pressed, and whether it was a down, up, drag or multi-click event. These are followed by a list indicating the state of CTRL, SHIFT, PASTE and CUT, the character row and column of the point in the window where the mouse cursor is, and the number of pixels in the width of a character.  In JOVE, these ^Xm\* dispatch to appropriate mouse-command handlers which then read the following list.

## BUGS

The normal Sunview "selection" facilities that enable text to be Cut and Pasted between windows (as provided by Shelltool and Cmdtool) only work when SHIFT is pressed.\
 Because SHIFT and CTRL together have a special meaning, it is not possible under SunView to make a selection "Pending Delete".\
 Due to a bug in some versions of XView, the underlining of the mark may not occur (but emboldening may be used as an alternative).\
 Under SunView, the initial terminal settings for the tty window are apparently taken from the controling tty.  This can lead to surprises.

## ENVIRONMENT VARIABLES

*JOVETOOL IN\_JOVETOOL TERM*\
 For Xjove, the XView shared library must be visible. It may therefore be necessary to arrange for the Environment Variable LD\_LIBRARY\_PATH to include $OPENWINHOME/lib, where $OPENWINHOME would usually be /usr/openwin.

## SEE ALSO

*[jove(1)](/jove/1.md)*
