Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, February 10, 2021

safe_loadTk (1t)


safe_loadTk - Load Tk into a safe interpreter.


safe::loadTk slave ?-use windowId? ?-display displayName?


Safe Tk(1t)                  Tk Built-In Commands                  Safe Tk(1t)


       safe::loadTk - Load Tk into a safe interpreter.

       safe::loadTk slave ?-use windowId? ?-display displayName?

       Safe  Tk  is  based on Safe Tcl, which provides a mechanism that allows
       restricted and mediated access to auto-loading and  packages  for  safe
       interpreters.   Safe  Tk  adds the ability to configure the interpreter
       for safe Tk operations and load Tk into safe interpreters.

       The safe::loadTk command initializes the required  data  structures  in
       the  named safe interpreter and then loads Tk into it.  The interpreter
       must have been created with safe::interpCreate or have been initialized
       with safe::interpInit.  The command returns the name of the safe inter-
       preter.  If -use is specified, the window identified by  the  specified
       system dependent identifier windowId is used to contain the "."  window
       of the safe interpreter; it can be any valid id, eventually referencing
       a  window  belonging  to  another application. As a convenience, if the
       window you plan to use is a Tk Window of the application  you  can  use
       the  window  name  (e.g.,  ".x.y") instead of its window Id (e.g., from
       winfo id .x.y).  When -use is not specified, a new toplevel  window  is
       created for the "."  window of the safe interpreter. On X11 if you want
       the embedded window to use another display than the default one,  spec-
       ify it with -display.  See the SECURITY ISSUES section below for imple-
       mentation details.

       Please read the safe manual page for Tcl to learn about the basic secu-
       rity considerations for Safe Tcl.

       safe::loadTk  adds the value of tk_library taken from the master inter-
       preter to the virtual access path of the safe interpreter so that auto-
       loading will work in the safe interpreter.

       Tk  initialization is now safe with respect to not trusting the slave's
       state for startup. safe::loadTk registers the slave's name so when  the
       Tk  initialization  (Tk_SafeInit)  is called and in turn calls the mas-
       ter's safe::InitTk it will return the  desired  argv  equivalent  (-use
       windowId, correct -display, etc.)

       When  -use is not used, the new toplevel created is specially decorated
       so the user is always aware that the  user  interface  presented  comes
       from  a potentially unsafe code and can easily delete the corresponding

       On X11, conflicting -use and -display are likely to generate a fatal  X

       See attributes(7) for descriptions of the following attributes:

       |Availability   | runtime/tk-8     |
       |Stability      | Uncommitted      |
       safe(n),   interp(n),   library(n),   load(n),  package(n),  source(n),

       alias,  auto-loading,  auto_mkindex,  load,  master  interpreter,  safe
       interpreter, slave interpreter, source

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source        was        downloaded        from         https://source-

       Further information about this software can be found on the open source
       community website at https://www.tcl.tk/.

Tk                                    8.0                          Safe Tk(1t)