<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.asteroidos.org/index.php?action=history&amp;feed=atom&amp;title=Creating_a_Watchface</id>
	<title>Creating a Watchface - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.asteroidos.org/index.php?action=history&amp;feed=atom&amp;title=Creating_a_Watchface"/>
	<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=Creating_a_Watchface&amp;action=history"/>
	<updated>2026-05-01T08:41:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=Creating_a_Watchface&amp;diff=842&amp;oldid=prev</id>
		<title>Beroset: /* Share your watchface */ added comment about the forking workflow</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=Creating_a_Watchface&amp;diff=842&amp;oldid=prev"/>
		<updated>2026-03-24T14:26:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Share your watchface: &lt;/span&gt; added comment about the forking workflow&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:26, 24 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l149&quot;&gt;Line 149:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 149:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Share your watchface =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Share your watchface =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Your finished watchface is always welcome on our [https://github.com/AsteroidOS/unofficial-watchfaces unofficial-watchfaces repository]! You can do this via pull requests. Follow this guide to ensure consistency with existing community watchfaces and a quick review process.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Your finished watchface is always welcome on our [https://github.com/AsteroidOS/unofficial-watchfaces unofficial-watchfaces repository]! You can do this via pull requests &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(PRs)&lt;/ins&gt;. Follow this guide to ensure consistency with existing community watchfaces and a quick review process&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;We use the [forking workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow) to manage pull requests.  Following that will greatly aid you and reviewers in efficiently getting your new watchface into the project&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Edit the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; and sort your watchface entry into the list alphabetically. The required thumbnails can be conveniently created by using the&amp;lt;code&amp;gt;./watchface test my-watch-face&amp;lt;/code&amp;gt; script.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Edit the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; and sort your watchface entry into the list alphabetically. The required thumbnails can be conveniently created by using the&amp;lt;code&amp;gt;./watchface test my-watch-face&amp;lt;/code&amp;gt; script.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Beroset</name></author>
	</entry>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=Creating_a_Watchface&amp;diff=610&amp;oldid=prev</id>
		<title>Mosen: /* Features of the local test script */  Update depricated test-in-qmlscene.sh to watchface test command</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=Creating_a_Watchface&amp;diff=610&amp;oldid=prev"/>
		<updated>2025-02-21T09:52:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Features of the local test script: &lt;/span&gt;  Update depricated test-in-qmlscene.sh to watchface test command&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:52, 21 February 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l124&quot;&gt;Line 124:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 124:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Features of the local test script =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Features of the local test script =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;After starting the script with &amp;lt;code&amp;gt;./test-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;qmlscene.sh&lt;/del&gt;&amp;lt;/code&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and selecting a watchface&lt;/del&gt;, options within the started GUI allow you to use following features:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;After starting the script with &amp;lt;code&amp;gt;./&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;watchface &lt;/ins&gt;test &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;my&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;watch&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;face&lt;/ins&gt;&amp;lt;/code&amp;gt;, options within the started GUI allow you to use following features:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;amp;#9711; checkbox toggles round or square screen display.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;amp;#9711; checkbox toggles round or square screen display.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l151&quot;&gt;Line 151:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 151:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Your finished watchface is always welcome on our [https://github.com/AsteroidOS/unofficial-watchfaces unofficial-watchfaces repository]! You can do this via pull requests. Follow this guide to ensure consistency with existing community watchfaces and a quick review process.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Your finished watchface is always welcome on our [https://github.com/AsteroidOS/unofficial-watchfaces unofficial-watchfaces repository]! You can do this via pull requests. Follow this guide to ensure consistency with existing community watchfaces and a quick review process.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Edit the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; and sort your watchface entry into the list alphabetically. The required thumbnails can be conveniently created by using the &amp;lt;code&amp;gt;./test-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;qmlscene.sh&lt;/del&gt;&amp;lt;/code&amp;gt; script.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Edit the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; and sort your watchface entry into the list alphabetically. The required thumbnails can be conveniently created by using the&amp;lt;code&amp;gt;./&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;watchface &lt;/ins&gt;test &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;my&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;watch&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;face&lt;/ins&gt;&amp;lt;/code&amp;gt; script.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Remember to provide licensing information to all licensed material used in your watchface, at the bottom section of the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. Only works issued under an open license that allows embedded redistribution (OFL/SIL, Apache, BSD, CC-BY, etc.), are suitable to be merged into our repositories.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Remember to provide licensing information to all licensed material used in your watchface, at the bottom section of the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. Only works issued under an open license that allows embedded redistribution (OFL/SIL, Apache, BSD, CC-BY, etc.), are suitable to be merged into our repositories.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff::1.12:old-437:rev-610 --&gt;
&lt;/table&gt;</summary>
		<author><name>Mosen</name></author>
	</entry>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=Creating_a_Watchface&amp;diff=437&amp;oldid=prev</id>
		<title>Beroset: Added a section on specific techniques</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=Creating_a_Watchface&amp;diff=437&amp;oldid=prev"/>
		<updated>2024-04-13T14:35:55Z</updated>

		<summary type="html">&lt;p&gt;Added a section on specific techniques&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:35, 13 April 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l73&quot;&gt;Line 73:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 73:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Do not ever forget to brag all over the internet with your cool new watchface and [https://twitter.com/AsteroidOS tag us] so we can show your work to the broader community!  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Do not ever forget to brag all over the internet with your cool new watchface and [https://twitter.com/AsteroidOS tag us] so we can show your work to the broader community!  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= Useful techniques =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This section documents some useful techniques that can help you simplify the work of creating your watchface.  &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Repeating tick marks ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;It is fairly common on a round watchface to create regularly spaced marks around the perimeter to indicate minute or hour boundaries.  One way to do this is to use a QML [https://doc.qt.io/qt-5/qml-qtquick-repeater.html Repeater] object.  See the custom [https://github.com/AsteroidOS/unofficial-watchfaces/blob/master/decimal-time/usr/share/asteroid-launcher/watchfaces/decimal-time.qml#L48-L82 Tick object] within the &amp;lt;code&gt;decimal-time&amp;lt;/code&gt; unofficial watchface for a reusable component to simplify this.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Base sizing decisions on watch width ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Supported AsteroidOS watches include square, round and rectangular watchfaces.  The rectangular watchface (of [[Beluga]]) is taller than it is wide, so the width is the smaller dimension.  By keying the size of the major features of your watchface on the width rather than the height, you will assure that your watchface looks reasonable on any of the currently supported watches.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Group settings together ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;When setting a number of related values such as for a &amp;lt;code&gt;font&amp;lt;/code&gt; in QML, prefer to group things together to enhance readability.  That is, instead of this:&amp;lt;syntaxhighlight lang=&quot;qml&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;// Don&#039;t do this!&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;font.pixelSize: parent.height*0.08&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;font.family: &quot;CPMono_v07&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;font.styleName: &quot;Plain&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&gt;Write this instead:&amp;lt;syntaxhighlight lang=&quot;qml&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;font {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    pixelSize: parent.height * 0.08&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    family: &quot;CPMono_v07&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    styleName: &quot;Plain&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Testing on the watch =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Testing on the watch =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff::1.12:old-162:rev-437 --&gt;
&lt;/table&gt;</summary>
		<author><name>Beroset</name></author>
	</entry>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=Creating_a_Watchface&amp;diff=162&amp;oldid=prev</id>
		<title>Beroset: added category</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=Creating_a_Watchface&amp;diff=162&amp;oldid=prev"/>
		<updated>2023-06-26T17:49:13Z</updated>

		<summary type="html">&lt;p&gt;added category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:49, 26 June 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Developers]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Our goal is to make watchface creation fairly simple.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Our goal is to make watchface creation fairly simple.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff::1.12:old-40:rev-162 --&gt;
&lt;/table&gt;</summary>
		<author><name>Beroset</name></author>
	</entry>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=Creating_a_Watchface&amp;diff=40&amp;oldid=prev</id>
		<title>Beroset: initial version of creating watchfaces</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=Creating_a_Watchface&amp;diff=40&amp;oldid=prev"/>
		<updated>2023-06-17T17:55:34Z</updated>

		<summary type="html">&lt;p&gt;initial version of creating watchfaces&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Our goal is to make watchface creation fairly simple.&lt;br /&gt;
&lt;br /&gt;
The provided scripts make it possible to create your first watchface even without any programming skills by redesigning existing SVG images.&lt;br /&gt;
&lt;br /&gt;
Changing code requires some QML knowledge. Even if you are not familiar with QML yet, prior knowledge of any scripting language should be sufficiant to learn quickly from the already existing examples provided by the community.&lt;br /&gt;
&lt;br /&gt;
Those community examples are collected in the [https://github.com/AsteroidOS/unofficial-watchfaces unofficial-watchfaces repo]. This guide will walk you through the steps of how to get started.&lt;br /&gt;
&lt;br /&gt;
= Preparing watchface creation =&lt;br /&gt;
&lt;br /&gt;
To begin watchface creation starting from a community example, browse the [https://github.com/AsteroidOS/unofficial-watchfaces unofficial-watchfaces repo] for an existing watchface with features you like to have in your new watchface. Take note of its name and proceed with setting up our humble watchface creation tools.&lt;br /&gt;
&lt;br /&gt;
Open a terminal and clone the unofficial-watchfaces repo to a new subfolder from your current location as it contains all community made watchfaces.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/AsteroidOS/unofficial-watchfaces&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change directory into unofficial-watchfaces folder. &amp;lt;code&amp;gt;cd unofficial-watchfaces/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will find the watchface testing script in this directory. It was created to simulate watchface behaviour on your local machine using &amp;lt;code&amp;gt;qmlscene&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;qmlscene&amp;lt;/code&amp;gt; is provided by the &amp;lt;code&amp;gt;qt-creator&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
Executing the script &amp;lt;code&amp;gt;./watchface&amp;lt;/code&amp;gt; starts a text-based menu.  Choose &amp;quot;test&amp;quot; and the menu will then list all community watchfaces. Choose a watchface to start simulating the assigned watchface in qmlscene. A detailed description of the scripts features can be found further down on this page.&lt;br /&gt;
&lt;br /&gt;
If you find a watchface you&amp;#039;d like to start with, you can &amp;quot;clone&amp;quot; it and make your own customizations.  To do this, use &amp;lt;code&amp;gt;./watchface&amp;lt;/code&amp;gt; to start a text menu, and then select &amp;quot;clone&amp;quot;.  Choose the watchface you&amp;#039;d like to clone and then create a new name for your customized version.  The script takes care of copying and renaming all files, folders and references to those, into a name of your liking.  If you&amp;#039;d prefer not to use the menu, you can also accomplish the same thing via command line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./watchface clone analog-nort analog-my-watch-face&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your renamed copy will appear in the list of watchfaces when starting &amp;lt;code&amp;gt;./watchface&amp;lt;/code&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;clone&amp;lt;/code&amp;gt; option of &amp;lt;code&amp;gt;watchface&amp;lt;/code&amp;gt; expects two inputs. The first watchface must exist, your choosen name must not already exist. Please avoid special characters and spaces in the name. We tend to roughly categorize &amp;lt;code&amp;gt;analog-&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;digital-&amp;lt;/code&amp;gt; watchfaces by these prefixes.&lt;br /&gt;
&lt;br /&gt;
In this example, analog-nort is choosen as a good example to begin with. It is purely based on rotating SVG images located in &amp;lt;code&amp;gt;analog-my-watch-face/usr/share/asteroid-launcher/watchface-img/&amp;lt;/code&amp;gt;. You can have your first custom results by just editing the corresponding hour, minute and second images using an SVG editing tool such as [https://inkscape.org Inkscape].&lt;br /&gt;
&lt;br /&gt;
The actual QML code for your watchface is always located in &amp;lt;code&amp;gt;analog-my-watch-face/usr/share/asteroid-launcher/watchfaces/analog-my-watch-face.qml&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To dive deeper into QML, [https://doc.qt.io/ doc.qt.io] offers a [https://doc.qt.io/qt-5/qml-tutorial.html QML Tutorial] and is a comprehensive source for answering general QML questions.&lt;br /&gt;
&lt;br /&gt;
= Design guidelines =&lt;br /&gt;
&lt;br /&gt;
Following these guidelines will make it easier to share your creation with others.&lt;br /&gt;
&lt;br /&gt;
== Using images ==&lt;br /&gt;
&lt;br /&gt;
Use the SVG image format where ever possible to reduce filesize and ensure scaling to different watch display resolutions.&lt;br /&gt;
&lt;br /&gt;
When setting up the SVG page in the vector editor of your choice, mind to define a pixel &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; of at least 800 x 800px to prevent upscaling. This is needed as a workaround since QT does only downscale correctly but has unsolved issues with upscaling to higher display resolutions than defined in the SVG&amp;#039;s &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It is advised to optimise SVG images using e.g. [https://github.com/svg/svgo svgo] to remove editor specific meta data and redundant information that can be removed without loss.&lt;br /&gt;
&lt;br /&gt;
When using PNG or JPG images, please save them without EXIF, preview image and any meta data to reduce size.&lt;br /&gt;
&lt;br /&gt;
All images used in your watchface should reside in &amp;lt;code&amp;gt;my-watch-face/usr/share/asteroid-launcher/watchface-img/&amp;lt;/code&amp;gt; which is then referenced in the code by &amp;lt;code&amp;gt;../watchface-img/imagename.suffix&amp;lt;/code&amp;gt; relative to the .qml file location. Putting images anywhere else can cause empty spaces in the watchface settings page.&lt;br /&gt;
&lt;br /&gt;
Names of images and assets should include the watchface name as prefix to the name to avoid conflict with assets from other watchfaces. E.g.: &amp;lt;code&amp;gt;my-watch-face-imagename.svg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you plan to use the AsteroidOS logo in your design, please use the provided &amp;lt;code&amp;gt;../watchface-img/asteroid-logo.svg&amp;lt;/code&amp;gt;. Any alterations to the logo file should be saved under new filename &amp;lt;code&amp;gt;my-watch-face-asteroid-logo.svg&amp;lt;/code&amp;gt; to avoid conflict with other watchfaces that use the plain unaltered logo.&lt;br /&gt;
&lt;br /&gt;
== Using fonts ==&lt;br /&gt;
&lt;br /&gt;
Font files are to be placed in &amp;lt;code&amp;gt;my-watch-face/usr/share/fonts/&amp;lt;/code&amp;gt;. They will be copied and installed to the watch by using the &amp;lt;code&amp;gt;./deploy.sh&amp;lt;/code&amp;gt; script described further below on this page.&lt;br /&gt;
&lt;br /&gt;
Please mind to strictly use fonts issued under open licenses that allow embedded redistribution (OFL/SIL, Apache, BSD, CC-BY, etc.) in case you plan to publish your watchface to the unofficial-watchfaces repo or aim for inclusion into the AsteroidOS stock images.&lt;br /&gt;
&lt;br /&gt;
== Other considerations ==&lt;br /&gt;
&lt;br /&gt;
Using a background that completely hides the user selected wallpaper is not advised. Please ensure that your design is legible when paired with the stock wallpapers.&lt;br /&gt;
&lt;br /&gt;
When pull requesting your work to the [https://github.com/AsteroidOS/unofficial-watchfaces unofficial-watchfaces repo], edit the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. Add your watchface to the alphabetically sorted list and provide license information to the fonts and licensed assets/images you use and thus distribute in your watchface. A more detailed guide how to commit your work can be found further down on this page.&lt;br /&gt;
&lt;br /&gt;
Do not ever forget to brag all over the internet with your cool new watchface and [https://twitter.com/AsteroidOS tag us] so we can show your work to the broader community! &lt;br /&gt;
&lt;br /&gt;
= Testing on the watch =&lt;br /&gt;
&lt;br /&gt;
Use the &amp;lt;code&amp;gt;./watchface&amp;lt;/code&amp;gt; script to copy your watchface creation to the watch using either SCP or ADB commands.&lt;br /&gt;
&lt;br /&gt;
Connect your AsteroidOS Watch, configured to either ADB Mode (ADB transfer) or SSH Mode (SCP transfer) in Settings &amp;amp;rarr; USB.&lt;br /&gt;
&lt;br /&gt;
Start &amp;lt;code&amp;gt;./watchface&amp;lt;/code&amp;gt; to use SCP commands or &amp;lt;code&amp;gt;./watchface -a&amp;lt;/code&amp;gt; for ADB commands.&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;./watchface --help&amp;lt;/code&amp;gt; to get a list of available options.&lt;br /&gt;
&lt;br /&gt;
From the &amp;lt;code&amp;gt;watchface&amp;lt;/code&amp;gt; menu, select &amp;lt;code&amp;gt;deploy&amp;lt;/code&amp;gt; and then select your watchface to deploy it to the watch.&lt;br /&gt;
&lt;br /&gt;
The session will automatically be restarted so that any new images or fonts are loaded and display correctly.&lt;br /&gt;
&lt;br /&gt;
Note that restarting the session might break things like Always-on-Display or the battery display for the remaining uptime.  If you encounter such symptoms, you can reboot the watch by using the &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;--boot&amp;lt;/code&amp;gt; options of &amp;lt;code&amp;gt;watchface&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Example:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To try out your customized watchface as described above, and to additionally reboot after the watchface is installed you can either use the menus or do everything from the command line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./watchface --boot deploy analog-my-watch-face&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Features of the local test script =&lt;br /&gt;
&lt;br /&gt;
After starting the script with &amp;lt;code&amp;gt;./test-in-qmlscene.sh&amp;lt;/code&amp;gt; and selecting a watchface, options within the started GUI allow you to use following features:&lt;br /&gt;
&lt;br /&gt;
* &amp;amp;#9711; checkbox toggles round or square screen display.&lt;br /&gt;
* &amp;amp;#9789; checkbox activates AmbientMode with a black background.&lt;br /&gt;
* 320px checkbox scales down the viewport to 320px from 640px to test scaling behaviour.&lt;br /&gt;
* &amp;amp;#10226; button triggers reload of the QML code to see changes saved to the QML watchface file during &amp;lt;code&amp;gt;qmlscene&amp;lt;/code&amp;gt; runtime.&lt;br /&gt;
* Screenshot button saves a 640px PNG. Great for creating mockups during design process. Or just to support your bragging effort visually.&lt;br /&gt;
* Generate previews button exports transparent PNG snapshots. Those are converted to WEBP &amp;lt;code&amp;gt;.thumbnails/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;watchfaces-previews/&amp;lt;/code&amp;gt; to publish to the unofficial-watchfaces repo.&lt;br /&gt;
&lt;br /&gt;
* 12h checkbox switches between 24H and 12H time format by toggling &amp;lt;code&amp;gt;use12H.value&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Set Time checkbox, to set a custom time by manipulating the activated tumblers by either dragging them or using the mouse wheel above them.&lt;br /&gt;
* &amp;lt;code&amp;gt;featureSlider&amp;lt;/code&amp;gt; to emulate input for features not available on your local system, like the battery display or temperatur data gathered by the weather app.&lt;br /&gt;
&lt;br /&gt;
While developing watchfaces with features not available in the local testing environment, it can be handy to temporarily write the code a little differently to allow it to run under qmlscene. The &amp;lt;code&amp;gt;featureSlider&amp;lt;/code&amp;gt; is a simple slider that, by default, is not tied to anything, but is free to be used temporarily while developing.  So for temporary test code, one could use something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Item {&lt;br /&gt;
        id: batteryChargePercentage&lt;br /&gt;
        property var value: (featureSlider.value * 100).toFixed(0)&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The UI slider then acts as a controller to see how the watchface reacts to the different values. Note that the slider gives a real value from 0.0 to 1.0. To simulate the integer 0 to 100 provided by the real battery on the watch, we scale and convert to a fixed value in the code above.&lt;br /&gt;
&lt;br /&gt;
= Share your watchface =&lt;br /&gt;
&lt;br /&gt;
Your finished watchface is always welcome on our [https://github.com/AsteroidOS/unofficial-watchfaces unofficial-watchfaces repository]! You can do this via pull requests. Follow this guide to ensure consistency with existing community watchfaces and a quick review process.&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; and sort your watchface entry into the list alphabetically. The required thumbnails can be conveniently created by using the &amp;lt;code&amp;gt;./test-in-qmlscene.sh&amp;lt;/code&amp;gt; script. &lt;br /&gt;
&lt;br /&gt;
Remember to provide licensing information to all licensed material used in your watchface, at the bottom section of the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. Only works issued under an open license that allows embedded redistribution (OFL/SIL, Apache, BSD, CC-BY, etc.), are suitable to be merged into our repositories. &lt;br /&gt;
&lt;br /&gt;
Square thumbnails are taken on the iconic flatmesh background. This helps to easily compare the watchfaces visually on the same background when scrolling through the list. The flatmesh background is automatically downloaded when you start the script and if a custom &amp;lt;code&amp;gt;background.jpg&amp;lt;/code&amp;gt; isn&amp;#039;t used.&lt;br /&gt;
&lt;br /&gt;
Round thumbnails are meant to present watchfaces on a background the developer found to be most suitable. Save this custom background as &amp;lt;code&amp;gt;background-round.jpg&amp;lt;/code&amp;gt; and the script will use it when generating the previews.&lt;br /&gt;
&lt;br /&gt;
Pressing the &amp;lt;code&amp;gt;Generate previews&amp;lt;/code&amp;gt; button saves and correctly names three high quality PNG images. Those can either be found at top-level during runtime of qmlscene, in case you like to process them manually. Or you can use the images that get automatically created and copied to the correct folders by the script as soon as you close the qmlscene window.&lt;br /&gt;
&lt;br /&gt;
Wrapping up, your pull request should have the following files included:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;my-watch-face/usr/share/asteroid-launcher/watchfaces/my-watch-face.qml&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;my-watch-face/usr/share/fonts/&amp;lt;/code&amp;gt;  &lt;br /&gt;
For font files not already [https://github.com/AsteroidOS/asteroid-fonts contained in AsteroidOS stock].&lt;br /&gt;
* &amp;lt;code&amp;gt;my-watch-face/usr/share/asteroid-launcher/watchfaces-img/my-watch-face-imagename.*&amp;lt;/code&amp;gt;  &lt;br /&gt;
All the images used in your watchface belong into this folder.&lt;br /&gt;
* &amp;lt;code&amp;gt;my-watch-face/usr/share/asteroid-launcher/watchfaces-preview/.../my-watch-face.png&amp;lt;/code&amp;gt;  &lt;br /&gt;
Transparent PNG preview files in folders named by resolution.  &lt;br /&gt;
* &amp;lt;code&amp;gt;my-watch-face/usr/share/asteroid-launcher/wallpapers/my-watch-face-wallpapername.jpg&amp;lt;/code&amp;gt;  &lt;br /&gt;
Put a 480x480 JPG file you possibly like to include as custom wallpaper here.&lt;br /&gt;
* &amp;lt;code&amp;gt;.thumbnails/my-watch-face.webp&amp;lt;/code&amp;gt;  &lt;br /&gt;
Square thumbnail in WEBP format taken on Flatmesh wallpaper.&lt;br /&gt;
* &amp;lt;code&amp;gt;.thumbnails/my-watch-face-round.webp&amp;lt;/code&amp;gt;  &lt;br /&gt;
Round thumbnail in WEBP format with transparent circle cut out.&lt;br /&gt;
* &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;  &lt;br /&gt;
Extended with your watchface entry and licensing information, if required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thank you for contributing your work and sharing it with the community!&lt;/div&gt;</summary>
		<author><name>Beroset</name></author>
	</entry>
</feed>