Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AIR Image Scripts

These scripts are helpful to generate the required icons assets for an iOS / Android AIR application (including Assets.car), the iOS launch storyboard and the Android adaptive icon resources.

Adaptive Icons
Themed / Tinted Icons
Asset Catalogue

This script requires usage of Xcode tools to be able to generate the iOS resources so you will need to run it on a macOS machine with Xcode installed to be able to generate these icons.

More Information

Installation

Download

Download the generateIcons script from the releases and place it in your path.

Alternatively you can run the script directly if you require using curl:

/bin/bash -c "$(curl -fsSL https://github.com/distriqt/AIR-ImageScripts/releases/download/v2.0/generateIcons)"

Dependencies

The script uses imagemagick to resize the images so you need to have this installed.

brew install imagemagick

This needs to be at least version 7

It also uses Xcode tools to create the Assets.car from your images. You need Xcode and then can install the build tools with:

xcode-select --install

Note

We recommend using Xcode 15 or 16 currently

Update settings

Open Xcode and change the following setting:

Settings / Locations / Advanced : check Legacy

This ensures the output of the asset catalogue is in the expected location

Usage

Usage: generateIcons
Options:
-s, --source DIR Source directory (default: current directory)
-o, --output DIR Output directory (default: out)
-f, --foreground FILE Icon foreground layer image with transparency (default: icon-foreground.png)
-b, --background FILE Icon background layer image (default: icon-background.png)
-m, --monochrome FILE Icon monochrome image (default: icon-monochrome.png)
-d, --dark FILE Dark mode icon image (default: icon-dark.png)
-i, --icon FILE Override layered icon image (default: icon.png)
-a, --alt FILE Alternate icon image
-l, --launch FILE Launch screen image (default: launch.png)
-c, --color COLOR Fill background color (default: none)
-h, --help Display this help message

Assets

In your source directory you should have your icon images:

icon-foreground.png icon-background.png icon-monochrome.png
icon-dark.png

These four base images are used to construct the icons for each of the platforms:

  • icon-foreground.png should be a transparent icon with no background which will be layered over the background and centered on the launch image
  • icon-background.png should be a filled image which constitutes the background of adaptive icons and the launch image (generally a solid colour)
  • icon-monochrome.png similar to the foreground icon except this should be monochrome and will be tinted by the OS to colour match the user's theme
  • icon-dark.png: a specific dark image to be used as the dark icon on iOS

Example Icons

icon-foreground.pngicon-background.pngicon-monochrome.pngicon-dark.png

Creates an icon like:

Launch

The script will generate a launch screen for you by centering the foreground icon over the background.

You can alternatively provide a separate 2048x2048 image as the launch image if you require to have more control here.

Usage Examples

This is likely the most common usage, specifying the source and output directories.

generateIcons -s config/icons -o src

Outputs

Currently this script outputs the following icons and default images:

|____Assets.car
|____LaunchScreen.storyboardc
|____icons
| |____icon120x120.png
| |____icon48x48.png
| |____icon60x60.png
| |____icon64x64.png
| |____icon58x58.png
| |____icon36x36.png
| |____icon72x72.png
| |____icon20x20.png
| |____icon80x80.png
| |____icon57x57.png
| |____icon180x180.png
| |____icon32x32.png
| |____icon76x76.png
| |____icon1024x1024.png
| |____icon29x29.png
| |____icon152x152.png
| |____icon16x16.png
| |____icon87x87.png
| |____icon512x512.png
| |____icon40x40.png
| |____icon114x114.png
| |____icon144x144.png
| |____icon256x256.png
| |____icon128x128.png
| |____icon167x167.png
|____res
| |____mipmap-anydpi-v26
| | |____icon_round.xml
| | |____icon.xml
| |____mipmap-hdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-mdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png

Add the following to your application descriptor to pick up these icon image names (edit as required):

 <icon>
<image16x16>icons/icon16x16.png</image16x16>
<image29x29>icons/icon29x29.png</image29x29>
<image32x32>icons/icon32x32.png</image32x32>
<image36x36>icons/icon36x36.png</image36x36>
<image40x40>icons/icon40x40.png</image40x40>
<image48x48>icons/icon48x48.png</image48x48>
<image57x57>icons/icon57x57.png</image57x57>
<image58x58>icons/icon58x58.png</image58x58>
<image60x60>icons/icon60x60.png</image60x60>
<image72x72>icons/icon72x72.png</image72x72>
<image76x76>icons/icon76x76.png</image76x76>
<image80x80>icons/icon80x80.png</image80x80>
<image87x87>icons/icon87x87.png</image87x87>
<image114x114>icons/icon114x114.png</image114x114>
<image120x120>icons/icon120x120.png</image120x120>
<image128x128>icons/icon128x128.png</image128x128>
<image144x144>icons/icon144x144.png</image144x144>
<image152x152>icons/icon152x152.png</image152x152>
<image167x167>icons/icon167x167.png</image167x167>
<image180x180>icons/icon180x180.png</image180x180>
<image512x512>icons/icon512x512.png</image512x512>
<image1024x1024>icons/icon1024x1024.png</image1024x1024>
</icon>

Add the following to your iOS info additions for launch storyboard support:

<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>

Add the following to your app descriptor to specify the android resources:

<resdir>res</resdir>

Version 1 - generate.sh

The script takes several optional parameters:

  • [optional] path to the icon image to use as the base, we suggest a 1024x1024 pixel image (defaults to icon.png);
  • [optional] path to the launch / default image to use as the base, we suggest a large 2732x2732 pixel image (defaults to launch.png);
  • [optional] colour to use to fill background when required for default images
    • in the format: "#RRGGBB";
  • [optional] output path for the files. You can use this to point to the assets output folder of your application (defaults to out);
  • [optional] path to an alternate icon image which will be added as the AlternateIcon, we suggest a 1024x1024 pixel image (defaults to icon-alt.png);

generate.sh (Version 1) still functions as before but we won't be maintaining it any longer. We wanted to change the input parameters and thought best to create a new script than potentially affect existing build processes. So this script will remain as is.

Examples

generate.sh icon.png launch.png "#ff0000" 
generate.sh icon.png launch.png "#ff0000" out icon-alt.png

The default:

generate.sh

uses:

  • icon: icon.png
  • launch: launch.png
  • no background colour
  • outputs to out
  • alternate icon: icon-alt.png

Outputs

This script outputs the same as the v2 except it doesn't handle Android resources and it doesn't handle iOS dark / tinted icons.

About

Scripts to generate iOS and Android icons and default launch images

Topics

Resources

Stars

24 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AIR Image Scripts

