A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme.
GTK 4.12..4.20-classic (Pango 1.56)
![]()
GTK 5.0 (Pango 1.56)
GtkWindow will be probably deprecated... lol
Theme used for the screenshots is available here.
- Some options are available from command line (read
-h,--helpor man page). - Options menu allow to display some standard dialogs.
- System and user themes menu allow to set current theme.
- Text direction menu allow to change text direction (LTR/RTL).
- Info toolbar button allow to display a notification.
- Plus/minus toolbar buttons allow to show or hide: notebooks arrows, marks on progress bars and scales...
- Refresh toolbar button and refresh menu item allow to reload the current theme (like
SIGHUPsignal). - Menu keyboard shortcuts can be updated on hover (GTK 2.24 and 3.x, gtk-can-change-accels).
- Notebooks tabs are scrollable (GTK 3.x and 4.x, gtk-scroll-tabs, like with GTK 2.24).
- With Ubuntu, menu keyboard shortcuts can also be updated on hover with:
UBUNTU_MENUPROXY= awf-gtk3 - Use
GTK_CSD=1to enable CSD window - Use
GTK_OVERLAY_SCROLLING=0to set scrollbars always visible
It require GTK 2.24 or GTK 3.0+ (including 3.24) or GTK 4.0+ (including 4.20), GLIB 2.28+, libnotify 0.7+.
sudo apt install awf-gtk2 awf-gtk3 awf-gtk4
sudo dnf install awf-gtk2 awf-gtk3 awf-gtk4
sudo zypper install awf-gtk2 awf-gtk3 awf-gtk4
sudo urpmi awf-extended-gtk2 awf-extended-gtk3 awf-extended-gtk4
- To compile with all available major versions of GTK run:
build.sh - To compile and create DEB packages for Debian & Ubuntu run:
scripts/debian[-gtkx]/deb.sh - To compile and create RPM packages for Fedora run:
scripts/fedora/rpm-gtkx.sh - To compile and create RPM packages for Mageia run:
scripts/mageia/rpm-gtkx.sh - To compile and create RPM packages for openSUSE run:
scripts/opensuse/rpm-gtkx.sh - To compile and create RPM packages for OpenMandriva run:
scripts/openmandriva/rpm-gtkx.sh
# PPA: https://launchpad.net/~luigifab/+archive/ubuntu/packages
# from Debian 12 you can use noble/plucky/questing (unix.stackexchange.com/a/669008/364800)
# Debian: focal for 10/buster, jammy for 11/bullseye, noble for 12/bookworm,
# plucky for 13/trixie, questing for 14/forky and 15/duke
# Devuan: focal for 3/beowulf, jammy for 4/chimaera, noble for 5/daedalus,
# plucky for 6/excalibur, questing for 7/freia and 8/gryphon and ceres
# Linux Mint: focal for 20.x and 4/debbie, jammy for 21.x and 5/elsie,
# noble for 22.x and 6/faye, plucky for 7/gigi
# MX Linux: focal for 19.x, jammy for 21.x, noble for 23.x, questing for 25.x
# Trisquel: focal for nabia, jammy for aramo
# Kali Linux: questing
sudo add-apt-repository ppa:luigifab/packages
sudo apt update
sudo apt install awf-gtk2 awf-gtk3 awf-gtk4
# or
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys FFE5BD439356DF7D
echo "deb http://ppa.launchpad.net/luigifab/packages/ubuntu focal main" | sudo tee -a /etc/apt/sources.list
sudo apt update
sudo apt install awf-gtk2 awf-gtk3 awf-gtk4
# or
sudo wget -O /etc/apt/trusted.gpg.d/luigifab.gpg https://www.luigifab.fr/apt.gpg
echo "deb http://ppa.launchpad.net/luigifab/packages/ubuntu focal main" | sudo tee -a /etc/apt/sources.list
sudo apt update
sudo apt install awf-gtk2 awf-gtk3 awf-gtk4
# or
wget -qO - https://www.luigifab.fr/apt.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/luigifab.gpg
echo "deb http://ppa.launchpad.net/luigifab/packages/ubuntu focal main" | sudo tee -a /etc/apt/sources.list
sudo apt update
sudo apt install awf-gtk2 awf-gtk3 awf-gtk4
# sha256sum /etc/apt/trusted.gpg.d/luigifab.gpg
578c89a677048e38007462d543686b53587efba9f93814601169253c45ff9213
# apt-key list
/etc/apt/trusted.gpg.d/luigifab.gpg
pub rsa4096 2020-10-31 [SC]
458B 0C46 D024 FD8C B8BC 99CD FFE5 BD43 9356 DF7DIf font rendering is bad, try to add in ~/.config/gtk-4.0/settings.ini:
[Settings]
gtk-font-rendering=manual
gtk-hint-font-metrics=1
gtk-xft-hintstyle=hintfull
gtk-xft-antialias=0
gtk-xft-hinting=1
From migrating guide: non-standard CSS extensions are going away [...] @define-color should be replaced [...] the color functions can all be replaced by combinations of calc() and color-mix().
I think it would be nice to create a patch to fix this GTK regression.
Use ~/.config/gtk-3.0/gtk.css and ~/.config/gtk-4.0/gtk.css files.
To reload theme when source files change, you can use Entr with the SIGHUP signal:
sudo apt install entr or sudo dnf install entr or sudo zypper install entr or ...
ls ~/.themes/yourtheme/gtk-3*/*.css | entr killall -s SIGHUP awf-gtk3
- Current version: 3.2.0 (10/10/2025)
- Compatibility: GTK 2.24 / 3.0..3.24 / 4.0..4.20
- Links: luigifab.fr - github.com - ppa/dpa
This program is provided under the terms of the GNU GPLv3+ license.
If you like, take some of your time to improve the translations, go to https://bit.ly/2HyCCEc.
Forked from awf by Valère Monseur (valr).