README.md
1<img src=".gitlab/logo_thumb_small.png" alt="Logo" align="left" width="85" height="85"/>
2
3### Plata-theme
4
5A Gtk theme based on Material Design Refresh.
6
7----------------------------------------------
8
9Typography
10----------
11
12Plata strongly depends on Material Design resources, especially its **fonts**.
13
14 1. [**Roboto**](https://fonts.google.com/specimen/Roboto)
15 - Very famous as the default truetype font in Android (English ver.).
16 - Multilingual support is not good.
17 - Weight used in Plata: 300, 400, 500, 700
18
19| |Primary|Fallback|
20|:-----|:-----:|:-----:|
21|Gnome-Shell =< 3.34|**Roboto**|Sans-serif|
22|Gnome-Shell >= 3.36|follow system settings||
23|Cinnamon |**Roboto**|Sans-serif|
24
25Plata is designed with nominal **13px (or 14px)** Roboto Regular font.
26In Gnome, "window-scaling-factor = 1.0" means `-gtk-dpi = 96`, it also means:
27 ```
28 13 [px] x 72 [pt/inch] / 96 [px/inch] = 9.75 [pt]
29 14 [px] x 72 [pt/inch] / 96 [px/inch] = 10.5 [pt]
30 ```
31That's the reason why `13.33px = 10pt` is used for rem/px conversion in Gtk 3.2x/4.0 theming.
32
33> **Note:**
34>
35> 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.
36
37**Verify the fonts are rendered correctly via font-viewer tools like Gnome-Font-Viewer.**
38
39Required Components
40-------------------
41Plata supports Gtk 2.24.x, 3.20.x, 3.22.x and 3.24.x.
42
43 ```
44 * Gtk-3.0 >= 3.20.0
45 * Gtk-2.0 >= 2.24.30
46 * gtk2-engines-pixbuf >= 2.24.30
47 * gtk2-engines-murrine >= 0.98.1
48 ```
49
50Supported Desktop Environments
51------------------------------
52
53 ```
54 * GNOME-Shell >= 3.20.0
55 * GNOME-Flashback >= 3.20
56 * Budgie-Desktop >= 10.4
57 * Cinnamon >= 3.2.0
58 * XFce4 >= 4.12.2
59 * Mate >= 1.22 (Marco >= 1.22.2)
60 * LXDE >= 0.99.1 (Gtk 2.x only)
61 ```
62
63Unsupported Gtk Based Desktop(s)
64-------------------------------
65 * Pantheon
66 * Unity7
67 * Gnome-Shell customed by downstream (Ubuntu session, Pop! OS ...etc)
68
69 > **Note:**
70 >
71 > * Plata does NOT support elementaryOS.
72
73Installation from Package(s)
74----------------------------
75 * Arch (AUR): [**plata-theme**](https://aur.archlinux.org/packages/plata-theme)
76 * OpenSUSE: [**Official repository**](https://software.opensuse.org/package/plata-theme)
77 * Solus: Official repository
78 * Void: [**Official repository**](https://github.com/void-linux/void-packages/tree/master/srcpkgs/plata-theme)
79 * Flatpak: Official flathub repository (current package branch = **3.22**)
80 * Fedora (Copr): [**tonyjames/plata-theme**](https://copr.fedorainfracloud.org/coprs/tonyjames/plata-theme/)
81 * My Personal Package Archives (PPA): [**plata-theme**](https://launchpad.net/~tista/+archive/ubuntu/plata-theme)
82
83Installation from Git Source
84----------------------------
851. If previous versions were installed/existed, remove them first.
86
87 ```
88 sudo rm -rf /usr/share/themes/{Plata,Plata-Compact,Plata-Lumine,Plata-Lumine-Compact,Plata-Noir,Plata-Noir-Compact}
89 sudo rm -rf /usr/local/share/themes/{Plata,Plata-Compact,Plata-Lumine,Plata-Lumine-Compact,Plata-Noir,Plata-Noir-Compact}
90 rm -rf ~/.local/share/themes/{Plata,Plata-Compact,Plata-Lumine,Plata-Lumine-Compact,Plata-Noir,Plata-Noir-Compact}
91 rm -rf ~/.themes/{Plata,Plata-Compact,Plata-Lumine,Plata-Lumine-Compact,Plata-Noir,Plata-Noir-Compact}
92 ```
93
942. Check build-requirements:
95 Currently Plata bundles neither pre-generated stylesheets nor PNG images.
96 So users and/or contributors should generate proper CSSs, PNGs and gresources at build-time.
97
98 ```
99 * autoconf
100 * automake
101 * inkscape >= 0.91
102 * libgdk-pixbuf2.0-dev (gdk-pixbuf2-devel) >= 2.32.2
103 * libglib2.0-dev (glib2-devel) >= 2.48.0
104 * libxml2-utils (libxml2)
105 * pkg-config (pkgconfig)
106 * sassc >= 3.3
107
108 * libmarco-dev (marco-devel) >= 1.22.2 (if --enable-mate)
109
110 * parallel (if --enable-parallel)
111 * zip (if --enable-telegram)
112 ```
113
114 > **Note:**
115 >
116 > * In OpenSUSE, add an extra dependency:
117 >
118 > ```
119 > gdk-pixbuf-devel >= 2.32.2
120 > ```
121 >
122 > * Plata employs **SassC** wrapper of `libsass` to generate CSS stylesheets.
123 > * Plata uses `inkscape` to generate installable PNG files.
124 > * Plata uses `glib-compile-resources` to compile the gresource files for Gtk and Gnome-Shell.
125 > * `glib-2.0 >= 2.53`, Gnome-Shell 3.26 theming is used if `--enable-gnome`.
126
1273. Build and install system-wide:
128
129 ```
130 ./autogen.sh --prefix=/usr
131 make
132 sudo make install
133 ```
134
135 > **Note:**
136 >
137 > * Default prefix is `/usr/local`.
138 > * All 6 variants are installed by default.
139 > * `make` generates proper CSSs and PNGs to be installed.
140 > It will take about 5min to 15min to build.
141 > For example, Ubuntu's build-server takes 10min.
142 > * `sudo make install` installs multiple versioned theme and Gtk automatically selects the properly versioned one when running.
143
1444. To speed up by using concurrency-build, pass this specific option to `autogen.sh`:
145
146 ```
147 --enable-parallel enable parallel-build support (type: bool)
148 ```
149
150 > **Note:**
151 >
152 > * This feature requires GNU `parallel`, so please add `parallel` to build-requirements.
153 > Parallel can execute multiple scripts and binaries to be suitable for multi-threading.
154 > It could especially shorten the rendering-time via `inkscape`.
155 > * `-jN` option to be passed to GNU `make` is surely usable, but Plata currently employs `parallel`.
156 > * This feature should not be applied when packaging on remote/shared build-servers.
157
1585. To disable some DE supports, pass these specific options to `autogen.sh`:
159
160 ```
161 --disable-gnome disable gnome-shell support (type: bool)
162 --disable-cinnamon disable cinnamon support (type: bool)
163 --disable-flashback disable flashback support (type: bool)
164 --disable-xfce disable xfce support (type: bool)
165 --disable-mate disable mate support (type: bool)
166 --disable-openbox disable openbox support (type: bool)
167 ```
168
169 > **Note:**
170 >
171 > * The installer installs Budgie-Desktop support even if all of options above were applied.
172 > * Cinnamon/Mate support hooks metacity-1 directory even if GNOME-Flashback support was disabled.
173
1746. To enable extra Gtk release support, pass these options:
175
176 ```
177 --enable-gtk_next enable Gtk 4.0 support (type: bool)
178 ```
179
1807. To change the default 4 **Key-Colors**, pass these options:
181
182 ```
183 --with-selection_color Primary color for 'selected-items' (Default: #3f51b5 = Indigo500, type: string)
184 --with-accent_color Secondary color for notifications and OSDs (Default: #7986cb = Indigo300, type: string)
185 --with-suggestion_color Secondary color for 'suggested' buttons (Default: #673ab7 = DPurple500, type: string)
186 --with-destruction_color Tertiary color for 'destructive' buttons (Default: #f44336 = Red500, type: string)
187 ```
188
189 > **Note:**
190 >
191 > * Color-codes are defined as `#` + 6-digit `HEX`s (Standard RGB definitions in HTML codes).
192 > * The Material Design Color Palette can be found [**here**](https://www.google.com/design/spec/style/color.html#color-color-palette).
193 > * Example: If you would like to use 'Teal500' as selection_color, use this:
194 >
195 > bash:
196 >
197 > ```./autogen.sh --with-selection_color=#009688```
198 >
199 > zsh with extended_glob:
200 >
201 > ```./autogen.sh --with-selection_color='#009688'```
202 >
203 > This switchese the theme to Teal selection colors.
204 > * Basically `selection_color` and `suggestion_color` should use `500` colors,
205 > and `accent_color` should use `300` colors.
206 > * While doing `make`, Plata changes those 4 colors in all stylesheets and images,
207 > and `make clean` cleans up all generated files from source directories.
208
209GtkSourceView/Gedit Color Scheme Support
210----------------------------------------
211 2 theme files `plata-light.xml` and `plata-dark.xml` are installed by default into `Plata*/gtksourceview` directories.
212
213 > **Note:**
214 >
215 > * The color-scheme can be used in Gnome-Builder, Gnome-Sushi, Meld and Gedit if installed to
216 > `~/.local/share/gtksourceview-3.0/styles` or `~/.local/share/gtksourceview-4/styles` directory.
217
218Extra Browser Support
219---------------------
220To try our color samples for FirefoxColor test pilot, check these URLs:
221
222 1. [**Plata**](https://color.firefox.com/?theme=XQAAAAL8AAAAAAAAAABBKYhm849SCia2CaaEGccwS-xNKliFvd9NUAF6ENY3kBjKL2oHo45W2-O_o0hH8v9jyb1gPLS8xyg320t5BtQBRbshC37eqwUpEtrNzUXzzCCGCEnPVujOpTgJBqePqVNh4q1nxYUIdLIFaoaGFtpU8UGWTHdYK89VREGS2_uycyNkLyT_fUsp3rt8085FMcIrk2zP6zlQ8nXHifYExWUlXde95kD4F3H_cvgAAA)
223
224 2. [**Plata-Lumine**](https://color.firefox.com/?theme=XQAAAAL8AAAAAAAAAABBKYhm849SCia2CaaEGccwS-xNKliFvd9NUAF6ENY3kBjKL2oHo45W2-O_o0hH8v9jyb1gPLS8xyg3NbO0xf8CWW1IQ-VFBeST-c2ya550Jq-AJT3qXk84PCZgv4Q1Ip6G8KMxah3hVdR8-Zr9ze0kGqgOtR7bn1Nps1cYGNzQQkA8ajSLlQnjaMNzy_Cgfm6TGsTtSGCZPEHAaGevqPSrPV7L_8f2AAA)
225
226 3. [**Plata-Noir**](https://color.firefox.com/?theme=XQAAAAL8AAAAAAAAAABBKYhm849SCia2CaaEGccwS-xNKlhR4U3ii01izoNSwV8EzxA9i34l-h9kNzmmbht5egIz1VwqGu4asy3bC0Iu-fSfcIJAVAwKwUYrdnMCFPHjDRh3WIEk3D10l1b0yhJ2JJ4iidXrDdOeHtPXECgT4mWPRinIv4rInTDn_LmydH4PXIv_OPeKQZiffADmQZvxlSWtpsLQfUznQX8sEtOtxfBaEVM7_-LnUAA)
227
228 > **Note:**
229 >
230 > * We no longer support "Normal" UI layout in Chrome(ium). Use "Refresh" instead.
231 >
232 > * Vivaldi can make custom themes via settings like these:
233 > ```
234 > Background: #F8F8F8 (#1D1D1D)
235 > Foreground: #111111 (#F5F5F5)
236 > Highlight: #3F51B5
237 > Accent: #E7E7E7 (#080808)
238 > Accent Color from Active Page: [ ]
239 > Apply Accent Color to Window: [*]
240 > Transparent Tabs: [*]
241 > Corner Rounding: 2px
242 > ```
243
244Extra Dock Support
245------------------
246 To try "Plank" theming, pass this option:
247
248 ```
249 --enable-plank enable Plank support (type: bool)
250 ```
251
252 Then select `Gtk` via `plank --preferences`.
253
254 > **Note:**
255 >
256 > * Both Plata and Plata-Noir shares the dark theming, Plata-Lumine uses light theming.
257 > * Don't expect too much. Plank is NOT a themeable widget for me!
258
259Extra Compositor Support
260------------------------
261 Compton is the famous stand-alone compositor that works well with the Openbox window-manager. The installer installs recommended configuration file `compton.conf` into `Plata/openbox-3` directory if Openbox support is enabled.
262
263 Next, copy that file into `~/.config/` and restart compton to read the settings. That compositor still has some limitations in its features for Plata, however.
264
265Extra Telegram Support
266----------------------
267 To try "Telegram 1.0" theming, pass this option:
268
269 ```
270 --enable-telegram enable Telegram 1.0 support (type: bool)
271 ```
272
273 The installer installs compressed `tdesktop-theme` files into `Plata*/telegram` directories if Telegram support is enabled.
274 Then open the file via Telegram > Main Menu > Settings > Chat background > Choose from file.
275
276 > **Note:**
277 >
278 > * The `plata.tdesktop-theme` and `plata-lumine.tdesktop-theme` are for light-variant, and `plata-noir.tdesktop-theme` is for dark-variant.
279 > * Bundled noise-texture images are for *tiled* mode.
280 > * Telegram support is a W.I.P currently.
281
282Extra Tweetdeck Support
283-----------------------
284 To try "Colordeck for Tweetdeck" extension theming, pass this option:
285
286 ```
287 --enable-tweetdeck enable Tweetdeck-colordeck support (type: bool)
288 ```
289
290 The installer installs `cdk` files into `Plata*/tweetdeck` directories if Tweetdeck support is enabled.
291 Then open the file via Colordeck -> import > "Colors" -> Choose File.
292
293 > **Note:**
294 >
295 > * [**Chrome Web Store**](https://chrome.google.com/webstore/detail/colordeck-for-tweetdeck/jgoilgghdiafcdpgaddhfnlnhjhiejjl)
296 > * [**Firefox Add-ons**](https://addons.mozilla.org/en-US/firefox/addon/colordeck/)
297 > * Mixed and dark variants are supported.
298 > * Currently those files support "Colors" only, so enabling "Colors" checkbox is enough.
299
300Extra Air-for-Steam Support
301---------------------------
302 To try "Air for Steam" colors and themes, pass this option (dark-variant only):
303
304 ```
305 --enable-airforsteam enable Air-for-Steam support (type: bool)
306 ```
307
308 You should veify that you've already installed Air-for-Steam skin to `~/.steam/skins` directory.
309 The installer installs 2 files into `Plata-Noir/airforsteam` directory if Air-for-Steam support is enabled:
310 * Copy `Resource/colors/plata-noir.styles` to `~/.steam/skins/Air-for-Steam-*/Resource/colors` or
311 `~/.steam/skins/Air-for-Steam-*/Resource/colors/user`.
312 * Copy `Resource/themes/_plata-noir.styles` to `~/.steam/skins/Air-for-Steam-*/Resource/themes`.
313
314 Edit `~/.steam/skins/Air-for-Steam-*/config.init` to activate those styles, then restart the Steam app.
315
316Work in Progress
317----------------
318
319TODO
320----
321
322Public License
323--------------
324 * GPLv2.0 (Codebase)
325
326 * CC BY-SA 4.0 (Asset images)
327
328 > **Note:**
329 >
330 > And an icon-theme in Cinnamon thumbnails:
331 > [**Paper Icons**](http://snwh.org/paper/icons) by Sam Hewitt is licensed under CC-SA-4.0.
332
333Donations
334---------
335
336Special Thanks to
337--------------
338 Nana-4, the developer of Materia (formerly Flat-Plat)
339
340 Sam Hewitt, the developer of Paper-icon theme
341