These scripts are helpful to generate the required icons assets for an iOS / Android AIR application (including Assets.car), the iOS launch storyboard and the Android adaptive icon resources.

Adaptive Icons
Themed / Tinted Icons
Asset Catalogue

This script requires usage of Xcode tools to be able to generate the iOS resources so you will need to run it on a macOS machine with Xcode installed to be able to generate these icons.

More Information

Installation

Download

Download the generateIcons script from the releases and place it in your path.

Alternatively you can run the script directly if you require using curl:

/bin/bash -c "$(curl -fsSL https://github.com/distriqt/AIR-ImageScripts/releases/download/v2.0/generateIcons)"

Dependencies

The script uses imagemagick to resize the images so you need to have this installed.

brew install imagemagick

This needs to be at least version 7

It also uses Xcode tools to create the Assets.car from your images. You need Xcode and then can install the build tools with:

xcode-select --install

Note

We recommend using Xcode 15 or 16 currently

Update settings

Open Xcode and change the following setting:

Settings / Locations / Advanced : check Legacy

This ensures the output of the asset catalogue is in the expected location

Usage

Usage: generateIcons
Options:
-s, --source DIR Source directory (default: current directory)
-o, --output DIR Output directory (default: out)
-f, --foreground FILE Icon foreground layer image with transparency (default: icon-foreground.png)
-b, --background FILE Icon background layer image (default: icon-background.png)
-m, --monochrome FILE Icon monochrome image (default: icon-monochrome.png)
-d, --dark FILE Dark mode icon image (default: icon-dark.png)
-i, --icon FILE Override layered icon image (default: icon.png)
-a, --alt FILE Alternate icon image
-l, --launch FILE Launch screen image (default: launch.png)
-c, --color COLOR Fill background color (default: none)
-h, --help Display this help message

Assets

In your source directory you should have your icon images:

icon-foreground.png icon-background.png icon-monochrome.png
icon-dark.png

These four base images are used to construct the icons for each of the platforms:

  • icon-foreground.png should be a transparent icon with no background which will be layered over the background and centered on the launch image
  • icon-background.png should be a filled image which constitutes the background of adaptive icons and the launch image (generally a solid colour)
  • icon-monochrome.png similar to the foreground icon except this should be monochrome and will be tinted by the OS to colour match the user's theme
  • icon-dark.png: a specific dark image to be used as the dark icon on iOS

Example Icons

icon-foreground.pngicon-background.pngicon-monochrome.pngicon-dark.png

Creates an icon like:

Launch

The script will generate a launch screen for you by centering the foreground icon over the background.

You can alternatively provide a separate 2048x2048 image as the launch image if you require to have more control here.

Usage Examples

This is likely the most common usage, specifying the source and output directories.

generateIcons -s config/icons -o src

Outputs

Currently this script outputs the following icons and default images:

|____Assets.car
|____LaunchScreen.storyboardc
|____icons
| |____icon120x120.png
| |____icon48x48.png
| |____icon60x60.png
| |____icon64x64.png
| |____icon58x58.png
| |____icon36x36.png
| |____icon72x72.png
| |____icon20x20.png
| |____icon80x80.png
| |____icon57x57.png
| |____icon180x180.png
| |____icon32x32.png
| |____icon76x76.png
| |____icon1024x1024.png
| |____icon29x29.png
| |____icon152x152.png
| |____icon16x16.png
| |____icon87x87.png
| |____icon512x512.png
| |____icon40x40.png
| |____icon114x114.png
| |____icon144x144.png
| |____icon256x256.png
| |____icon128x128.png
| |____icon167x167.png
|____res
| |____mipmap-anydpi-v26
| | |____icon_round.xml
| | |____icon.xml
| |____mipmap-hdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-mdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png

Add the following to your application descriptor to pick up these icon image names (edit as required):

 <icon>
<image16x16>icons/icon16x16.png</image16x16>
<image29x29>icons/icon29x29.png</image29x29>
<image32x32>icons/icon32x32.png</image32x32>
<image36x36>icons/icon36x36.png</image36x36>
<image40x40>icons/icon40x40.png</image40x40>
<image48x48>icons/icon48x48.png</image48x48>
<image57x57>icons/icon57x57.png</image57x57>
<image58x58>icons/icon58x58.png</image58x58>
<image60x60>icons/icon60x60.png</image60x60>
<image72x72>icons/icon72x72.png</image72x72>
<image76x76>icons/icon76x76.png</image76x76>
<image80x80>icons/icon80x80.png</image80x80>
<image87x87>icons/icon87x87.png</image87x87>
<image114x114>icons/icon114x114.png</image114x114>
<image120x120>icons/icon120x120.png</image120x120>
<image128x128>icons/icon128x128.png</image128x128>
<image144x144>icons/icon144x144.png</image144x144>
<image152x152>icons/icon152x152.png</image152x152>
<image167x167>icons/icon167x167.png</image167x167>
<image180x180>icons/icon180x180.png</image180x180>
<image512x512>icons/icon512x512.png</image512x512>
<image1024x1024>icons/icon1024x1024.png</image1024x1024>
</icon>

Add the following to your iOS info additions for launch storyboard support:

<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>

Add the following to your app descriptor to specify the android resources:

<resdir>res</resdir>

Version 1 - generate.sh

The script takes several optional parameters:

  • [optional] path to the icon image to use as the base, we suggest a 1024x1024 pixel image (defaults to icon.png);
  • [optional] path to the launch / default image to use as the base, we suggest a large 2732x2732 pixel image (defaults to launch.png);
  • [optional] colour to use to fill background when required for default images
    • in the format: "#RRGGBB";
  • [optional] output path for the files. You can use this to point to the assets output folder of your application (defaults to out);
  • [optional] path to an alternate icon image which will be added as the AlternateIcon, we suggest a 1024x1024 pixel image (defaults to icon-alt.png);

generate.sh (Version 1) still functions as before but we won't be maintaining it any longer. We wanted to change the input parameters and thought best to create a new script than potentially affect existing build processes. So this script will remain as is.

Examples

generate.sh icon.png launch.png "#ff0000" 
generate.sh icon.png launch.png "#ff0000" out icon-alt.png

The default:

generate.sh

uses:

  • icon: icon.png
  • launch: launch.png
  • no background colour
  • outputs to out
  • alternate icon: icon-alt.png

Outputs

This script outputs the same as the v2 except it doesn't handle Android resources and it doesn't handle iOS dark / tinted icons.

About

Scripts to generate iOS and Android icons and default launch images

Topics

Resources

Stars

24 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AIR Image Scripts

