An adaptive Gtk+ theme based on Material Design Guidelines

Overview

Logo Adapta-gtk-theme

An adaptive Gtk+ theme based on Material Design Guidelines.

27 Mar 2020

  • Development of the Adapta GTK theme has completely ended.
  • Turn to Archived state.

Before using Adapta

Typography

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

  1. Roboto
  • Very famous as the default truetype font in Android (English ver.).
  • Multilingual support is not good.
  • Weight used in Adapta: 300, 400, 500, 700
  1. Noto Sans
  • Noto (NO TOfu) sans-serif truetype/opentype font covers a lot of languages.
  • Developed by Monotype and Adobe.
  • Weight used in Adapta: 400, (500), 700
Primary Secondary Fallback
Gnome-Shell >= 3.26 Roboto NotoSans Sans-serif
Gnome-Shell =< 3.24 NotoSans Sans-serif
Cinnamon Roboto Sans-serif

Note:

  • Roboto is very nice with Adapta, but in some locales, it causes Tofu.
  • NotoSans may work well in various locales, but NotoSans lacks 500 (Medium) weight. So elements defined with 500 will be drawn with 400 automatically.
  • NotoSans CJK supports 500 weight.
  • NotoSans is used as the 'password chars U+25CF' only in Gnome-Shell >= 3.26.

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

Adapta Adapta-Nokto Adapta-Eta Adapta-Nokto-Eta
Gtk+ 2.24.x
Gtk+ 3.20.x
Gtk+ 3.22.x
Gtk+ 3.24.x
Mutter
Metacity
Muffin
XFwm4
Marco
Openbox-3

Note:

  • Nokto is a dark variant.
  • Eta is a tiny Gtk+ 2.x/3.2x Gtk+ widget variant for saving space.
  • I suggest you use the Eta variants if your LCD resolution is lower than FHD (1080p). Eta draws widgets around -20% to -30% spacing.
  • Metacity theming supports Eta variants (>= 3.2x).

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)

  • Pantheon
  • Unity7

Note:

  • Adapta does NOT support elementaryOS.

Installation from Package(s)

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

  • Arch (community)

  • Fedora

  • openSUSE (Tumbleweed)

  • Solus

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:

  • In OpenSUSE, add an extra dependency:

    gdk-pixbuf-devel        >= 2.32.2
    
  • Adapta employs SassC wrapper of libsass to generate CSS stylesheets.

  • Adapta uses inkscape to generate installable PNG files.

  • Adapta uses glib-compile-resources to compile the gresource files for Gtk+ and Gnome-Shell.

  • glib-2.0 >= 2.53, Gnome-Shell 3.26 theming is used if --enable-gnome.

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

Note:

  • Default prefix is /usr/local.
  • All 4 variants are installed by default.
  • make generates proper CSSs and PNGs to be installed. It will take about 5min to 15min to build. For example, Ubuntu's build-server takes 10min.
  • sudo make install installs multiple versioned theme and Gtk+ automatically selects the properly versioned one when running.
  1. To speed up by using concurrency-build, pass this specific option to autogen.sh:
--enable-parallel       enable parallel-build support (type: bool)

Note:

  • This feature requires GNU parallel, so please add parallel to build-requirements. Parallel can execute multiple scripts and binaries to be suitable for multi-threading. It could especially shorten the rendering-time via inkscape.
  • -jN option to be passed to GNU make is surely usable, but Adapta currently employs parallel.
  • This feature should not be applied when packaging on remote/shared build-servers.
  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:

  • The installer installs Budgie-Desktop support even if all of options above were applied.
  • Cinnamon/Mate support hooks metacity-1 directory even if GNOME-Flashback support was disabled.
  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:

  • Color-codes are defined as # + 6-digit HEXs (Standard RGB definitions in HTML codes). Uppercases are strongly recommended in Adapta code-base.

  • The Material Design Color Palette can be found here.

  • Example: If you would like to use 'Teal500' as selection_color, use this:

    ./autogen.sh --with-selection_color=#009688

    This switchese the theme to almost Teal key colors.

  • Basically selection_color and suggestion_color should use 500 colors, and accent_color should use 300 colors.

  • While doing make, Adapta changes those 4 colors in all stylesheets and images, and make clean cleans up all generated files from source directories.

  • This feature unfortunately is not supported in Openbox-3 and Telegram 1.0 theming.

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:

  • The color-scheme can be used in Gnome-Builder, Gnome-Sushi, Meld and Gedit if installed to ~/.local/share/gtksourceview-3.0/styles or ~/.local/share/gtksourceview-4/styles directory.
  • Currently only dark-variant is supported.

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:

  • Chrome(ium) 59.0.30xx or newer, theming is pulled from Gtk+ 3.x directly. So Settings > Appearance > Themes should be GTK+.

  • Vivaldi can make custom themes via settings like these:

    Background: #FAFBFC (#263238)
    Foreground: #263238 (#CFD8DC)
    Highlight:  #00BCD4
    Accent:     #222D32
    Accent Color from Active Page: [ ]
    Apply Accent Color to Window:  [*]
    Transparent Tabs:              [*]
    Corner Rounding:               2px
    

