Home

Awesome

<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/logo_thumb.png" alt="Logo" align="left" /> Adapta-gtk-theme

An adaptive Gtk+ theme based on Material Design Guidelines.

27 Mar 2020

Before using Adapta

Typography

Adapta strongly depends on Material Design resources, especially its fonts.

  1. Roboto
  1. Noto Sans
PrimarySecondaryFallback
Gnome-Shell >= 3.26RobotoNotoSansSans-serif
Gnome-Shell =< 3.24NotoSansSans-serif
CinnamonRobotoSans-serif

Note:

Adapta is designed with nominal 13px (or 14px) Roboto font. In Gnome, "window-scaling-factor = 1.0" means -gtk-dpi = 96, it also means:

13 [px] x 72 [pt/inch] / 96 [px/inch] = 9.75 [pt]
14 [px] x 72 [pt/inch] / 96 [px/inch] = 10.5 [pt]

That's the reason why 13.33px = 10pt is used for rem/px conversion in Gtk+ 3.2x theming (In Gtk+ 3.18.x theming, em unit is directly used).

Note:

NotoSans CJK (ChineseJapaneseKorean) opentype fonts are actually 0.1em taller than Roboto fonts, so if 10pt Roboto was suitable on your LCDs, set 9pt for NotoSans CJK families.

Verify the fonts are rendered correctly via font-viewer tools like Gnome-Font-Viewer.

Variant Matrix

<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/sunlight.png" align="left"/> Adapta<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/moon.png" align="left"/> Adapta-Nokto<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/sunlight-eta.png" align="left"/> Adapta-Eta<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/moon-eta.png" align="left"/> Adapta-Nokto-Eta
Gtk+ 2.24.x<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" />
Gtk+ 3.20.x<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" />
Gtk+ 3.22.x<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" />
Gtk+ 3.24.x<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" />
Mutter<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" />
Metacity<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" />
Muffin<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-off.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-off.png" align="center" />
XFwm4<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-off.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-off.png" align="center" />
Marco<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-off.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-off.png" align="center" />
Openbox-3<img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-on.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-off.png" align="center" /><img src="https://github.com/adapta-project/adapta-github-resources/blob/master/images/check-off.png" align="center" />

Note:

Elements

Materials

Required Components

Adapta supports Gtk+ 3.24.x, 3.22.x and 3.20.x

* Gtk+-3.0             >= 3.20.0
* Gtk+-2.0             >= 2.24.30
* gtk2-engines-pixbuf  >= 2.24.30
* gtk2-engines-murrine >= 0.98.1

Supported Desktop Environments

* GNOME-Shell     >= 3.20.0
* GNOME-Flashback >= 3.20
* Budgie-Desktop  >= 10.4
* Cinnamon        >= 3.2.0
* XFce4           >= 4.12.2
* Mate            >= 1.14.0
* LXDE            >= 0.99.1 (Gtk+ 2.x only)

Unsupported Gtk+ Based Desktop(s)

Note:

Installation from Package(s)

Package(s) can be found in the official main repositories of these distributions:

Personal repository:

Installation from Git Source

  1. If previous versions were installed/existed, remove them first.
sudo rm -rf /usr/share/themes/{Adapta,Adapta-Eta,Adapta-Nokto,Adapta-Nokto-Eta}
rm -rf ~/.local/share/themes/{Adapta,Adapta-Eta,Adapta-Nokto,Adapta-Nokto-Eta}
rm -rf ~/.themes/{Adapta,Adapta-Eta,Adapta-Nokto,Adapta-Nokto-Eta}
  1. Check build-requirements: Currently Adapta bundles neither pre-generated stylesheets nor PNG images. So users and/or contributors should generate proper CSSs, PNGs and gresources at build-time.
* autoconf
* automake
* inkscape                                  >= 0.91
* libgdk-pixbuf2.0-dev (gdk-pixbuf2-devel)  >= 2.32.2
* libglib2.0-dev (glib2-devel)              >= 2.48.0
* libxml2-utils (libxml2)
* pkg-config (pkgconfig)
* sassc                                     >= 3.3