These scripts are helpful to generate the required icons assets for an iOS / Android AIR application (including Assets.car), the iOS launch storyboard and the Android adaptive icon resources.

Adaptive Icons
Themed / Tinted Icons
Asset Catalogue

This script requires usage of Xcode tools to be able to generate the iOS resources so you will need to run it on a macOS machine with Xcode installed to be able to generate these icons.

More Information

Installation

Download

Download the generateIcons script from the releases and place it in your path.

Alternatively you can run the script directly if you require using curl:

/bin/bash -c "$(curl -fsSL https://github.com/distriqt/AIR-ImageScripts/releases/download/v2.0/generateIcons)"

Dependencies

The script uses imagemagick to resize the images so you need to have this installed.

brew install imagemagick

This needs to be at least version 7

It also uses Xcode tools to create the Assets.car from your images. You need Xcode and then can install the build tools with:

xcode-select --install

Note

We recommend using Xcode 15 or 16 currently

Update settings

Open Xcode and change the following setting:

Settings / Locations / Advanced : check Legacy

This ensures the output of the asset catalogue is in the expected location

Usage

Usage: generateIcons
Options:
-s, --source DIR Source directory (default: current directory)
-o, --output DIR Output directory (default: out)
-f, --foreground FILE Icon foreground layer image with transparency (default: icon-foreground.png)
-b, --background FILE Icon background layer image (default: icon-background.png)
-m, --monochrome FILE Icon monochrome image (default: icon-monochrome.png)
-d, --dark FILE Dark mode icon image (default: icon-dark.png)
-i, --icon FILE Override layered icon image (default: icon.png)
-a, --alt FILE Alternate icon image
-l, --launch FILE Launch screen image (default: launch.png)
-c, --color COLOR Fill background color (default: none)
-h, --help Display this help message

Assets

In your source directory you should have your icon images:

icon-foreground.png icon-background.png icon-monochrome.png
icon-dark.png

These four base images are used to construct the icons for each of the platforms:

  • icon-foreground.png should be a transparent icon with no background which will be layered over the background and centered on the launch image
  • icon-background.png should be a filled image which constitutes the background of adaptive icons and the launch image (generally a solid colour)
  • icon-monochrome.png similar to the foreground icon except this should be monochrome and will be tinted by the OS to colour match the user's theme
  • icon-dark.png: a specific dark image to be used as the dark icon on iOS

Example Icons

icon-foreground.pngicon-background.pngicon-monochrome.pngicon-dark.png

Creates an icon like:

Launch

The script will generate a launch screen for you by centering the foreground icon over the background.

You can alternatively provide a separate 2048x2048 image as the launch image if you require to have more control here.

Usage Examples

This is likely the most common usage, specifying the source and output directories.

generateIcons -s config/icons -o src

Outputs

Currently this script outputs the following icons and default images:

|____Assets.car
|____LaunchScreen.storyboardc
|____icons
| |____icon120x120.png
| |____icon48x48.png
| |____icon60x60.png
| |____icon64x64.png
| |____icon58x58.png
| |____icon36x36.png
| |____icon72x72.png
| |____icon20x20.png
| |____icon80x80.png
| |____icon57x57.png
| |____icon180x180.png
| |____icon32x32.png
| |____icon76x76.png
| |____icon1024x1024.png
| |____icon29x29.png
| |____icon152x152.png
| |____icon16x16.png
| |____icon87x87.png
| |____icon512x512.png
| |____icon40x40.png
| |____icon114x114.png
| |____icon144x144.png
| |____icon256x256.png
| |____icon128x128.png
| |____icon167x167.png
|____res
| |____mipmap-anydpi-v26
| | |____icon_round.xml
| | |____icon.xml
| |____mipmap-hdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-mdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png

Add the following to your application descriptor to pick up these icon image names (edit as required):

 <icon>
<image16x16>icons/icon16x16.png</image16x16>
<image29x29>icons/icon29x29.png</image29x29>
<image32x32>icons/icon32x32.png</image32x32>
<image36x36>icons/icon36x36.png</image36x36>
<image40x40>icons/icon40x40.png</image40x40>
<image48x48>icons/icon48x48.png</image48x48>
<image57x57>icons/icon57x57.png</image57x57>
<image58x58>icons/icon58x58.png</image58x58>
<image60x60>icons/icon60x60.png</image60x60>
<image72x72>icons/icon72x72.png</image72x72>
<image76x76>icons/icon76x76.png</image76x76>
<image80x80>icons/icon80x80.png</image80x80>
<image87x87>icons/icon87x87.png</image87x87>
<image114x114>icons/icon114x114.png</image114x114>
<image120x120>icons/icon120x120.png</image120x120>
<image128x128>icons/icon128x128.png</image128x128>
<image144x144>icons/icon144x144.png</image144x144>
<image152x152>icons/icon152x152.png</image152x152>
<image167x167>icons/icon167x167.png</image167x167>
<image180x180>icons/icon180x180.png</image180x180>
<image512x512>icons/icon512x512.png</image512x512>
<image1024x1024>icons/icon1024x1024.png</image1024x1024>
</icon>

Add the following to your iOS info additions for launch storyboard support:

<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>

Add the following to your app descriptor to specify the android resources:

<resdir>res</resdir>

Version 1 - generate.sh

The script takes several optional parameters:

  • [optional] path to the icon image to use as the base, we suggest a 1024x1024 pixel image (defaults to icon.png);
  • [optional] path to the launch / default image to use as the base, we suggest a large 2732x2732 pixel image (defaults to launch.png);
  • [optional] colour to use to fill background when required for default images
    • in the format: "#RRGGBB";
  • [optional] output path for the files. You can use this to point to the assets output folder of your application (defaults to out);
  • [optional] path to an alternate icon image which will be added as the AlternateIcon, we suggest a 1024x1024 pixel image (defaults to icon-alt.png);

generate.sh (Version 1) still functions as before but we won't be maintaining it any longer. We wanted to change the input parameters and thought best to create a new script than potentially affect existing build processes. So this script will remain as is.

Examples

generate.sh icon.png launch.png "#ff0000" 
generate.sh icon.png launch.png "#ff0000" out icon-alt.png

The default:

generate.sh

uses:

  • icon: icon.png
  • launch: launch.png
  • no background colour
  • outputs to out
  • alternate icon: icon-alt.png

Outputs

This script outputs the same as the v2 except it doesn't handle Android resources and it doesn't handle iOS dark / tinted icons.

About

Scripts to generate iOS and Android icons and default launch images

Topics

Resources

Stars

24 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AIR Image Scripts

