Guides/Gtk IDE

From J Wiki
Jump to navigation Jump to search


The GTK IDE is supported on Windows, Linux and Mac if there is a working Gtk binary installed.

If the J terminal is shown, then:

  • jfe 0 in Term interrupts gtk and makes the J terminal active. In the terminal, jfe 1 will return control to the Gtk IDE.
  • the J terminal shows any gtk error messages - there should not be any - so report any that you see to the J General forum.


Download and install from the download page.

See also J701.

The installer will install Jconsole and JHS. GTK IDE requires an extra step of installation.

See also Gtk installation.

Shortcut Keys

Most of the functionality should be obvious from the menus, and it is perhaps best to work through them one by one.

As in J6, some additional functionality is available by pressing the shift key when selecting a menu or button.

Some shortcuts differ from J6, e.g. Ctrl+L for run script instead of Ctrl+W. The latter is now mapped to close edit tab.

See also Shortcut Keys.


The term window is the usual J console, with behavior similar to the J6 ijx window. Color config is ~config/term.xml.


The edit window is a tabbed notebook. Color config is ~config/edit.xml and J syntax coloring j.lang in the same directory.

  • opens in the last active project, if any
  • two (only) edit windows are supported (e.g. can throw a tab to other window)

If there is no syntax coloring or there is no Menu View|Toggle Line Numbers, then GtkSourceView is not working. Refer to Gtk installation for any possible solutions.

See also Menu Help|GTK|GtkSourceView for a guide on syntax coloring.


Projects are supported directly, see project menu. The benefit is easy navigation of source directories. There is no project build as before, but verbs readsource and writesource and similar can be used for this, see example build.ijs scripts.

Menu Project|Properties shows the *.jproj file.

Projects support git and svn. If your project is in either version control system, additional project menu items are shown.

See also Folders and Projects.


Menu Edit|Configure has a list of config files. You need to restart the session for any changes to take effect.

See also Config for Jconsole and GTK IDE.

Package Manager

Package Manager (pacman) is the installer utility for the J Application Library (JAL).

See Package Manager and also Package Manager/jpkg


A life saver. more detail needed.


Place cursor on a name or select a name, then either press Control-] or mouse right click to bring up a popup menu. Choose the choice Find Tag. It will jump to the definition or open a listbox for choosing when there are more than one occurrence.

This needs Tags files which can be generated by first installing jtags addons package from pacman, then run Menu Tools|Generate Tags.

See also Ctags.

Code Completion

Place cursor at the end of a word and press Control-[ will popup a code completion ui box which shows a list of proposal with the same prefix. Keep on typing will update the list incrementally.

There will be quite a delay during the first time code completion is invoked because it needs to parse Tags and dictionary files. Response time for subsequent calls in the same session will be faster.

Navigation keys: Up Down PageUp PageDn Home End Esc

Enter key: select the current proposal

Tab key: tab completion for the current high-lighted proposal

See Config for customization.

Auto Completion

Toggled by Menu Edit|Auto Completion. When enabled, type 6 alphanumeric characters will automatically popup the code completion ui box.

The number of characters need to type can be changed in Config

Context Sensitive Help

Place cursor on a name or select a name, then either press Control-F1 or Menu|Help|Context Sensitive. It will open the file containing the definition either in browser or in Edit tab.

It will, by default, search contexts in J Dictionary, J base library and gtk api documents. This can be customised by the noun ContextHelp in config.

See Config for customization.


Content of either Edit or Term can be printed using GtkSourceView api. It will attempt to use the same setting for text font, line numbers and syntax highlighting colors as the view of Edit and Term. Print preview is also provided inside print dialog. Print preview in Linux is done using PDF in Linux and EMF in Windows, but EMF output in Windows is buggy and may be disabled.


Interactive labs available in Menu Help|Studio|Labs.

To advance a lab: Control-j

Not all labs run fine yet. Please participate in Labs: status of testing.


  • Install gtk or other demos addons from Pacman. View the demos source by opening any of their projects. It is easiest to do this by pressing the Open Project button in the right hand toolbar to bring up the project dialog.
  • in the term window, press F5 - this runs test'' which in turn is set up to rebuild the IDE scripts (the test verb is defined in the startup script). You can experiment by changing any IDE script, then rebuild and restart J. If your change crashes the restart, you need to restore the original scripts.

See also gtk demos.

Contributed by Chris Burke.