{"id":24003864,"url":"https://github.com/justdj-git/iconizer","last_synced_at":"2025-02-25T11:44:30.603Z","repository":{"id":270403659,"uuid":"891027839","full_name":"JustDj-Git/Iconizer","owner":"JustDj-Git","description":"A convenient way to collect icons and set them on folder icons","archived":false,"fork":false,"pushed_at":"2024-12-30T21:48:31.000Z","size":8,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-08T01:59:54.855Z","etag":null,"topics":["icons","powershell"],"latest_commit_sha":null,"homepage":"https://icon.scripts.wiki","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JustDj-Git.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-19T15:47:27.000Z","updated_at":"2024-11-20T04:55:15.000Z","dependencies_parsed_at":"2024-12-30T22:29:46.656Z","dependency_job_id":"d7467913-6f94-4433-9a1a-1a62d6a13588","html_url":"https://github.com/JustDj-Git/Iconizer","commit_stats":null,"previous_names":["justdj-git/iconizer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustDj-Git%2FIconizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustDj-Git%2FIconizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustDj-Git%2FIconizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustDj-Git%2FIconizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JustDj-Git","download_url":"https://codeload.github.com/JustDj-Git/Iconizer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240663340,"owners_count":19837373,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["icons","powershell"],"created_at":"2025-01-08T02:00:07.446Z","updated_at":"2025-02-25T11:44:30.584Z","avatar_url":"https://github.com/JustDj-Git.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎨  Iconizer 🚀\n\nThe script consists of two parts. The first part, **`pull`**, involves extracting 32x32 or 16x16 icons from executable files (`.exe`) and saving them in different formats. The second part, **`apply`**, customizes folder icons by locating `.exe` or `.ico` files and creating a `desktop.ini` file with the required settings to display an icon on a folder, making both tools useful for developers and users who need efficient icon management solutions.\n\n## 🛠️  Icon Extraction (`pull`):\n  - Extracts icons from executable files (.exe).\n  - Saves icons in multiple formats: ICO, BMP, PNG, JPG.\n  - Allows selection of files through a dialog if not provided.\n  - Supports extraction of small (16x16) or standard (32x32) icons.\n  - Can specify the index of the icon to extract.\n  - Provides logging functionality to track extraction processes.\n\n## 🛠️  Folder Customization (`apply`):\n  - Customizes folder icons using found .exe or .ico files.\n  - Creates a desktop.ini file with required settings for folder icons.\n  - Supports specifying multiple folder paths for icon application.\n  - Offers priority settings for icon selection\n  - Allows filtering of specific folder names to ignore during icon application.\n  - Provides an option to apply icons only to specified folders, excluding subfolders.\n  - Supports custom icon search rules using a hashtable.\n  - Includes an option to remove icons from folders and restart Explorer.\n\n## 💡 How to use `pull` and `apply`\n\n### 🖱️ With GUI\n\n\u003e[!WARNING]\n\u003e You can use direct link for your calmness - https://raw.githubusercontent.com/JustDj-Git/Iconizer/refs/heads/main/Iconizer.ps1\n\n1.   Open PowerShell (not CMD). Right-click on the Windows start menu and find PowerShell (or Terminal), or press `Win + S` and type Powershell.\n2.   Copy and paste the code below and press enter for invoking **`pull`** function only\n\n```powershell\nirm icon.scripts.wiki | iex; pull\n```\n\nor for invoking **`apply`** function only\n\n```powershell\nirm icon.scripts.wiki | iex; apply\n```\n\nor for both\n\n```powershell\nirm icon.scripts.wiki | iex; pull; apply\n```\n\n```powershell\nirm https://raw.githubusercontent.com/JustDj-Git/Iconizer/refs/heads/main/Iconizer.ps1 | iex; pull\n```\n---\n\n## 🔧 Parameters and Switches for `pull`\n 📝 The script accepts the following parameters and switches:\n\n  - **`-directory` or `-d`**: An array of paths to `.exe` files or directories. If not provided, the user can select a file via a dialog (ex. `-file \"C:\\path\\to\\\", \"C:\\path\\to\\test.exe\"`).\n  - **`-format` or `-f`**: Specifies the format for saving the icon (default is ICO). Acceptable values are `ico`, `bmp`, `png`, and `jpg` (ex. `-format ico`).\n  - **`-index` or `-i`**: The index of the icon to extract from the executable (ex. `-index 1`).\n  - **`-depth` or `-dep`**: The Depth parameter specifies the number of subdirectory levels to include in the recursion (ex. `-dep 2`).\n  - **`-small` or `-s`**: A switch to indicate whether to extract the small 16x16 icon (default behavior is to extract the 32x32 icon).\n  - **`-log` or `-l`**: Enables logging, writing to the specified file. Accepts a full path and file name (ex. `-log 'C:\\task_log.txt'`).\n\n### ⚙️ Examples with `pull`\n\n1. **Use .ico image format, size 32x32 and path 'C:\\location\\text.exe'**\n\n\t```powershell\n\tirm ico.scripts.wiki | iex; pull -d 'C:\\location\\text.exe' -f 'ico'\n\t```\n\n2. **Use .png image format, 16x16 icon with index 1 and multiple folder paths**  \n\n\t```powershell\n\tirm ico.scripts.wiki | iex; pull -d 'C:\\location', 'C:\\location2' -f 'png' -index '1' -s\n\t```\n\n\u003e[!TIP]\n\u003e If **`directory`** is not specified, a system FileDialog will open.\n\u003e If **`format`** is not specified, `ico` will be used as the default format.\n\u003e If **`index`** is not specified, index `0` will be used by default.\n\n---\n## 🔧 Parameters and Switches for `apply`\n📝 The script accepts the following parameters and switches:\n\n- **`-directory` or `-d`**: Specify the folder paths in the format `'FIRST_PATH'` or `@('FIRST_PATH', 'SECOND_PATH')`, or `'FIRST_PATH', 'SECOND_PATH'`. If not set, the system FolderDialog will open.\n- **`-priority` or `-p`**: Sets the priority for `.ico` files:\n\t- `icon`: An icon.ico file takes priority over .exe files and other .ico files.\n\t- `any`: Any .ico file takes priority over .exe files.\n\t- `folder`: A .ico file with the same name as the folder takes priority over .exe files and other .ico files.\n- **`-filter` or `-f`**: Specify the names of folders to ignore in the format `'FIRST_NAME'` or `'FIRST_NAME', 'SECOND_NAME'`, or `@('FIRST_NAME', 'SECOND_NAME')`.\n- **`-single` or `-s`**: When used, this switch applies the icon exclusively to the specified folder, excluding any subfolders.\n- **`-dependencies` or `-dep`**: Use a hashtable to define custom rules for icon searches, e.g., `@{\"Inno Setup 5\" = \"Compil32.exe\"; \"DaVinci Resolve\" = \"Resolve.exe\"}`.\n- **`-depth`**: The Depth parameter specifies the number of subdirectory levels to include in the recursion (ex. `-depth 2`).\n- **`-remove` or `-rm`**: This switch removes the folder icons and restarts Explorer.\n\n---\n\n### ⚙️ Examples with `apply`\n\n1. **Passing two folders: `C:\\test` and `D:\\test2`**\n\n\t```powershell\n\tirm icon.scripts.wiki | iex; apply -d 'C:\\test', 'D:\\test2'\n\t```\n\n2. **Passing two folders:  `C:\\test` and `D:\\test2` with filtered folders 'Windows Kits' and 'OneCommander'**\n\n\t```powershell\n\tirm icon.scripts.wiki | iex; apply -d 'C:\\test', 'D:\\test2' -f 'Windows Kits', 'OneCommander'\n\t```\n\n3. **Passing folder `C:\\test` with prioritizing `icon.ico` icons over `.exe` and folder name**\n\n\t```powershell\n\tirm icon.scripts.wiki | iex; apply -d 'C:\\test' -p icon\n\t```\n\n4. **Passing folder`C:\\test` and assign an icon only to the specified folder without recursion**\n\n\t```powershell\n\tirm icon.scripts.wiki | iex; apply -d 'C:\\test' -s\n\t```\n\n5. **Remove icons from folders `C:\\test` and `D:\\test2`, don't remove from `Windows Kits` folder and restart Explorer**\n\n\t```powershell\n\tirm icon.scripts.wiki | iex; apply -d 'C:\\test', 'D:\\test2' -f 'Windows Kits' -rm\n\t```\n---\n### ⚙️ Examples for both `pull` and `apply`\n1. **Passing two folders: `C:\\test` and `D:\\test2`, with `2` folder depth, icon format is `.ico`. Than  apply the icon to the folders inside `D:\\test2`**\n\n\t```powershell\n\tirm icon.scripts.wiki | iex; pull -d 'C:\\test', 'D:\\test2' -dep '2' -f ico; apply -d 'D:\\test2'\n\t```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustdj-git%2Ficonizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustdj-git%2Ficonizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustdj-git%2Ficonizer/lists"}