These scripts are helpful to generate the required icons assets for an iOS / Android AIR application (including Assets.car), the iOS launch storyboard and the Android adaptive icon resources.

Adaptive Icons
Themed / Tinted Icons
Asset Catalogue

This script requires usage of Xcode tools to be able to generate the iOS resources so you will need to run it on a macOS machine with Xcode installed to be able to generate these icons.

More Information

Installation

Download

Download the generateIcons script from the releases and place it in your path.

Alternatively you can run the script directly if you require using curl:

/bin/bash -c "$(curl -fsSL https://github.com/distriqt/AIR-ImageScripts/releases/download/v2.0/generateIcons)"

Dependencies

The script uses imagemagick to resize the images so you need to have this installed.

brew install imagemagick

This needs to be at least version 7

It also uses Xcode tools to create the Assets.car from your images. You need Xcode and then can install the build tools with:

xcode-select --install

Note

We recommend using Xcode 15 or 16 currently

Update settings

Open Xcode and change the following setting:

Settings / Locations / Advanced : check Legacy

This ensures the output of the asset catalogue is in the expected location

Usage

Usage: generateIcons
Options:
-s, --source DIR Source directory (default: current directory)
-o, --output DIR Output directory (default: out)
-f, --foreground FILE Icon foreground layer image with transparency (default: icon-foreground.png)
-b, --background FILE Icon background layer image (default: icon-background.png)
-m, --monochrome FILE Icon monochrome image (default: icon-monochrome.png)
-d, --dark FILE Dark mode icon image (default: icon-dark.png)
-i, --icon FILE Override layered icon image (default: icon.png)
-a, --alt FILE Alternate icon image
-l, --launch FILE Launch screen image (default: launch.png)
-c, --color COLOR Fill background color (default: none)
-h, --help Display this help message

Assets

In your source directory you should have your icon images:

icon-foreground.png icon-background.png icon-monochrome.png
icon-dark.png

These four base images are used to construct the icons for each of the platforms:

  • icon-foreground.png should be a transparent icon with no background which will be layered over the background and centered on the launch image
  • icon-background.png should be a filled image which constitutes the background of adaptive icons and the launch image (generally a solid colour)
  • icon-monochrome.png similar to the foreground icon except this should be monochrome and will be tinted by the OS to colour match the user's theme
  • icon-dark.png: a specific dark image to be used as the dark icon on iOS

Example Icons

icon-foreground.pngicon-background.pngicon-monochrome.pngicon-dark.png

Creates an icon like:

Launch

The script will generate a launch screen for you by centering the foreground icon over the background.

You can alternatively provide a separate 2048x2048 image as the launch image if you require to have more control here.

Usage Examples

This is likely the most common usage, specifying the source and output directories.

generateIcons -s config/icons -o src

Outputs

Currently this script outputs the following icons and default images:

|____Assets.car
|____LaunchScreen.storyboardc
|____icons
| |____icon120x120.png
| |____icon48x48.png
| |____icon60x60.png
| |____icon64x64.png
| |____icon58x58.png
| |____icon36x36.png
| |____icon72x72.png
| |____icon20x20.png
| |____icon80x80.png
| |____icon57x57.png
| |____icon180x180.png
| |____icon32x32.png
| |____icon76x76.png
| |____icon1024x1024.png
| |____icon29x29.png
| |____icon152x152.png
| |____icon16x16.png
| |____icon87x87.png
| |____icon512x512.png
| |____icon40x40.png
| |____icon114x114.png
| |____icon144x144.png
| |____icon256x256.png
| |____icon128x128.png
| |____icon167x167.png
|____res
| |____mipmap-anydpi-v26
| | |____icon_round.xml
| | |____icon.xml
| |____mipmap-hdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-mdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png

Add the following to your application descriptor to pick up these icon image names (edit as required):

 <icon>
<image16x16>icons/icon16x16.png</image16x16>
<image29x29>icons/icon29x29.png</image29x29>
<image32x32>icons/icon32x32.png</image32x32>
<image36x36>icons/icon36x36.png</image36x36>
<image40x40>icons/icon40x40.png</image40x40>
<image48x48>icons/icon48x48.png</image48x48>
<image57x57>icons/icon57x57.png</image57x57>
<image58x58>icons/icon58x58.png</image58x58>
<image60x60>icons/icon60x60.png</image60x60>
<image72x72>icons/icon72x72.png</image72x72>
<image76x76>icons/icon76x76.png</image76x76>
<image80x80>icons/icon80x80.png</image80x80>
<image87x87>icons/icon87x87.png</image87x87>
<image114x114>icons/icon114x114.png</image114x114>
<image120x120>icons/icon120x120.png</image120x120>
<image128x128>icons/icon128x128.png</image128x128>
<image144x144>icons/icon144x144.png</image144x144>
<image152x152>icons/icon152x152.png</image152x152>
<image167x167>icons/icon167x167.png</image167x167>
<image180x180>icons/icon180x180.png</image180x180>
<image512x512>icons/icon512x512.png</image512x512>
<image1024x1024>icons/icon1024x1024.png</image1024x1024>
</icon>

Add the following to your iOS info additions for launch storyboard support:

<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>

Add the following to your app descriptor to specify the android resources:

<resdir>res</resdir>

Version 1 - generate.sh

The script takes several optional parameters:

  • [optional] path to the icon image to use as the base, we suggest a 1024x1024 pixel image (defaults to icon.png);
  • [optional] path to the launch / default image to use as the base, we suggest a large 2732x2732 pixel image (defaults to launch.png);
  • [optional] colour to use to fill background when required for default images
    • in the format: "#RRGGBB";
  • [optional] output path for the files. You can use this to point to the assets output folder of your application (defaults to out);
  • [optional] path to an alternate icon image which will be added as the AlternateIcon, we suggest a 1024x1024 pixel image (defaults to icon-alt.png);

generate.sh (Version 1) still functions as before but we won't be maintaining it any longer. We wanted to change the input parameters and thought best to create a new script than potentially affect existing build processes. So this script will remain as is.

Examples

generate.sh icon.png launch.png "#ff0000" 
generate.sh icon.png launch.png "#ff0000" out icon-alt.png

The default:

generate.sh

uses:

  • icon: icon.png
  • launch: launch.png
  • no background colour
  • outputs to out
  • alternate icon: icon-alt.png

Outputs

This script outputs the same as the v2 except it doesn't handle Android resources and it doesn't handle iOS dark / tinted icons.

About

Scripts to generate iOS and Android icons and default launch images

Topics

Resources

Stars

24 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AIR Image Scripts