Extra Dock Support

To try "Plank" theming, pass this option:

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

Then select Gtk+ via plank --preferences.

Note:

  • Both Adapta and Adapta-Nokto shares the same theming.
  • Don't expect too much. Plank is NOT a themeable widget for me!

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:

  • The adapta.tdesktop-theme is for light-variant, and adapta-nokto.tdesktop-theme is for dark-variant.
  • Bundled noise-texture images are for tiled mode.
  • Telegram support is a W.I.P currently.

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:

  • Chrome Web Store
  • Firefox Add-ons
  • Light and dark variants are supported.
  • Currently those files support "Colors" only, so enabling "Colors" checkbox is enough.

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.

Issues
  • Make search entry more

    Make search entry more "material"

    Hey, thank you for your theme! I've noticed that ".search-entry" is a little bit uglish, so this is an attempt to make it more material :)

    Before

    before

    before-visual

    After

    after

    after-visual

    Issues

    • no expand animation: Even though transition allows to animate width property, it seems like GNOME doesn't animate width of the .search-entry. (Maybe I did something wrong)
    opened by zzag 11
  • Fix not beeing able to resize windows in openbox because window borders missing

    Fix not beeing able to resize windows in openbox because window borders missing

    I'm the maintainer of the Manjaro LXDE community edition and I'm thinking of using the adapta theme in the next release. However, I noticed that window borders are missing and windows cannot be resized without the alt modifier (the only applications which can be resized only with mouse are the ones that have the Gnome style borders).

    So this PR fixes that.

    opened by ThanosApostolou 9
  • Configure.ac: Reduce dependency on gnome-shell

    Configure.ac: Reduce dependency on gnome-shell

    Building adapta does not use any function provided by gnome, except for version checking. This will help those who do not have gnome installed locally to build.

    opened by yangfl 9
  • Fix gtk-3 theme not found by gnome-tweak-tool

    Fix gtk-3 theme not found by gnome-tweak-tool

    The version specific gtk-3.0 themes are not found by gnome-tweak-tool if they are not below a gtk-3.0 directory.

    opened by HeikoAdams 4
  • Update App Overview icon in Dash to Android Marshmallow style

    Update App Overview icon in Dash to Android Marshmallow style

    • SVG icon recreated from Marshmallow's original icon: https://android.googlesource.com/platform/packages/apps/Launcher3/+/marshmallow-release/res/drawable-xxhdpi/ic_allapps.png . See the xxhdpi version:

    ic_allapps

    You can download the tarball containing 'em from here: https://android.googlesource.com/platform/packages/apps/Launcher3/+/marshmallow-release/res/drawable-xxhdpi/

    opened by HEXcube 4
  • Update README.md

    Update README.md

    Addition of mailspring, adapta theme for mailspring

    opened by dennisotugo 3
  • Chrome: Fix button visibility in Nokto theme

    Chrome: Fix button visibility in Nokto theme

    I was having the following issue with the Nokto Chrome theme where buttons were not very visible:

    nokto1

    This change sets the button color tint to the closest analogue of the Nokto foreground color I could make:

    nokto2

    opened by tadfisher 3
  • :art: Prettify the top of the README

    :art: Prettify the top of the README

    Center the title and intro line. Move the element preview to top of the file.

    opened by pradyunsg 3
  • Add 10px drag corner to the bottom corners for xfwm4.

    Add 10px drag corner to the bottom corners for xfwm4.

    By default it is very hard to drag the default 2px corner for resizing the window. With this commit, we use 10 px drag corner, to easily resize windows under xfwm4.

    opened by hrotkogabor 1
  • Cinnamon 4 update - GWL, Overview and alternative stock menu + bugfixes

    Cinnamon 4 update - GWL, Overview and alternative stock menu + bugfixes

    Includes an updated version of GWL PR #744 - theming for pseudo-classes matches existing theming for Icing Task Manager.

    Also adds some style-classes for the alternative stock menu in Cinnamon 4.0 - at time of writing this menu is not being distributed with Cinnamon 4.0.1 but it might come back.

    Updates the overview section with new style-class for Cinnamon 4.

    Bug fix to the workspace-switcher applet in vertical panels.

    For Cinnamenu compatibility reduced menu search entry width and added some padding to menu-context-menu.

    opened by smurphos 0
  • Cinnamon: Add support for the grouped window list applet

    Cinnamon: Add support for the grouped window list applet

    GWL is a more integrated version of Icing Task Manager, which has its own classes in cinnamon.css in Cinnamon 4.0. This attempts to give it similar styling to how the theme styles ITM currently.

    opened by jaszhix 4
  • Fix Xfce name

    Fix Xfce name

    opened by robsonsilv4 0
