current version 0.14.1
screenshots | download | documentation | faq | contact
What is Gtk+ Magic ?
Gtk+ Magic is an attempt to enhance gtk+ (The Gimp Toolkit) with additional features and a user-friendly, customizable toolkit. I was inspired by the famous Amiga toolkit MUI (Magic User Interface) written by Stefan Stuntz (great work!).
Because real users have a different taste for look and feel.Easy-To-Use and Realtime?
Because creativity is a mood.Evolutionary design process?
Question: "do embryos code in machine-language?!"Gtk+ Magic?
Because it's an attempt.
A good user-interface should be customizable, because users have an individual taste and varying demands for what is vaguely called 'look and feel'. If you give people the right tools to make their desktops comfortable, then they will use them. The customization-process should not end up in one-ways. The demand for configuration should not be satisfied with a huge set of properties in first place, because it's much more like a demand for precision in detail. Users should be allowed to comfortably adapt their desktop environment to their needs, step-by-step, in an evolutionary process.
If you ever wanted to design gtk+'s look and feel with a graphical user-interface where applications reflect your settings in the very same moment as you trigger a button, then this software might be interesting for you. You can set system-wide, group-wide or user-specific as well as the toolkit's or application's specific properties in a combined context.
Gtk+ Magic uses a client/server network distributed database architecture for its property-management. Running applications are seen as clients that request toolkit properties. This mechanism is implemented in the gtk+ patch, so that any recompiled gtk+ application will establish such a property-management for its GUI on startup.
Status: unstable, maybe crash, read the installation and usage notes.
To enable magic in your gtk+ applications, you have to recompile them with the patched version of gtk+. Any existing application linked with the original gtk+ shared library, will not run with the modified one without recompilation.
current Release (unstable):
After recompilating your gtk+ applications and linkage against the gtk+ magic-patched library, you may try it out in conjunction with the gmagicd.
NOTE: Applications that use gtkrc resource files, can't be configured with gtkmagic-config in a proper way, because the gtkrc-mechanism has a higher priority towards gtkmagic. Remove the "gtkrc"-Files if you like to control the gui through gtkmagic-config. Several tools (like Grip) set their style internally, this has the highest priority, so there's currently no way of enable gtk-magic for these widgets in such an application.
NOTE: The GUI of gtkmagic-config and gmagicd_gtk is not controlled through gmagic, because of a bug. They are auto-disabled for gtkmagic. Will be fixed in the future.
The database holds clients, presets, properties and observer-agents for clients. Presets are identified by a specific user- and application-context and hold properties for this context. Properties currently contain any flat datatype and list, which helps mapping structures in a property. Observers are used, when a client is interessted in changes to the property. You have to seperate the property which is seen by the client. The client is interessted in an aspect which is named, but there may be several properties with A client implements an access-model. Currently there is only a gui access-model implemented which targets the management of properties for user-interfaces in a multi-user environment with group- and system-administrators, which can influence the look'n feel of their users if they didn't
The Gtk+ applicationEach application started will try to connect the gmagic da
This class represents a gmagic database client. It is created with informations about its user- and application-context and connects the database. It especially works as a GtkProp object factory.
This class holds a property-value. Several callbacks are implemented that will be called, when the property changed for some reason.
gtk+ startup arguments
Two new options are available for all gtk+ applications.
Licence and Copyright
This Software is released under the GNU Public Licence.
Is gnome supported ?
Are there any plans for integrating it in gnome ?
Please send bug-reports and suggestions to firstname.lastname@example.org.
You can meet me on IRC #neoscientists (IRCNet) and on several parties in europe.
Be a GNU PENNER.