These scripts are helpful to generate the required icons assets for an iOS / Android AIR application (including Assets.car), the iOS launch storyboard and the Android adaptive icon resources.

Adaptive Icons
Themed / Tinted Icons
Asset Catalogue

This script requires usage of Xcode tools to be able to generate the iOS resources so you will need to run it on a macOS machine with Xcode installed to be able to generate these icons.

More Information

Installation

Download

Download the generateIcons script from the releases and place it in your path.

Alternatively you can run the script directly if you require using curl:

/bin/bash -c "$(curl -fsSL https://github.com/distriqt/AIR-ImageScripts/releases/download/v2.0/generateIcons)"

Dependencies

The script uses imagemagick to resize the images so you need to have this installed.

brew install imagemagick

This needs to be at least version 7

It also uses Xcode tools to create the Assets.car from your images. You need Xcode and then can install the build tools with:

xcode-select --install

Note

We recommend using Xcode 15 or 16 currently

Update settings

Open Xcode and change the following setting:

Settings / Locations / Advanced : check Legacy

This ensures the output of the asset catalogue is in the expected location

Usage

Usage: generateIcons
Options:
-s, --source DIR Source directory (default: current directory)
-o, --output DIR Output directory (default: out)
-f, --foreground FILE Icon foreground layer image with transparency (default: icon-foreground.png)
-b, --background FILE Icon background layer image (default: icon-background.png)
-m, --monochrome FILE Icon monochrome image (default: icon-monochrome.png)
-d, --dark FILE Dark mode icon image (default: icon-dark.png)
-i, --icon FILE Override layered icon image (default: icon.png)
-a, --alt FILE Alternate icon image
-l, --launch FILE Launch screen image (default: launch.png)
-c, --color COLOR Fill background color (default: none)
-h, --help Display this help message

Assets

In your source directory you should have your icon images:

icon-foreground.png icon-background.png icon-monochrome.png
icon-dark.png

These four base images are used to construct the icons for each of the platforms:

  • icon-foreground.png should be a transparent icon with no background which will be layered over the background and centered on the launch image
  • icon-background.png should be a filled image which constitutes the background of adaptive icons and the launch image (generally a solid colour)
  • icon-monochrome.png similar to the foreground icon except this should be monochrome and will be tinted by the OS to colour match the user's theme
  • icon-dark.png: a specific dark image to be used as the dark icon on iOS

Example Icons

icon-foreground.pngicon-background.pngicon-monochrome.pngicon-dark.png

Creates an icon like:

Launch

The script will generate a launch screen for you by centering the foreground icon over the background.

You can alternatively provide a separate 2048x2048 image as the launch image if you require to have more control here.

Usage Examples

This is likely the most common usage, specifying the source and output directories.

generateIcons -s config/icons -o src

Outputs

Currently this script outputs the following icons and default images:

|____Assets.car
|____LaunchScreen.storyboardc
|____icons
| |____icon120x120.png
| |____icon48x48.png
| |____icon60x60.png
| |____icon64x64.png
| |____icon58x58.png
| |____icon36x36.png
| |____icon72x72.png
| |____icon20x20.png
| |____icon80x80.png
| |____icon57x57.png
| |____icon180x180.png
| |____icon32x32.png
| |____icon76x76.png
| |____icon1024x1024.png
| |____icon29x29.png
| |____icon152x152.png
| |____icon16x16.png
| |____icon87x87.png
| |____icon512x512.png
| |____icon40x40.png
| |____icon114x114.png
| |____icon144x144.png
| |____icon256x256.png
| |____icon128x128.png
| |____icon167x167.png
|____res
| |____mipmap-anydpi-v26
| | |____icon_round.xml
| | |____icon.xml
| |____mipmap-hdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-mdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png

Add the following to your application descriptor to pick up these icon image names (edit as required):

 <icon>
<image16x16>icons/icon16x16.png</image16x16>
<image29x29>icons/icon29x29.png</image29x29>
<image32x32>icons/icon32x32.png</image32x32>
<image36x36>icons/icon36x36.png</image36x36>
<image40x40>icons/icon40x40.png</image40x40>
<image48x48>icons/icon48x48.png</image48x48>
<image57x57>icons/icon57x57.png</image57x57>
<image58x58>icons/icon58x58.png</image58x58>
<image60x60>icons/icon60x60.png</image60x60>
<image72x72>icons/icon72x72.png</image72x72>
<image76x76>icons/icon76x76.png</image76x76>
<image80x80>icons/icon80x80.png</image80x80>
<image87x87>icons/icon87x87.png</image87x87>
<image114x114>icons/icon114x114.png</image114x114>
<image120x120>icons/icon120x120.png</image120x120>
<image128x128>icons/icon128x128.png</image128x128>
<image144x144>icons/icon144x144.png</image144x144>
<image152x152>icons/icon152x152.png</image152x152>
<image167x167>icons/icon167x167.png</image167x167>
<image180x180>icons/icon180x180.png</image180x180>
<image512x512>icons/icon512x512.png</image512x512>
<image1024x1024>icons/icon1024x1024.png</image1024x1024>
</icon>

Add the following to your iOS info additions for launch storyboard support:

<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>

Add the following to your app descriptor to specify the android resources:

<resdir>res</resdir>

Version 1 - generate.sh

The script takes several optional parameters:

  • [optional] path to the icon image to use as the base, we suggest a 1024x1024 pixel image (defaults to icon.png);
  • [optional] path to the launch / default image to use as the base, we suggest a large 2732x2732 pixel image (defaults to launch.png);
  • [optional] colour to use to fill background when required for default images
    • in the format: "#RRGGBB";
  • [optional] output path for the files. You can use this to point to the assets output folder of your application (defaults to out);
  • [optional] path to an alternate icon image which will be added as the AlternateIcon, we suggest a 1024x1024 pixel image (defaults to icon-alt.png);

generate.sh (Version 1) still functions as before but we won't be maintaining it any longer. We wanted to change the input parameters and thought best to create a new script than potentially affect existing build processes. So this script will remain as is.

Examples

generate.sh icon.png launch.png "#ff0000" 
generate.sh icon.png launch.png "#ff0000" out icon-alt.png

The default:

generate.sh

uses:

  • icon: icon.png
  • launch: launch.png
  • no background colour
  • outputs to out
  • alternate icon: icon-alt.png

Outputs

This script outputs the same as the v2 except it doesn't handle Android resources and it doesn't handle iOS dark / tinted icons.

About

Scripts to generate iOS and Android icons and default launch images

Topics

Resources

Stars

24 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AIR Image Scripts

These scripts are helpful to generate the required icons assets for an iOS / Android AIR application (including Assets.car), the iOS launch storyboard and the Android adaptive icon resources.

