-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit dfec8f2
Showing
4 changed files
with
106 additions
and
0 deletions.
There are no files selected for viewing
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 @@ | ||
**/__pycache__/ |
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,47 @@ | ||
favicon | ||
======= | ||
|
||
Change the favicon and app icons of your Home Assistant instance | ||
|
||
![browser](https://user-images.githubusercontent.com/1299821/62975860-ad283a80-be1b-11e9-836a-d58a1732fb21.png) | ||
|
||
# Installation instructions | ||
|
||
- Copy the contents of `custom_components/favicon/` to `<your config dir>/custom_components/favicon/`. | ||
|
||
- Get some icons | ||
|
||
There are some nice ones available [here](https://github.com/home-assistant/home-assistant-assets/tree/master/Alternates), and you can generate favicons from them using an online tool, such as [this one](https://realfavicongenerator.net/). | ||
|
||
- Put your icons in e.g. `<your config dir>/www/favicons/` | ||
|
||
- Add the following to your `configuration.yaml`: | ||
|
||
```yaml | ||
favicon: | ||
favicon: /local/favicons/favicon.ico | ||
apple: /local/favicons/apple-touch-icon-180x180.png | ||
32: /local/favicons/favicon-32x32.png | ||
512: /local/favicons/android-chrome-512x512.png | ||
``` | ||
- Restart Home Assistant | ||
- Make sure to clear the cache of your browser to get the new icons. | ||
# Options | ||
- `favicon` - an .ico file which is displayed in your browser tab or bookmark menu. | ||
|
||
- `apple` - a 180 x 180 px image that will be displayed on your iDevice home screen if you save the link there | ||
|
||
- `<number>` - a `<number>` x `<number>` px image that will be displayed wherever it's needed for non-apple devices. | ||
|
||
You can add as few or as many of those you'd like. It's my understanding that the next smaller size will be used if one is requested which doesn't quite fit the need. | ||
|
||
For reference, Home Assistant includes icons of sizes 192, 384, 512 and 1024 px square by default. Specifying even a single size will override all of those. | ||
|
||
![iphone](https://user-images.githubusercontent.com/1299821/62975899-c29d6480-be1b-11e9-9b6b-9d160ef8b439.jpg) | ||
|
||
--- | ||
<a href="https://www.buymeacoffee.com/uqD6KHCdJ" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/white_img.png" alt="Buy Me A Coffee" style="height: auto !important;width: auto !important;" ></a> |
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,50 @@ | ||
import logging | ||
|
||
import homeassistant.components.frontend | ||
from homeassistant.components.frontend import _frontend_root | ||
|
||
_LOGGER = logging.getLogger(__name__) | ||
|
||
DOMAIN = "favicon" | ||
|
||
async def async_setup(hass, config): | ||
|
||
favicon = config[DOMAIN].get('favicon') | ||
apple = config[DOMAIN].get('apple') | ||
|
||
if favicon or apple: | ||
get_template = homeassistant.components.frontend.IndexView.get_template | ||
|
||
def new_get_template(self): | ||
tpl = get_template(self) | ||
render = tpl.render | ||
def new_render(*args, **kwargs): | ||
text = render(*args, **kwargs) | ||
if favicon: | ||
text = text.replace("/static/icons/favicon.ico", favicon) | ||
if apple: | ||
text = text.replace("/static/icons/favicon-apple-180x180.png", apple) | ||
return text | ||
tpl.render = new_render | ||
return tpl | ||
|
||
homeassistant.components.frontend.IndexView.get_template = new_get_template | ||
|
||
icons = [] | ||
for size in config[DOMAIN]: | ||
if not isinstance(size, int): | ||
continue | ||
i = config[DOMAIN].get(size) | ||
if i: | ||
icons.append({ | ||
"src": i, | ||
"sizes": f"{size}x{size}", | ||
"type": "image/png", | ||
}) | ||
|
||
if icons: | ||
homeassistant.components.frontend.MANIFEST_JSON["icons"] = icons | ||
|
||
return True | ||
|
||
|
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,8 @@ | ||
{ | ||
"domain": "favicon", | ||
"name": "Favicon changer", | ||
"documentation": "", | ||
"dependencies": ["frontend"], | ||
"codeowners": [], | ||
"requirements": [] | ||
} |