Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/adapta-project/adapta-gtk-theme

An adaptive Gtk+ theme based on Material Design Guidelines
https://github.com/adapta-project/adapta-gtk-theme

adapta gtk theme

Last synced: 7 days ago
JSON representation

An adaptive Gtk+ theme based on Material Design Guidelines

Awesome Lists containing this project

README

        

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**](https://fonts.google.com/specimen/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

2. [**Noto Sans**](https://fonts.google.com/specimen/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](https://github.com/adapta-project/adapta-github-resources/blob/master/images/Materials.png)

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:

* PPA: [**Stable-channel**](https://launchpad.net/~tista/+archive/ubuntu/adapta)
and [**Dev-channel**](https://launchpad.net/~tista/+archive/ubuntu/adapta-nightly)

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}
```

2. 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`.

3. 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.

4. 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.

5. 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.

6. To enable extra Gtk+ release support, pass these options:

```
--enable-gtk_next enable Gtk+ 4.0 support (type: bool)
```

7. 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 `HEX`s (Standard RGB definitions in HTML codes).
> Uppercases are strongly recommended in Adapta code-base.
> * The Material Design Color Palette can be found [**here**](https://www.google.com/design/spec/style/color.html#color-color-palette).
> * 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**](/extra/gedit/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**](https://marketplace.visualstudio.com/items?itemName=SolarLiner.linux-themes)

2. Vscode-theme-adapted (Author: About-Code): [**Visual Studio Marketplace**](https://marketplace.visualstudio.com/items?itemName=about-code.vscode-theme-adapted)

Extra Browser Support
---------------------
To try our color samples for FirefoxColor test pilot, check these URLs:

1. [**Adapta**](https://color.firefox.com/?theme=XQAAAALUAAAAAAAAAABBKYhm849SCiazH1KEGccwS-xNVAWBvoBvsLDMFdiXwrZEjOV1NwO6XqPerXD8qZXG0Ve0ysSRDO_Fqq_1SFIUTSKR-LFqpoxVvvpw1Iq_PQcwWXZZeVXaSfmGGjCCdDkcOR3IcXyEWy-CbpLupG_UOE7d7U-IqXDfj3RCFFTYAW-cbj4Hku3mPIskyg-xRys_ul6HSl3J_IaFQA)

2. [**Adapta-Nokto**](https://color.firefox.com/?theme=XQAAAALUAAAAAAAAAABBKYhm849SCiazH1KEGccwS-xNVAVNrWV6_89xtxNWy3sM0X99YG7itotZ8sB9kkK0owJCyKXJNAryj9IJU_wtu72r-X3skC4prCeW-fnJweq-4xu9tLmeXj8UkSdZGnzwrWVCNr3bToa6Zufrkj2b7e0PqstuOnN1gdAzjKSHwEJvdQThz-ruhge78cW2PaG0mCwQPvE72cX8OQiA)

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**](https://chrome.google.com/webstore/detail/colordeck-for-tweetdeck/jgoilgghdiafcdpgaddhfnlnhjhiejjl)
> * [**Firefox Add-ons**](https://addons.mozilla.org/en-US/firefox/addon/colordeck/)
> * 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:
- [**Adapta KDE**](https://github.com/PapirusDevelopmentTeam/adapta-kde) - Port of this theme to KDE Plasma 5.
- [**Discord-Adapta-Nokto**](https://github.com/Scrumplex/Discord-Adpata-Nokto) - Adapta-oriented theme for Discord

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**](http://snwh.org/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.