Introducing Refine, an app to tweak advanced and experimental settings in GNOME. It is an alternative to GNOME Tweaks, and is a pet project I'm currently working to experiment with PyGObject and dconf, while following the data-driven, object-oriented, and composition paradigms.
The entire codebase is made up of widgets that provide all the functionality needed to add an option. For example, instead of adding each option programmatically in Refine, the ultimate goal is to have it all done in the UI file.
For example, if we want to add an option to enable or disable middle click paste, all we need is the following code in the UI file:
$RefineSwitchRow {<br> title: _('Middle Click Paste');<br> schema-id: 'org.gnome.desktop.interface';<br> key: 'gtk-enable-primary-paste';<br>}<br>
That's it. The
RefineSwitchRow
widget will do whatever it needs to do to ensure the option is available, grab the setting if it's available, and display it to the user. Many of these widgets provide extra functionality, such as a Reset button.You can get Refine on Flathub: flathub.org/apps/page.tesk.Ref…
Everything else (source code, screenshot, etc.) is in the project website: tesk.page/refine/, as well as the Flathub link.
#GNOME #Flatpak #Flathub #FOSS #OpenSource #GTK #Libadwaita