Adaptive Icons
Themed / Tinted Icons
Asset Catalogue

This script requires usage of Xcode tools to be able to generate the iOS resources so you will need to run it on a macOS machine with Xcode installed to be able to generate these icons.

More Information

Installation

Download

Download the generateIcons script from the releases and place it in your path.

Alternatively you can run the script directly if you require using curl:

/bin/bash -c "$(curl -fsSL https://github.com/distriqt/AIR-ImageScripts/releases/download/v2.0/generateIcons)"

Dependencies

The script uses imagemagick to resize the images so you need to have this installed.

brew install imagemagick

This needs to be at least version 7

It also uses Xcode tools to create the Assets.car from your images. You need Xcode and then can install the build tools with:

xcode-select --install

Note

We recommend using Xcode 15 or 16 currently

Update settings

Open Xcode and change the following setting:

Settings / Locations / Advanced : check Legacy

This ensures the output of the asset catalogue is in the expected location

Usage

Usage: generateIcons
Options:
-s, --source DIR Source directory (default: current directory)
-o, --output DIR Output directory (default: out)
-f, --foreground FILE Icon foreground layer image with transparency (default: icon-foreground.png)
-b, --background FILE Icon background layer image (default: icon-background.png)
-m, --monochrome FILE Icon monochrome image (default: icon-monochrome.png)
-d, --dark FILE Dark mode icon image (default: icon-dark.png)
-i, --icon FILE Override layered icon image (default: icon.png)
-a, --alt FILE Alternate icon image
-l, --launch FILE Launch screen image (default: launch.png)
-c, --color COLOR Fill background color (default: none)
-h, --help Display this help message

Assets

In your source directory you should have your icon images:

icon-foreground.png icon-background.png icon-monochrome.png
icon-dark.png

These four base images are used to construct the icons for each of the platforms:

  • icon-foreground.png should be a transparent icon with no background which will be layered over the background and centered on the launch image
  • icon-background.png should be a filled image which constitutes the background of adaptive icons and the launch image (generally a solid colour)
  • icon-monochrome.png similar to the foreground icon except this should be monochrome and will be tinted by the OS to colour match the user's theme
  • icon-dark.png: a specific dark image to be used as the dark icon on iOS

Example Icons

icon-foreground.pngicon-background.pngicon-monochrome.pngicon-dark.png

Creates an icon like:

Launch

The script will generate a launch screen for you by centering the foreground icon over the background.

You can alternatively provide a separate 2048x2048 image as the launch image if you require to have more control here.

Usage Examples

This is likely the most common usage, specifying the source and output directories.

generateIcons -s config/icons -o src

Outputs

Currently this script outputs the following icons and default images:

|____Assets.car
|____LaunchScreen.storyboardc
|____icons
| |____icon120x120.png
| |____icon48x48.png
| |____icon60x60.png
| |____icon64x64.png
| |____icon58x58.png
| |____icon36x36.png
| |____icon72x72.png
| |____icon20x20.png
| |____icon80x80.png
| |____icon57x57.png
| |____icon180x180.png
| |____icon32x32.png
| |____icon76x76.png
| |____icon1024x1024.png
| |____icon29x29.png
| |____icon152x152.png
| |____icon16x16.png
| |____icon87x87.png
| |____icon512x512.png
| |____icon40x40.png
| |____icon114x114.png
| |____icon144x144.png
| |____icon256x256.png
| |____icon128x128.png
| |____icon167x167.png
|____res
| |____mipmap-anydpi-v26
| | |____icon_round.xml
| | |____icon.xml
| |____mipmap-hdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-mdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png

Add the following to your application descriptor to pick up these icon image names (edit as required):

 <icon>
<image16x16>icons/icon16x16.png</image16x16>
<image29x29>icons/icon29x29.png</image29x29>
<image32x32>icons/icon32x32.png</image32x32>
<image36x36>icons/icon36x36.png</image36x36>
<image40x40>icons/icon40x40.png</image40x40>
<image48x48>icons/icon48x48.png</image48x48>
<image57x57>icons/icon57x57.png</image57x57>
<image58x58>icons/icon58x58.png</image58x58>
<image60x60>icons/icon60x60.png</image60x60>
<image72x72>icons/icon72x72.png</image72x72>
<image76x76>icons/icon76x76.png</image76x76>
<image80x80>icons/icon80x80.png</image80x80>
<image87x87>icons/icon87x87.png</image87x87>
<image114x114>icons/icon114x114.png</image114x114>
<image120x120>icons/icon120x120.png</image120x120>
<image128x128>icons/icon128x128.png</image128x128>
<image144x144>icons/icon144x144.png</image144x144>
<image152x152>icons/icon152x152.png</image152x152>
<image167x167>icons/icon167x167.png</image167x167>
<image180x180>icons/icon180x180.png</image180x180>
<image512x512>icons/icon512x512.png</image512x512>
<image1024x1024>icons/icon1024x1024.png</image1024x1024>
</icon>

Add the following to your iOS info additions for launch storyboard support:

<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>

Add the following to your app descriptor to specify the android resources:

<resdir>res</resdir>

Version 1 - generate.sh

The script takes several optional parameters:

  • [optional] path to the icon image to use as the base, we suggest a 1024x1024 pixel image (defaults to icon.png);
  • [optional] path to the launch / default image to use as the base, we suggest a large 2732x2732 pixel image (defaults to launch.png);
  • [optional] colour to use to fill background when required for default images
    • in the format: "#RRGGBB";
  • [optional] output path for the files. You can use this to point to the assets output folder of your application (defaults to out);
  • [optional] path to an alternate icon image which will be added as the AlternateIcon, we suggest a 1024x1024 pixel image (defaults to icon-alt.png);

generate.sh (Version 1) still functions as before but we won't be maintaining it any longer. We wanted to change the input parameters and thought best to create a new script than potentially affect existing build processes. So this script will remain as is.

Examples

generate.sh icon.png launch.png "#ff0000" 
generate.sh icon.png launch.png "#ff0000" out icon-alt.png

The default:

generate.sh

uses:

  • icon: icon.png
  • launch: launch.png
  • no background colour
  • outputs to out
  • alternate icon: icon-alt.png

Outputs

This script outputs the same as the v2 except it doesn't handle Android resources and it doesn't handle iOS dark / tinted icons.

About

Scripts to generate iOS and Android icons and default launch images

Topics

Resources

Stars

24 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AIR Image Scripts

These scripts are helpful to generate the required icons assets for an iOS / Android AIR application (including Assets.car), the iOS launch storyboard and the Android adaptive icon resources.