* parallel                                  (if --enable-parallel)

Note:

  1. Build and install system-wide:
./autogen.sh --prefix=/usr
make
sudo make install

Note:

  1. To speed up by using concurrency-build, pass this specific option to autogen.sh:
--enable-parallel       enable parallel-build support (type: bool)

Note:

  1. To disable some DE supports, pass these specific options to autogen.sh:
--disable-gnome         disable gnome-shell support (type: bool)
--disable-cinnamon      disable cinnamon support (type: bool)
--disable-flashback     disable flashback support (type: bool)
--disable-xfce          disable xfce support (type: bool)
--disable-mate          disable mate support (type: bool)
--disable-openbox       disable openbox support (type: bool)

Note:

  1. To enable extra Gtk+ release support, pass these options:
--enable-gtk_next      enable Gtk+ 4.0 support (type: bool)
  1. To change the default 4 Key-Colors, pass these options:
--with-selection_color        Primary color for 'selected-items' (Default: #00BCD4 = Cyan500, type: string)
--with-accent_color           Secondary color for notifications and OSDs (Default: #4DB6AC = Teal300, type: string)
--with-suggestion_color       Secondary color for 'suggested' buttons (Default: #009688 = Teal500, type: string)
--with-destruction_color      Tertiary color for 'destructive' buttons (Default: #FF5252 = RedA200, type: string)

Note:

GtkSourceView/Gedit Color Scheme Support

A theme file adapta.xml is installed by default into Adapta(-Nokto)/gedit directory. See details in README.md.

Note:

Visual Studio Code (VS Code) Theme Support

  1. Linux-themes (Author: SolarLiner): Visual Studio Marketplace

  2. Vscode-theme-adapted (Author: About-Code): Visual Studio Marketplace

Extra Browser Support

To try our color samples for FirefoxColor test pilot, check these URLs:

  1. Adapta

  2. Adapta-Nokto

To try legacy Chrome(ium) specific theming (< 59.0.30xx), pass this option:

--enable-chrome-legacy     enable legacy Chrome(ium) support (type: bool)

The compressed crx files will be installed into Adapta/chrome and Adapta-Nokto/chrome.

Note:

Extra Dock Support

To try "Plank" theming, pass this option:

--enable-plank         enable Plank support (type: bool)

Then select Gtk+ via plank --preferences.

Note:

Extra Compositor Support

Compton is the famous stand-alone compositor that works well with the Openbox window-manager. The installer installs recommended configuration file compton.conf into Adapta/openbox-3 directory if Openbox support is enabled.

Next, copy that file into ~/.config/ and restart compton to read the settings. That compositor still has some limitations in its features for Adapta, however.

Extra Telegram Support

To try "Telegram 1.0" theming, pass this option:

--enable-telegram      enable Telegram 1.0 support (type: bool)

The installer installs compressed tdesktop-theme files into Adapta/telegram and Adapta-Nokto/telegram directories if Telegram support is enabled. Then open the file via Telegram > Main Menu > Settings > Chat background > Choose from file.

Note:

Extra Tweetdeck Support

To try "Colordeck for Tweetdeck" extension theming, pass this option:

--enable-tweetdeck      enable Tweetdeck-colordeck support (type: bool)

The installer installs cdk files into Adapta*/tweetdeck directories if Tweetdeck support is enabled. Then open the file via Colordeck -> import > "Colors" -> Choose File.

Note:

Other Projects

This is a list of community projects, related to Adapta:

Work in Progress

TODO

Public License

GPLv2.0

Note:

SVG files are licensed under CC BY-SA 4.0. And an icon-theme in Cinnamon thumbnails: Paper Icons by Sam Hewitt is licensed under CC-SA-4.0.

Donations

Special Thanks to

Nana-4, the developer of Materia (formerly Flat-Plat).

And all supporters, thank you.