|
| 1 | +# :material-page-next-outline: Themes |
| 2 | + |
| 3 | +Knulli's default frontend is EmulationStation and default theme is [Art Book Next](https://github.com/anthonycaccese/art-book-next-es). Also included by default is the [Carbon](https://github.com/fabricecaruso/es-theme-carbon) theme from Batocera. Both are updated automatically as part of each release. |
| 4 | + |
| 5 | +## Preview |
| 6 | + |
| 7 | +<table> |
| 8 | + <tr> |
| 9 | + <td><img src="../../_inc/images/screenshots/system-view.png"/></td> |
| 10 | + <td><img src="../../_inc/images/screenshots/menu.png"/></td> |
| 11 | + </tr> |
| 12 | + <tr> |
| 13 | + <td><img src="../../_inc/images/screenshots/gamelist-view-metadata-immersive.png"/></td> |
| 14 | + <td><img src="../../_inc/images/screenshots/gamelist-view-no-metadata-immersive.png"/></td> |
| 15 | + </tr> |
| 16 | +</table> |
| 17 | + |
| 18 | +## Configuration |
| 19 | + |
| 20 | +The following options can be changed directly from the main menu under `User Interface Settings > Theme Configuration` |
| 21 | + |
| 22 | +| Setting | Description | Options | |
| 23 | +| -- | -- | -- | |
| 24 | +| Distribution | Used to define which folder to look in for Theme Customization files. | `Batocera/Knulli`, `RetroBat` | |
| 25 | +| Aspect Ratio | Enables you to select the correct aspect ratio for your screen. This will automatically set itself so you should not need to change it but if the theme layout looks odd or spacing looks incorrect you can use this setting to make sure the aspect ratio matches your screen. | `16:9`, `16:10`, `4:3`, `3:2`, `1:1` | |
| 26 | +| System Artwork | Defines the set of artwork that is displayed on the system view | `Default`, `Noir`, `Custom`, `Custom (Fullscreen)` | |
| 27 | +| System Logos | Defines the logo set used on all views | `Default`, `Custom` | |
| 28 | +| Game Artwork | Defines the type of artwork used to represent a game. These are sourced from the the selections you make in the scraper menu. Image will display the image you selected to scrape for `Image Source`. Image (Cropped) will display that same image zoomed in to fill the screen. Boxart will display the image you selected to scrape for `Box Source` | `Image`, `Image (Cropped)`, `Boxart` | |
| 29 | +| Game Metadata | Sets if metadata (e.g. description, release date, etc...) should be displayed for a game | `On`, `Off` | |
| 30 | +| Font Size | Set the size for text elements throughout the theme. | `Default`, `Small`, `Large` | |
| 31 | +| Color Scheme | Sets the color scheme that is used for the theme. There is a set of prebuilt color schemes that you can select and an option to supply your custom color scheme (selected by choosing `custom`). You can see details on customizations below under [Theme Customizations](#theme-customizations). | `Default`, `Light`, `Steam OS`, `SNES`, `Famicom`, `DMG`, `OLED`, `Custom` | |
| 32 | + |
| 33 | +### Additional UI Settings |
| 34 | + |
| 35 | +The following EmulationStation settings can also be changed and will update the look of the theme accordingly: |
| 36 | + |
| 37 | +* `User Interface Settings > Show Clock` - This will allow you to turn the system clock on or off |
| 38 | +* `User Interface Settings > On-Screen Help` - This will turn the display of EmulationStation's help system on or off (the theme's layout will automatically adapt to the available space) |
| 39 | +* `User Interface Settings > Show Battery Status` - This will allow you to change what is displayed for the battery status. |
| 40 | + |
| 41 | +## Customization |
| 42 | + |
| 43 | +Art Book Next allows customizations to system artwork and color schemes without the need to edit the source XML. This enables you to change the look of the theme and still retain your changes when the theme is updated. |
| 44 | + |
| 45 | +### Start Here |
| 46 | +- Make sure the `Distribution` setting is set to `Batocera/Knulli` (This value determines the folder where you will add your customizations) |
| 47 | + - Batocera/Knulli folder is = `/userdata/theme-customizations/art-book-next/` |
| 48 | + - Create this folder and then move on to the options below... |
| 49 | + |
| 50 | +### Background Art |
| 51 | + |
| 52 | +The artwork used on the system view can be customized with your own images. |
| 53 | + |
| 54 | +#### For angled artwork: |
| 55 | + |
| 56 | +* Create your custom artwork using one of the masks i've supplied in this theme's resources directory [here](https://github.com/anthonycaccese/art-book-next-es/tree/main/resources/customizations). I've included a set of masks that should work in all major image editing programs. |
| 57 | +* Export your final images as transparent pngs |
| 58 | +* Create a folder in the path you created above called `artwork` |
| 59 | +* Upload your images to that folder |
| 60 | +* They can be named: |
| 61 | + * `_default.png` |
| 62 | + * `${system.theme}.png` |
| 63 | + * The theme will look them them up in that order. If a given image is not found in your folder then the the images from the theme will be used as a fallback. This allows you to customize only the images you want and still have images displayed for all systems. |
| 64 | + * `_default.png` can be used for creating a single image that is used for all systems OR a fallback for systems that you did not create a custom image for (if you don't want to use the fallback that already exists in the theme) |
| 65 | + * `${system.theme}.png` should be named for the system you are looking to override. For example if you wanted to override the artwork for `snes` you would create an image called `snes.png` in the artwork folder. |
| 66 | +* Once your images are in place you turn on custom images by changing the `System Artwork` setting to `Custom` |
| 67 | + |
| 68 | +#### For fullscreen artwork: |
| 69 | + |
| 70 | +* Create a folder in the path you created above called `artwork-fullscreen` |
| 71 | +* Upload your images to that folder |
| 72 | +* They can be named: |
| 73 | + * `_default.png` |
| 74 | + * `_default.jpg` |
| 75 | + * `${system.theme}.png` |
| 76 | + * `${system.theme}.jpg` |
| 77 | + * The theme will look them them up in that order. |
| 78 | + * `_default.png/jpg` can be used for creating a single image that is used for all systems OR a fallback for systems that you did not create a custom image for (if you don't want to use the fallback that already exists in the theme) |
| 79 | + * `${system.theme}.png/jpg` should be named for the system you are looking to override. For example if you wanted to override the artwork for `snes` you would create an image called `snes.png` or `snes.jpg` in the artwork folder. |
| 80 | +* Once your images are in place you turn on custom images by changing the `System Artwork` setting to `Custom (Fullscreen)` |
| 81 | + |
| 82 | +### Color Schemes |
| 83 | + |
| 84 | +You can create your own custom color scheme to use for the theme |
| 85 | + |
| 86 | +* Download [this template](https://github.com/anthonycaccese/art-book-next-es/blob/main/resources/customizations/colors.xml) |
| 87 | +* Upload it in the path you created above and make sure its called `colors.xml` |
| 88 | +* Change any values in the template to the colors you prefer. |
| 89 | +* I tried to make the values as self explanatory as possible but if you have questions regarding which property does what please don't hesitate to ask. |
| 90 | +* After your colors are defined; in theme configuration change `Color Scheme` to `Custom` |
| 91 | + |
| 92 | +### Logos |
| 93 | + |
| 94 | +System logos can be customized by adding your own images |
| 95 | + |
| 96 | +* Create a folder in the path you created above called `logos` |
| 97 | +* Upload your images to that folder |
| 98 | +* They can be named: |
| 99 | + * `${system.theme}.svg` |
| 100 | + * `${system.theme}.png` |
| 101 | + * The theme will look them them up in that order. If a given image is not found in your folder then the the images from the theme will be used as a fallback. This allows you to customize only the images you want and still have images displayed for all systems. |
| 102 | + * `${system.theme}.svg/png` should be named for the system you are looking to override. For example if you wanted to override the logo for `snes` you would create an image called `snes.svg` or `snes.png` in the logos folder. |
| 103 | +* Once your images are in place you turn on custom images by changing the `System Logos` setting to `Custom` |
| 104 | + |
| 105 | +## Adding Additional Themes |
| 106 | + |
| 107 | +- Knulli's version of EmulationStation is sourced from the same version used in Batocera so you can also use themes that were created for Batocera directly |
| 108 | +- You can download themes directly using the built-in theme downloader (which includes nice previews of each theme) |
| 109 | +- You can also find a list of Batocera themes here: [https://batocera.org/themes.php](https://batocera.org/themes.php) if you would prefer to download them manually |
| 110 | + |
| 111 | +!!! note "There are no guarantees that themes from the above list will support the aspect ratio of your device or all of the systems we support. Because of that; some themes may look odd, not display all systems or have layouts that do not match well to your screen." |
| 112 | + |
| 113 | +## Creating Your Own Theme |
| 114 | + |
| 115 | +An exhaustive tutorial is out of scope for this wiki. That said; please see Batocera's theme documention @ [https://wiki.batocera.org/write_themes_for_emulationstation](https://wiki.batocera.org/write_themes_for_emulationstation). Its a great starter guide for understanding the fundamentals of creating themes for the version of EmulationStation used by Knulli. |
0 commit comments