-
-
Notifications
You must be signed in to change notification settings - Fork 360
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Qt theming] Qt apps material theming using kvantum (#1055)
- Loading branch information
Showing
14 changed files
with
21,121 additions
and
123 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Large diffs are not rendered by default.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Large diffs are not rendered by default.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
[General] | ||
theme=MaterialAdw |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
import re | ||
import os | ||
|
||
def read_scss(file_path): | ||
"""Reads an SCSS file and returns a dictionary of color variables.""" | ||
colors = {} | ||
with open(file_path, 'r') as file: | ||
for line in file: | ||
match = re.match(r'\$(\w+):\s*(#[0-9A-Fa-f]{6});', line.strip()) | ||
if match: | ||
variable_name, color = match.groups() | ||
colors[variable_name] = color | ||
return colors | ||
|
||
def update_svg_colors(svg_path, old_to_new_colors, output_path): | ||
""" | ||
Updates the colors in an SVG file based on the provided color map. | ||
:param svg_path: Path to the SVG file. | ||
:param old_to_new_colors: Dictionary mapping old colors to new colors. | ||
:param output_path: Path to save the updated SVG file. | ||
""" | ||
# Read the SVG content | ||
with open(svg_path, 'r') as file: | ||
svg_content = file.read() | ||
|
||
# Replace old colors with new colors | ||
for old_color, new_color in old_to_new_colors.items(): | ||
svg_content = re.sub(old_color, new_color, svg_content, flags=re.IGNORECASE) | ||
|
||
# Write the updated SVG content to the output file | ||
with open(output_path, 'w') as file: | ||
file.write(svg_content) | ||
|
||
print(f"SVG colors have been updated and saved to {output_path}!") | ||
|
||
def main(): | ||
xdg_config_home = os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~/.config")) | ||
xdg_state_home = os.environ.get("XDG_STATE_HOME", os.path.expanduser("~/.local/state")) | ||
|
||
scss_file = os.path.join(xdg_state_home, "ags", "scss", "_material.scss") | ||
svg_path = os.path.join(xdg_config_home, "Kvantum", "Colloid", "Colloid.svg") | ||
output_path = os.path.join(xdg_config_home, "Kvantum", "MaterialAdw", "MaterialAdw.svg") | ||
|
||
# Read colors from the SCSS file | ||
color_data = read_scss(scss_file) | ||
|
||
# Specify the old colors and map them to new colors from the SCSS file | ||
old_to_new_colors = { | ||
#'#cccccc': color_data['surfaceDim'], # Map old SVG color to new SCSS color | ||
#'#666666': color_data['surfaceDim'], | ||
'#3c84f7': color_data['primary'], | ||
#'#5a5a5a': color_data['neutral_paletteKeyColor'], | ||
'#000000': color_data['shadow'], | ||
'#f04a50': color_data['error'], | ||
'#4285f4': color_data['primaryFixedDim'], | ||
'#f2f2f2': color_data['background'], | ||
#'#dfdfdf': color_data['surfaceContainerLow'], | ||
'#ffffff': color_data['background'], | ||
'#1e1e1e': color_data['onPrimaryFixed'], | ||
#'#b6b6b6': color_data['surfaceContainer'], | ||
'#333': color_data['inverseSurface'], | ||
'#212121': color_data['onSecondaryFixed'], | ||
'#5b9bf8': color_data['secondaryContainer'], | ||
'#26272a': color_data['term7'], | ||
#'#b3b3b3': color_data['surfaceBright'], | ||
#'#b74aff': color_data['tertiary'], | ||
#'#989898': color_data['surfaceContainerHighest'], | ||
#'#c1c1c1': color_data['surfaceContainerHigh'], | ||
'#444444': color_data['onBackground'], | ||
'#333333': color_data['onPrimaryFixed'], | ||
} | ||
|
||
# Update the SVG colors | ||
update_svg_colors(svg_path, old_to_new_colors, output_path) | ||
|
||
if __name__ == "__main__": | ||
main() | ||
|
Oops, something went wrong.