Skip to content
/ sgm Public

The STLWRT-ian GTK Modules -- a pack of modules to spice up GTK

License

Notifications You must be signed in to change notification settings

thesquash/sgm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SGM: The STLWRT-ian GTK Modules

GTK Modules of all kinds, for a classic GTK+ 2-esque user interface

SGM is a collection of useful modules for GTK, mostly to restore a more classic user interface and experience to GTK+ 3 and above. Currently, this repository only contains the code for the "sgm-flexible-mnemonics" module, but more are planned to follow. Similarly, this module is known not to work with GTK 4 yet, but support for GTK 4 should come eventually too, as long as the community doesn't drag their feet in adopting GTK 4 (but that's a different story).

sgm-flexible-mnemonics

Mnemonics are the underlined portions of text which indicate which key to press to activate a particular widget, be it a menu item or a button. Prior to GTK+ 3.9.8, a setting called gtk-auto-mnemonics could be modified to either always display these underlines, or display these underlines only when the "modifier key" (typically Alt on many keyboards) was pressed. In GTK+ 3.9.8, the latter mode is always used no matter the setting of gtk-auto-mnemonics. This module restores the classic mnemonic behavior to GTK+ 3.9.8 and later versions of GTK.

Planned modules for the future

  • A "GTK Inspector"-like tool for GTK+ 2 would be quite cool and useful. Better yet, it doesn't need to be loaded all the time -- just when you think you'll need to debug a GTK program!

  • A module to add scrollbar stepper buttons to the ends of scrollbars on GTK 4 is in the works. I actually have it working, I just need to commit it to this repository and clean it up a little.

If you have any further ideas on what you want in GTK, please file an issue on this repository! Pull requests are also welcome. If you find an issue in one of these modules, please start an issue for that, too.

Building the code

Building the code couldn't be much easier. You just need:

  • Meson
  • Ninja
  • GTK: currently only version 3.8 or later will suffice, not version 4.

To build the modules in this package:

  1. Clone this repository, or obtain a source tarball of this repository and extract the tarball.

  2. Change directory into the location where your copy of the code is stored.

  3. Make a build directory, then change directory into that: mkdir .build; cd .build

  4. Run the setup: meson ..

  5. Compile the code: ninja

  6. Install the modules: sudo ninja install

To actually use the modules, you'll need to inform GTK about their existence and, more importantly, that you want to use them. On GTK+ 3 you can create a file ~/.config/gtk-3.0/settings.ini that contains:

    [Settings]
    gtk-modules = [list of modules separated by colons]

Do not surround the list of modules with quotes! This has unintended side effects including presentation of cryptic Gtk-Messages about failing to find module x or y.

On GTK 4, use the same method as on GTK+ 3, but change the gtk-3.0 above to gtk-4.0.

On GTK+ 2 (few modules here are useful for GTK+ 2), create a file ~/.config/gtk-2.0/gtkrc which contains the following:

    gtk-modules = [quoted list of modules separated by colons]

It is important to surround the list of modules with double quotes on GTK+ 2. Otherwise, the modules will not load. Yes, it's inconsistent. But it's not my fault.


Thanks for checking out (pun intended) this repository!

About

The STLWRT-ian GTK Modules -- a pack of modules to spice up GTK

Resources

License

Stars

Watchers

Forks

Packages

No packages published