Last active
April 3, 2023 11:35
-
-
Save 5ec1cff/232c2626d34f55e4fe0a3b4b3001a2c0 to your computer and use it in GitHub Desktop.
Generate windows registry of context menu of IDEs in JB ToolBox
This file contains hidden or 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
import os | |
# find icons in %AppData%\Microsoft\Windows\Start Menu\Programs\JetBrains Toolbox | |
template_add = r'''Windows Registry Editor Version 5.00 | |
[HKEY_CLASSES_ROOT\Directory\Background\shell\{prog_name}] | |
@="Open with {name}" | |
"Icon"="\"{current}\\icons\\{prog_name}.ico\"" | |
[HKEY_CLASSES_ROOT\Directory\Background\shell\{prog_name}\command] | |
@="\"{home}\\AppData\\Local\\JetBrains\\Toolbox\\scripts\\{prog_name}.cmd\" \"%V\"" | |
[HKEY_CLASSES_ROOT\Directory\shell\{prog_name}] | |
@="Open with {name}" | |
"Icon"="\"{current}\\icons\\{prog_name}.ico\"" | |
[HKEY_CLASSES_ROOT\Directory\shell\{prog_name}\command] | |
@="\"{home}\\AppData\\Local\\JetBrains\\Toolbox\\scripts\\{prog_name}.cmd\" \"%V\"" | |
''' | |
template_remove = '''Windows Registry Editor Version 5.00 | |
[-HKEY_CLASSES_ROOT\Directory\Background\shell\{prog_name}] | |
[-HKEY_CLASSES_ROOT\Directory\Background\shell\{prog_name}\command] | |
[-HKEY_CLASSES_ROOT\Directory\shell\{prog_name}] | |
[-HKEY_CLASSES_ROOT\Directory\shell\{prog_name}\command] | |
''' | |
def generate_reg(names): | |
with open('add.reg', 'w') as f: | |
for name in names: | |
if type(name) is tuple: | |
name, prog_name = name | |
else: | |
prog_name = name.lower() | |
f.write( | |
template_add.format(prog_name=prog_name, name=name, home=os.getenv("UserProfile").replace('\\', '\\\\'), current=os.getcwd().replace('\\', '\\\\')) | |
) | |
with open('rem.reg', 'w') as f: | |
for name in names: | |
if type(name) is tuple: | |
name, prog_name = name | |
else: | |
prog_name = name.lower() | |
f.write( | |
template_remove.format(prog_name=prog_name, name=name) | |
) | |
if __name__ == "__main__": | |
generate_reg(["CLion", "IDEA", "PyCharm", ("Android Studio", "studio")]) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
F__K YOU JETBRAINS
https://youtrack.jetbrains.com/issue/TBX-2478