$(opi.dir) macros to "Execute Command" widget action.
$(opi.dir) points to the directory of the OPI file on the OS file system.
Preferences->CSS Applications->Display->BOY->OPI Runtime->PV Connection Layer.
PVManager has lots of advantages such as better performance on array type of PV, update rate throttling, formula support and so on.
With PVManager, there are some differences with Utility PV on local and simulated PV:
loc://fred is null.
To give an initial value such as 0 to the local pv, the syntax is loc://fred(0).
Note: this difference may break your existing OPIs that used uninitialized local PV!!!
1 or "fred" must be prefixed with =. For example, =1 and ="fred".const://... is not supported, please use sim://const(...)insteadloc://myPV("Hello, World!") sim://noise(minValue, maxValue, timeStep).sim://sfdsdf, sim://noise2 are not supportedCSS online help -> CSS Core -> Process Variables.
org.epics.vtype value inside BOY instead of org.csstudio.data.values.IValue.
Note: this change may break your customized widgets if the widgets have code handling IValue!
See here for more details.
Top Files sub menu to file menu to open top OPIs and other files.OPI Editor Perspective context menu entry to OPI editor to open/reset OPI Editor PerspectiveOPI Runtime Perspective context menu entry to OPI Runtime to open/reset OPI Runtime PerspectiveOpen Navigator context menu entry to OPI Runtime to open Navigator View.




CSS online help->CSS Core->Auto-Complete
(Primarily contributed by ITER).




Select Parent (Ctrl+R) context menu to help selecting the parent container. For example, one can
finally select the Display by hitting Ctrl+R multiple times. 
Forward Colors property to Grouping Container widget. If it is yes, it will
forward background and foreground color to its children. This is useful for creating
symbol from multiple graphics widgets shown as below. See Grouping Container Example in BOY Example.


Dump PV List context menu in Runtime to dump all PVs in the OPI including the ones for rules and scripts.

Directory option to file selector on Text Input widget, so it only selects
directory in file dialogStyle property to Action Button widget to have
native buttonStyle property to Text Input widget to have
native text style.Fine Print.hidden_widgets preference entry, so unwanted widgets can be hidden
from paletteNote: This version has some new introduced bugs with macros which may result in some existing OPIs work improperly. These bugs has been fixed in Version 3.1.4.
Horizontal Tabs, Minimum Tab Height,
Active Tab and Enabled to each tab. (Contributed by ITER)


Confirm Message property to Text Input and Text widget.
If the message is not empty, a confirm dialog will pop up before writing the new value to PV.


Next Focus property to Text widget.Replace Widgets With... as described below
to easily replace old widgets with native widgets.


Replace Widgets With... in context menu to replace selected widgets with other widgets.
Common properties will be copied to the new widgets.Example: Use table widget to show multiple PV values


File->Import...->BOY->BOY Symbol Library




DefaultDefault BoldHeader 1Header 2
Header 3. These predefined fonts will use system default font but with different styles and heights.
These predefined fonts can be replaced from font file by defining the same font name.
Alias=The Menu Name. It also allows to specify the top opi open position by appending
a macro Position.
The available positions are:
Left: Left ViewRight: Right ViewTop: Top ViewBottom: Bottom ViewDefault_View: Default ViewDetached: Detached ViewIf macro Position is not set or is not in one of above positions, it will be opened in editor area.
For example:
"/BOY Examples/main.opi", "macro1 = hello", "macro2 = hello2", "Alias=BOY Examples", "Position=Left" | "BOY Examples/1_2_WidgetExamples.opi"
Round Rectangle Background Style Border.


org.csstudio.rap.preference to provide path to the preference file.Buttons on Left property to spinner widget.


Sash Container widget.

Auto Scale Widgets property to display. If it is true, all widgets on this display may be scaled
when display is resized. The old display property Auto Zoom to Fit All should be deprecated, because the advance graphics
effects such as gradient cannot display correctly in zoom.






13 22 33 24






css --launcher.openFile "<path_to_opi>/file1.opi macro1=A[\58]B, macro2=value2" "<path_to_opi2>/file2.opi"In above example, the value of macro1 is A:B.
css --launcher.openFile "<path_to_opi>/file1.opi macro1=value1, macro2=value2" "<path_to_opi2>/file2.opi"If there is already a CSS instance running, it will open the OPIs in the running CSS. The option --launcher.openFile is not necessary if following lines were added to css.ini:
--launcher.defaultAction openFileNote1: For Linux GTK, ":" is not allowed in macros. Instead using [\58].
-vm /path to/libjvm.soYou may able to find the path to libjvm.so by using command locate libjvm.so See https://bugs.eclipse.org/bugs/show_bug.cgi?id=331122



![]()