Common Lisp bindings for the Tk GUI toolkit

vindarel c1f4f29411 README: no source blocks 10 months ago
src 9739288349 - added 'default-theme' to prevent a 'missing variable' warning; 10 months ago
themes 069cc0f3d6 - added theme 'yaru'. 10 months ago
Changelog 0b1f2acae4 - updated changelog. 10 months ago de9bf21bc9 - updated NEWS and Changelog. 11 months ago c1f4f29411 README: no source blocks 10 months ago
README.txt 7d2aa1a4ff - updated README.txt. 10 months ago aa667f0286 - updated changelog and TODO. 5 years ago
nodgui.asd e2d231ca74 - increased version number. 10 months ago


"No Drama GUI"

Common Lisp bindings for the Tk GUI toolkit.

important note:

Version 0.4.0 broke the user API, see here for more information about how your code is affected and how to fix it.


  • custom themes
  • more widgets:
  • history-entry
  • autocomplete
  • expanded "text" widget
  • date picker
  • treelist
  • tooltip
  • searchable listbox
  • password entry
  • =tklib=-derived widgets:
  • calendar
  • notify-window
  • plots and charts: dot-plot, bar-chart…
  • asynchronous main event loop
  • and more


nodgui supports loading custom ttk themes and ships the "yaru" theme from the ttkthemes collection.

To use a built-in theme other than the "default" one, do:

    (with-nodgui (:theme "yaru")
      (code here))

or use (setf *default-theme* "yaru").

You can see how they look with the demos:

CL-USER> (nodgui.demo:demo :theme "yaru")

You can load any .tcl file describing a theme:

(nodgui:eval-tcl-file "path/to/another/theme.tcl")
(nodgui:use-theme "theme")

See also *themes-directory*.

This currently doesn't work with a few themes using SVG images, but it might be fixed with the release of an upcoming Tcl/Tk version.



  • TCL/TK interpreter (version >= 8.6)

Lisp libraries

  • alexandria;
  • cl-ppcre-unicode;
  • esrap
  • clunit2;
  • cl-colors2;
  • named-readtables.

All of the above libraries are available on quicklisp.

TCL/TK libraries (optional)

  • TKlib
  • tkimg


  1. install the tk interpreter (example on a Debian system follows)
# apt-get install tk
  1. optionally install tklib
# apt-get install tklib
  1. optionally install tkimg
# apt-get install libtk-img
  1. open a REPL and type
(ql:quickload "nodgui")
  1. try it!


please follow this link for documentation and news.


This software is Copyright (c) 2003-2010 Peter Herth Portions Copyright (c) 2005-2010 Thomas F. Burdick Portions Copyright (c) 2006-2010 Cadence Design Systems Portions Copyright (c) 2010 Daniel Herring Portions Copyright © cage

The authors grant you the rights to distribute and use this software as governed by the terms of the Lisp Lesser GNU Public License (, known as the LLGPL.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.


The themes definitions found in the themes/ subdirectory are distributed with many different license, please carefully check the file in each theme's subdirectory (e.g /themes/yaru/LICENSE) for more information.


My (cage) deep thanks to Tim Holliefield , for all the suggestions and help about implementing the widgets styles management.