Adaptive Icons
Themed / Tinted Icons
Asset Catalogue

This script requires usage of Xcode tools to be able to generate the iOS resources so you will need to run it on a macOS machine with Xcode installed to be able to generate these icons.

More Information

Installation

Download

Download the generateIcons script from the releases and place it in your path.

Alternatively you can run the script directly if you require using curl:

/bin/bash -c "$(curl -fsSL https://github.com/distriqt/AIR-ImageScripts/releases/download/v2.0/generateIcons)"

Dependencies

The script uses imagemagick to resize the images so you need to have this installed.

brew install imagemagick

This needs to be at least version 7

It also uses Xcode tools to create the Assets.car from your images. You need Xcode and then can install the build tools with:

xcode-select --install

Note

We recommend using Xcode 15 or 16 currently

Update settings

Open Xcode and change the following setting:

Settings / Locations / Advanced : check Legacy

This ensures the output of the asset catalogue is in the expected location

Usage

Usage: generateIcons
Options:
-s, --source DIR Source directory (default: current directory)
-o, --output DIR Output directory (default: out)
-f, --foreground FILE Icon foreground layer image with transparency (default: icon-foreground.png)
-b, --background FILE Icon background layer image (default: icon-background.png)
-m, --monochrome FILE Icon monochrome image (default: icon-monochrome.png)
-d, --dark FILE Dark mode icon image (default: icon-dark.png)
-i, --icon FILE Override layered icon image (default: icon.png)
-a, --alt FILE Alternate icon image
-l, --launch FILE Launch screen image (default: launch.png)
-c, --color COLOR Fill background color (default: none)
-h, --help Display this help message

Assets

In your source directory you should have your icon images:

icon-foreground.png icon-background.png icon-monochrome.png
icon-dark.png

These four base images are used to construct the icons for each of the platforms:

  • icon-foreground.png should be a transparent icon with no background which will be layered over the background and centered on the launch image
  • icon-background.png should be a filled image which constitutes the background of adaptive icons and the launch image (generally a solid colour)
  • icon-monochrome.png similar to the foreground icon except this should be monochrome and will be tinted by the OS to colour match the user's theme
  • icon-dark.png: a specific dark image to be used as the dark icon on iOS

Example Icons

icon-foreground.pngicon-background.pngicon-monochrome.pngicon-dark.png

Creates an icon like:

Launch

The script will generate a launch screen for you by centering the foreground icon over the background.

You can alternatively provide a separate 2048x2048 image as the launch image if you require to have more control here.

Usage Examples

This is likely the most common usage, specifying the source and output directories.

generateIcons -s config/icons -o src

Outputs

Currently this script outputs the following icons and default images:

|____Assets.car
|____LaunchScreen.storyboardc
|____icons
| |____icon120x120.png
| |____icon48x48.png
| |____icon60x60.png
| |____icon64x64.png
| |____icon58x58.png
| |____icon36x36.png
| |____icon72x72.png
| |____icon20x20.png
| |____icon80x80.png
| |____icon57x57.png
| |____icon180x180.png
| |____icon32x32.png
| |____icon76x76.png
| |____icon1024x1024.png
| |____icon29x29.png
| |____icon152x152.png
| |____icon16x16.png
| |____icon87x87.png
| |____icon512x512.png
| |____icon40x40.png
| |____icon114x114.png
| |____icon144x144.png
| |____icon256x256.png
| |____icon128x128.png
| |____icon167x167.png
|____res
| |____mipmap-anydpi-v26
| | |____icon_round.xml
| | |____icon.xml
| |____mipmap-hdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-mdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png

Add the following to your application descriptor to pick up these icon image names (edit as required):

 <icon>
<image16x16>icons/icon16x16.png</image16x16>
<image29x29>icons/icon29x29.png</image29x29>
<image32x32>icons/icon32x32.png</image32x32>
<image36x36>icons/icon36x36.png</image36x36>
<image40x40>icons/icon40x40.png</image40x40>
<image48x48>icons/icon48x48.png</image48x48>
<image57x57>icons/icon57x57.png</image57x57>
<image58x58>icons/icon58x58.png</image58x58>
<image60x60>icons/icon60x60.png</image60x60>
<image72x72>icons/icon72x72.png</image72x72>
<image76x76>icons/icon76x76.png</image76x76>
<image80x80>icons/icon80x80.png</image80x80>
<image87x87>icons/icon87x87.png</image87x87>
<image114x114>icons/icon114x114.png</image114x114>
<image120x120>icons/icon120x120.png</image120x120>
<image128x128>icons/icon128x128.png</image128x128>
<image144x144>icons/icon144x144.png</image144x144>
<image152x152>icons/icon152x152.png</image152x152>
<image167x167>icons/icon167x167.png</image167x167>
<image180x180>icons/icon180x180.png</image180x180>
<image512x512>icons/icon512x512.png</image512x512>
<image1024x1024>icons/icon1024x1024.png</image1024x1024>
</icon>

Add the following to your iOS info additions for launch storyboard support:

<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>

Add the following to your app descriptor to specify the android resources:

<resdir>res</resdir>

Version 1 - generate.sh

The script takes several optional parameters:

  • [optional] path to the icon image to use as the base, we suggest a 1024x1024 pixel image (defaults to icon.png);
  • [optional] path to the launch / default image to use as the base, we suggest a large 2732x2732 pixel image (defaults to launch.png);
  • [optional] colour to use to fill background when required for default images
    • in the format: "#RRGGBB";
  • [optional] output path for the files. You can use this to point to the assets output folder of your application (defaults to out);
  • [optional] path to an alternate icon image which will be added as the AlternateIcon, we suggest a 1024x1024 pixel image (defaults to icon-alt.png);

generate.sh (Version 1) still functions as before but we won't be maintaining it any longer. We wanted to change the input parameters and thought best to create a new script than potentially affect existing build processes. So this script will remain as is.

Examples

generate.sh icon.png launch.png "#ff0000" 
generate.sh icon.png launch.png "#ff0000" out icon-alt.png

The default:

generate.sh

uses:

  • icon: icon.png
  • launch: launch.png
  • no background colour
  • outputs to out
  • alternate icon: icon-alt.png

Outputs

This script outputs the same as the v2 except it doesn't handle Android resources and it doesn't handle iOS dark / tinted icons.

About

Scripts to generate iOS and Android icons and default launch images

Topics

Resources

Stars

24 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AIR Image Scripts

These scripts are helpful to generate the required icons assets for an iOS / Android AIR application (including Assets.car), the iOS launch storyboard and the Android adaptive icon resources.