Releases(3.95.0.11)
This is a Flat theme for Ubuntu and other Gnome based Linux Systems.

Update - I am looking for additional collaborators and maintainers to help me out with this. I have been keeping busy lately, and have been using Ubun

Anmol Jagetia 3.7k Nov 30, 2021
:ant: A flat and light theme with a modern look

Installation Extract the zip file to the themes directory i.e. /usr/share/themes/ or ~/.themes/ (create it if necessary). To set the theme in Gnome, r

Eliver L. 716 Nov 30, 2021
A flat theme with transparent elements (actively maintained fork)

Arc Theme Arc is a flat theme with transparent elements for GTK 3, GTK 2 and various desktop shells, window managers and applications. It's well suite

null 602 Nov 29, 2021
Modern Desktop Theme Suite

EvoPop Theme EvoPop is a modern desktop theme suite. Its design is mostly flat with a minimal use of shadows for depth. Requires Gtk 3.20 to function

Solus Project 184 Nov 17, 2021
Arc theme with Flatabulous window controls.

Arc-Flatabulous Theme Arc-Flatabulous theme is the Arc theme with Flatabulous window controls. Arc-Flatabulous is available in three variants Arc-Flat

Woky 622 Nov 20, 2021
A modern flat theme with a combination of light and dark elements.

Numix A modern flat theme with a combination of light and dark elements. It supports GNOME, Unity, Xfce and Openbox. Install It Distro Packages Distro

Numix Project 1.2k Nov 29, 2021
Moka Icon Theme

Moka Icon Theme Moka is a stylized FreeDesktop icon set, created with simplicity in mind. It uses simple geometry & bright colours and has been design

Sam Hewitt 454 Nov 19, 2021
Official base icon theme from the Numix project.

Numix icon theme Numix is the official icon theme from the Numix Project. It is heavily inspired by, and based upon parts of the Elementary, Humanity

Numix Project 706 Nov 22, 2021
Papirus icon theme for Linux

Papirus is a free and open source SVG icon theme for Linux, based on Paper Icon Set with a lot of new icons and a few extras, like Hardcode-Tray suppo

Papirus Development Team 4.7k Nov 24, 2021
A featherweight, lemon-scented, bar based on xcb

NAME lemonbar - Featherweight lemon-scented bar SYNOPSIS lemonbar [-h | -g widthxheight+x+y | -o | -b | -d | -f font | -p | -n name | -u pixel | -B co

null 1.4k Nov 24, 2021
Self-hosted YouTube downloader built on Material Design

YoutubeDL-Material YoutubeDL-Material is a Material Design frontend for youtube-dl. It's coded using Angular 11 for the frontend, and Node.js on the b

Tzahi12345 1.1k Nov 30, 2021
:speech_balloon: Chat application built with NodeJS and Material Design

Node.JS Chat This is a node.js chat application powered by SockJS and Express that provides the main functions you'd expect from a chat, such as emoji

Igor Antun 691 Nov 15, 2021
La Capitaine is an icon pack designed to integrate with most desktop environments. The set of icons takes inspiration from the latest iterations of macOS and Google's Material Design.

What is this? La Capitaine is an icon pack — designed to integrate with most desktop environments. The set of icons takes inspiration from the latest

Keefer Rourke 1.9k Nov 27, 2021
A full-featured & carefully designed adaptive prompt for Bash & Zsh

Liquid Prompt — a useful adaptive prompt for Bash & zsh Liquid Prompt gives you a nicely displayed prompt with useful information when you need it. It

nojhan 4.1k Nov 25, 2021
A fast file search utility for Unix-like systems based on GTK+3

FSearch is a fast file search utility, inspired by Everything Search Engine. It's written in C and based on GTK+3. Note: The application is still in b

Christian Boxdörfer 1.7k Nov 30, 2021
A Gtk based drop down terminal for Linux and Unix

What is Tilda? Tilda is a terminal emulator and can be compared with other popular terminal emulators such as gnome-terminal (Gnome), Konsole (KDE), x

Sebastian Geiger 1.1k Nov 28, 2021
An open source, turn-based strategy game with a high fantasy theme.

About The Battle for Wesnoth is an Open Source, turn-based tactical strategy game with a high fantasy theme, featuring both singleplayer and online/ho

Battle for Wesnoth 3.5k Nov 30, 2021
This is a Flat theme for Ubuntu and other Gnome based Linux Systems.

Update - I am looking for additional collaborators and maintainers to help me out with this. I have been keeping busy lately, and have been using Ubun

Anmol Jagetia 3.7k Nov 30, 2021
Modern XMPP ("Jabber") Chat Client using GTK+/Vala

Installation Have a look at the prebuilt packages. Build Make sure to install all dependencies. ./configure make build/dino Resources Check out the D

Dino 1.6k Nov 22, 2021
GTK 3 client for the Music Player Daemon - I'm looking for new maintainers!

Sonata is looking for new maintainers! I (@multani) don't use Sonata much anymore and as a consequence, I've been very slow to answer even to the few

Jonathan Ballet 123 Aug 28, 2021
Modern GTK Python Ebook Reader app to easily read epub files

I do not develop this anymore and I'm not sure I will. Stop starring me. As far as I know Bookworm does everything better anyway. And this thing suffe

Michał Daniel 387 Nov 8, 2021
Sugar GTK shell

Sugar Sugar is the desktop environment component of a worldwide effort to provide every child with an equal opportunity for a quality education. Avail

Sugar Labs 191 Nov 27, 2021
Native Gtk+ Twitter Client

Corebird Corebird will stop working mid-August: https://www.patreon.com/posts/corebirds-future-18921328 Shortcuts Key Description Ctrl + t Compose Twe

Timm Bäder 811 Oct 29, 2021
A searchable command palette in every modern GTK+ application

Only a compound can be beautiful, never anything devoid of parts; and only a whole; the several parts will have beauty, not in themselves, but only as

Philipp Emanuel Weidmann 958 Oct 28, 2021
Advanced color picker written in C++ using GTK+ toolkit

Gpick - advanced color picker and palette editor. Gpick is an application that allows you to sample any color from anywhere on the desktop, and use it

Albertas Vyšniauskas 267 Nov 29, 2021
A tiling terminal emulator for Linux using GTK+ 3

Tilix A tiling terminal emulator for Linux using GTK+ 3. The Tilix web site for users is available at https://gnunn1.github.io/tilix-web. Screenshot A

Gerald Nunn 4.7k Nov 30, 2021
Mirror of https://gitlab.com/Remmina/Remmina The GTK+ Remmina Remote Desktop Client

Remmina remote desktop client Use other desktops remotely, from a tiny screen or large monitors. RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC network prot

null 1.7k Nov 28, 2021
a simple, customisable theme for your apache directory listing

Apaxy apaxy is a customisable theme built to enhance the experience of browsing web directories. It uses the mod_autoindex Apache module - and some cs

null 1.7k Nov 15, 2021
a simple, customisable theme for your apache directory listing

Apaxy apaxy is a customisable theme built to enhance the experience of browsing web directories. It uses the mod_autoindex Apache module - and some cs

null 1.7k Nov 28, 2021