SylEleuth / gruvbox-plus-icon-pack

Gruvbox Plus icon pack for Linux desktops based on Gruvbox color theme.
GNU General Public License v3.0
349 stars 19 forks source link

[Feature request] Dark icons variant #6

Closed Squirreljetpack closed 1 year ago

Squirreljetpack commented 1 year ago

Love the design. Is it possible to have a variant with dark symbols (for light mode)?

SylEleuth commented 1 year ago

Love the design.

Thank You. It's not mine. I've took existing project and modified it with gruvbox colors. Although I've added plenty new icons since then.

Is it possible to have a variant with dark symbols (for light mode)?

Yes, absolutely. It's on my roadmap. The problem is there is an enormous number of icons that is awaiting to add and I want to do that before I start working on a dark theme. I'm not sure when it will happen but it will eventually because myself need them for my KDE gruvbox theme.

Squirreljetpack commented 1 year ago

I do mean I like the colors, especially for the default folder. For my purposes its only the symbols which are hard to see in the menu. I used the following script to modify them for a light mode.

import os

def replace_color(file_path):
    with open(file_path, 'r') as f:
        file_contents = f.read()
    # Replace the color code with the desired one
    new_file_contents = file_contents.replace('#ebdbb2', '#504945')
    with open(file_path, 'w') as f:
        f.write(new_file_contents)

def replace_line_in_file(file_path):
    with open(file_path, 'r') as f:
        file_contents = f.read()
    # Replace the color code with the desired one
    new_file_contents = file_contents.replace('.ColorScheme-Text { color:#ebdbb2; } .ColorScheme-Highlight { color:#458588; }', '.ColorScheme-Text { color:#504945; } .ColorScheme-Highlight { color:#458588; }')
    with open(file_path, 'w') as f:
        f.write(new_file_contents)

def scan(starting_directory, allowed_parent_folders, replace_fun=replace_color):
    for root, dirs, files in os.walk(starting_directory):
        if ".git" in dirs:
            dirs.remove(".git")
        for file in files:
            file_path = os.path.join(root, file)
            if not os.path.islink(file_path):
                parent_folder_name = os.path.basename(os.path.dirname(file_path))
                if parent_folder_name in allowed_parent_folders:
                    print(file_path)
                    replace_fun(file_path)

if __name__ == '__main__':
    scan(os.getcwd(),['symbolic'])
    scan(os.getcwd(),['16','16@2x','22','22@2x'], replace_fun=replace_line_in_file)