Adaptive Icons
Themed / Tinted Icons
Asset Catalogue

This script requires usage of Xcode tools to be able to generate the iOS resources so you will need to run it on a macOS machine with Xcode installed to be able to generate these icons.

More Information

Installation

Download

Download the generateIcons script from the releases and place it in your path.

Alternatively you can run the script directly if you require using curl:

/bin/bash -c "$(curl -fsSL https://github.com/distriqt/AIR-ImageScripts/releases/download/v2.0/generateIcons)"

Dependencies

The script uses imagemagick to resize the images so you need to have this installed.

brew install imagemagick

This needs to be at least version 7

It also uses Xcode tools to create the Assets.car from your images. You need Xcode and then can install the build tools with:

xcode-select --install

Note

We recommend using Xcode 15 or 16 currently

Update settings

Open Xcode and change the following setting:

Settings / Locations / Advanced : check Legacy

This ensures the output of the asset catalogue is in the expected location

Usage

Usage: generateIcons
Options:
-s, --source DIR Source directory (default: current directory)
-o, --output DIR Output directory (default: out)
-f, --foreground FILE Icon foreground layer image with transparency (default: icon-foreground.png)
-b, --background FILE Icon background layer image (default: icon-background.png)
-m, --monochrome FILE Icon monochrome image (default: icon-monochrome.png)
-d, --dark FILE Dark mode icon image (default: icon-dark.png)
-i, --icon FILE Override layered icon image (default: icon.png)
-a, --alt FILE Alternate icon image
-l, --launch FILE Launch screen image (default: launch.png)
-c, --color COLOR Fill background color (default: none)
-h, --help Display this help message

Assets

In your source directory you should have your icon images:

icon-foreground.png icon-background.png icon-monochrome.png
icon-dark.png

These four base images are used to construct the icons for each of the platforms:

  • icon-foreground.png should be a transparent icon with no background which will be layered over the background and centered on the launch image
  • icon-background.png should be a filled image which constitutes the background of adaptive icons and the launch image (generally a solid colour)
  • icon-monochrome.png similar to the foreground icon except this should be monochrome and will be tinted by the OS to colour match the user's theme
  • icon-dark.png: a specific dark image to be used as the dark icon on iOS

Example Icons

icon-foreground.pngicon-background.pngicon-monochrome.pngicon-dark.png

Creates an icon like:

Launch

The script will generate a launch screen for you by centering the foreground icon over the background.

You can alternatively provide a separate 2048x2048 image as the launch image if you require to have more control here.

Usage Examples

This is likely the most common usage, specifying the source and output directories.

generateIcons -s config/icons -o src

Outputs

Currently this script outputs the following icons and default images:

|____Assets.car
|____LaunchScreen.storyboardc
|____icons
| |____icon120x120.png
| |____icon48x48.png
| |____icon60x60.png
| |____icon64x64.png
| |____icon58x58.png
| |____icon36x36.png
| |____icon72x72.png
| |____icon20x20.png
| |____icon80x80.png
| |____icon57x57.png
| |____icon180x180.png
| |____icon32x32.png
| |____icon76x76.png
| |____icon1024x1024.png
| |____icon29x29.png
| |____icon152x152.png
| |____icon16x16.png
| |____icon87x87.png
| |____icon512x512.png
| |____icon40x40.png
| |____icon114x114.png
| |____icon144x144.png
| |____icon256x256.png
| |____icon128x128.png
| |____icon167x167.png
|____res
| |____mipmap-anydpi-v26
| | |____icon_round.xml
| | |____icon.xml
| |____mipmap-hdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-mdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png
| |____mipmap-xxxhdpi
| | |____icon_background.png
| | |____icon_foreground.png
| | |____icon_monochrome.png
| | |____icon_round.png
| | |____icon.png

Add the following to your application descriptor to pick up these icon image names (edit as required):

 <icon>
<image16x16>icons/icon16x16.png</image16x16>
<image29x29>icons/icon29x29.png</image29x29>
<image32x32>icons/icon32x32.png</image32x32>
<image36x36>icons/icon36x36.png</image36x36>
<image40x40>icons/icon40x40.png</image40x40>
<image48x48>icons/icon48x48.png</image48x48>
<image57x57>icons/icon57x57.png</image57x57>
<image58x58>icons/icon58x58.png</image58x58>
<image60x60>icons/icon60x60.png</image60x60>
<image72x72>icons/icon72x72.png</image72x72>
<image76x76>icons/icon76x76.png</image76x76>
<image80x80>icons/icon80x80.png</image80x80>
<image87x87>icons/icon87x87.png</image87x87>
<image114x114>icons/icon114x114.png</image114x114>
<image120x120>icons/icon120x120.png</image120x120>
<image128x128>icons/icon128x128.png</image128x128>
<image144x144>icons/icon144x144.png</image144x144>
<image152x152>icons/icon152x152.png</image152x152>
<image167x167>icons/icon167x167.png</image167x167>
<image180x180>icons/icon180x180.png</image180x180>
<image512x512>icons/icon512x512.png</image512x512>
<image1024x1024>icons/icon1024x1024.png</image1024x1024>
</icon>

Add the following to your iOS info additions for launch storyboard support:

<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>

Add the following to your app descriptor to specify the android resources:

<resdir>res</resdir>

Version 1 - generate.sh

The script takes several optional parameters:

  • [optional] path to the icon image to use as the base, we suggest a 1024x1024 pixel image (defaults to icon.png);
  • [optional] path to the launch / default image to use as the base, we suggest a large 2732x2732 pixel image (defaults to launch.png);
  • [optional] colour to use to fill background when required for default images
    • in the format: "#RRGGBB";
  • [optional] output path for the files. You can use this to point to the assets output folder of your application (defaults to out);
  • [optional] path to an alternate icon image which will be added as the AlternateIcon, we suggest a 1024x1024 pixel image (defaults to icon-alt.png);

generate.sh (Version 1) still functions as before but we won't be maintaining it any longer. We wanted to change the input parameters and thought best to create a new script than potentially affect existing build processes. So this script will remain as is.

Examples

generate.sh icon.png launch.png "#ff0000" 
generate.sh icon.png launch.png "#ff0000" out icon-alt.png

The default:

generate.sh

uses:

  • icon: icon.png
  • launch: launch.png
  • no background colour
  • outputs to out
  • alternate icon: icon-alt.png

Outputs

This script outputs the same as the v2 except it doesn't handle Android resources and it doesn't handle iOS dark / tinted icons.

About

Scripts to generate iOS and Android icons and default launch images

Topics

Resources

Stars

24 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages