Skip to content
Gtk# is a Mono/.NET binding to the cross platform Gtk+ GUI toolkit and the foundation of most GUI apps built with Mono
C# Perl C XSLT JavaScript CSS Other
Latest commit 9947904 @mhutch mhutch Merge pull request #135 from Gankov/patch-1
Fixed a typo
Failed to load latest commit information.
atk csproj: Fix assembly names and include *.dll.config in output
audit Convert some source files to Unix line endings
cairo Fixed a typo
doc Convert some source files to Unix line endings
gdk csproj: Fix assembly names and include *.dll.config in output
generator Convert some source files to Unix line endings
gio gio: Use the GioNativeDll in all custom gio code
glib glib: Check for self-assignment of Opaque.Raw property
gtk gtk: Fix Builder xml definition loading
gtkdotnet gdk: Fix dll name and use a const for all DllImports in custom code
msi build: Require GLib 2.32 or above
pango csproj: Fix assembly names and include *.dll.config in output
parser Convert some source files to Unix line endings
sample sample: Fix compilation of opaque and val tests on osx
sources gdk: Fix dll name and use a const for all DllImports in custom code
.gitattributes Add a .gitattributes file to have git keep CRLF endings in *.sln files
.gitignore .gitignore: add autotools' `compile`
AUTHORS release: Update AUTHORS for 2.99.1 Remove ClassInitializer attributes.
COPYING Replaced COPYING with LGPL2-only license
ChangeLog.old Archive Changelog as Changelog.old
HACKING Update various bits of documentation in READMEs and HACKING Update the Windows installer infrastructure for GTK+ 3
Makefile.include build: Fix opaquetest build on Windows
NEWS release: Fix indentation of NEWS
README Simplify instructions about choosing the installation prefix
README.generator silly typo
TODO Update TODO build: Make libtoolize quiet, it's not that interesting build: Bump mono dependency to 3.2.8
gapi.xsd generator: Add support for fixed length arrays as method parameters
gtk-sharp.sln Add an audit.csproj to the MonoDevelop solution
gtk-sharp.snk Add gtk-sharp.snk 2005-09-21 Mike Kestner <>


The Gtk# website can be found at:

Gtk# is a .NET language binding for the GTK+ toolkit and assorted GNOME
libraries. Gtk# is free software, licensed under the GNU LGPL.

Building & Installing Gtk#:

    Install the gtk-3 development headers first. On Debian, this can be done using:
    apt-get install libgtk-3-dev

    The build is the traditional:

        make install

    You may want to consider using configure's prefix option to install
    Gtk# using the same prefix as Mono.  That way all of your .NET assemblies
    get placed in the same place, and you don't need to do any extra "configuring"
    to make it so mono (and mint) can find your assemblies.  In other words,
    doing something like:

        ./configure --prefix=`pkg-config --variable=prefix mono`
        make install

    If you are compiling from GIT, you will need libtool and the auto* tools
    and will need to replace the configure above with

The gui-thread-check profiler module.

    Since version 3 of gtk# a profiler called "gui-thread-check" is included as
    part of the install for debugging purposes. (It's located in the subfolder
    gtk/gui-thread-check .)

    This profiler module can be used to check if a GTK# application is trying to
    invoke gtk or gdk methods from a thread which is not the main GUI thread.

    To use it, run your application with the command:

        mono --profile=gui-thread-check yourapp.exe

    If the profiler is properly installed, you'll see an output like this:

        *** Running with gui-thread-check ***
        *** GUI THREAD INITIALIZED: 2861676352

    While the application is running, if the profiler detects a non-gui thread
    invoking gtk methods, it will print a warning message together with a
    stack trace. For example:

        *** GTK CALL NOT IN GUI THREAD: Widget.gtk_widget_get_parent

Discussion & Support:

    A mailing list for Gtk# discussion is available.

    You can subscribe to the mailing list by visiting:

    And following the instructions (on that page) to subscribe.
    Messages are posted on this mailing list by sending them to:

    (The mailing list requires you to subscribe in order to post

    An archive of this mailing list can be found at:

    Also, people can get help with and discuss Gtk# on IRC via the
    #gtk# or #mono channels on the IRC server.

    People looking for general help with C# should visit the
    #c# channel on IRC server.


    For developers wishing to "get started" with Gtk#, they are encouraged
    to read the Mono Hand Book:


    For those who wish to help with the development of Gtk#, they should
    read the file named: HACKING.

    Also, anyone wishing to hack Gtk# is encouraged to join the Gtk#
    mailing list. And to visit the #gtk# IRC channel (on
Something went wrong with that request. Please try again.