A fork of the Materia GTK theme.

Important information: Google announced that, from September 2026, Android devices will require ALL apps to be signed by Google, effectively leading to an iOS situation. Value your right to a computer that does what you want; do not tolerate this monopolistic practice! Contact me if you don't understand why it is bad. Click to learn more.

 meson.build

View raw Download
text/plain • 4.42 kiB
ASCII text
        
            
1
gnome_shell = find_program('gnome-shell', required: false)
2
3
if get_option('gnome_shell_version') != ''
4
gnome_shell_full_version = get_option('gnome_shell_version')
5
elif gnome_shell.found()
6
gnome_shell_full_version = run_command(gnome_shell, '--version').stdout().split()[-1]
7
else
8
message('gnome-shell not found, using styles for last gnome-shell version availible')
9
gnome_shell_full_version = '3.38'
10
endif
11
12
gnome_shell_version_array = gnome_shell_full_version.split('.')
13
if gnome_shell_version_array[0].version_compare('>= 40')
14
gnome_shell_version = gnome_shell_version_array[0]
15
elif gnome_shell_version_array[1].to_int().is_even()
16
gnome_shell_version = gnome_shell_version_array[0] + '.' + gnome_shell_version_array[1]
17
else
18
gnome_shell_version = gnome_shell_version_array[0] + '.' + (gnome_shell_version_array[1].to_int() + 1).to_string()
19
endif
20
21
gnome_shell_scss_depend_files = files([
22
'../_color-palette.scss',
23
'../_colors.scss',
24
'../_variables.scss',
25
'sass/components/base/_base.scss',
26
'sass/components/base/_button.scss',
27
'sass/components/base/_check-box.scss',
28
'sass/components/base/_entry.scss',
29
'sass/components/base/_scrollbar.scss',
30
'sass/components/base/_slider.scss',
31
'sass/components/base/_switch.scss',
32
'sass/components/dialog/_dialog.scss',
33
'sass/components/dialog/_network-dialog.scss',
34
'sass/components/gdm/_login-dialog.scss',
35
'sass/components/gdm/_screen-shield.scss',
36
'sass/components/menu/_calendar.scss',
37
'sass/components/menu/_candidate-popup.scss',
38
'sass/components/menu/_menu.scss',
39
'sass/components/menu/_message-list.scss',
40
'sass/components/misc/_a11y.scss',
41
'sass/components/misc/_keyboard.scss',
42
'sass/components/misc/_looking-glass.scss',
43
'sass/components/misc/_misc.scss',
44
'sass/components/misc/_tile-preview.scss',
45
'sass/components/notification/_hotplug.scss',
46
'sass/components/notification/_notification.scss',
47
'sass/components/osd/_osd.scss',
48
'sass/components/osd/_switcher.scss',
49
'sass/components/osd/_workspace-switcher.scss',
50
'sass/components/overview/_app-grid.scss',
51
'sass/components/overview/_dash.scss',
52
'sass/components/overview/_overview.scss',
53
'sass/components/overview/_search-entry.scss',
54
'sass/components/overview/_search-results.scss',
55
'sass/components/overview/_window-picker.scss',
56
'sass/components/overview/_workspace-switcher.scss',
57
'sass/components/panel/_panel.scss',
58
'sass/components/panel/_ripple-box.scss',
59
'sass/_components.scss',
60
'sass/_drawing.scss',
61
'sass/_extensions.scss',
62
'sass/_variables.scss',
63
])
64
65
foreach theme: themes
66
gnome_shell_dir = join_paths(theme['dir'], 'gnome-shell')
67
68
if theme['color'] != '-dark'
69
gnome_shell_assets_dir = 'assets'
70
else
71
gnome_shell_assets_dir = 'assets-dark'
72
endif
73
74
install_subdir(
75
gnome_shell_assets_dir,
76
strip_directory: true,
77
install_dir: join_paths(gnome_shell_dir, 'assets'),
78
)
79
80
install_subdir(
81
'extensions',
82
install_dir: gnome_shell_dir,
83
)
84
85
install_subdir(
86
'icons',
87
install_dir: gnome_shell_dir,
88
)
89
90
install_data(
91
[
92
'README.md',
93
'gnome-shell-theme.gresource.xml',
94
'noise-texture.png',
95
'pad-osd.css',
96
'process-working.svg',
97
],
98
install_dir: gnome_shell_dir,
99
)
100
101
#
102
# SCSS
103
#
104
105
gnome_shell_scss_conf = configuration_data()
106
gnome_shell_scss_conf.set('dark_theme', theme['scss_dark_theme'])
107
gnome_shell_scss_conf.set('light_topbar', theme['scss_light_topbar'])
108
gnome_shell_scss_conf.set('compact', theme['scss_compact'])
109
gnome_shell_scss_conf.set('version', gnome_shell_version)
110
111
# Configure SCSS file
112
gnome_shell_scss = configure_file(
113
input: 'gnome-shell.scss.in',
114
output: 'gnome-shell.@0@.scss'.format(theme['name']),
115
configuration: gnome_shell_scss_conf,
116
)
117
118
# Copy it from build dir to source dir
119
run_command(
120
'cp',
121
gnome_shell_scss,
122
meson.current_source_dir(),
123
)
124
125
# Generate CSS file
126
gnome_shell_css = custom_target(
127
'gnome-shell.@0@.css'.format(theme['name']),
128
input: 'gnome-shell.@0@.scss'.format(theme['name']),
129
output: 'gnome-shell.@0@.css'.format(theme['name']),
130
command: [sassc, sassc_opts, '@INPUT@', '@OUTPUT@'],
131
depend_files: gnome_shell_scss_depend_files,
132
build_by_default: true,
133
)
134
135
# Install it while renaming to a valid name
136
meson.add_install_script(
137
'sh', '-c', 'cp "@0@" "@1@"'.format(
138
gnome_shell_css.full_path(),
139
join_paths('$MESON_INSTALL_DESTDIR_PREFIX', gnome_shell_dir, 'gnome-shell.css'),
140
),
141
)
142
endforeach
143