fix bugs, update readme
[newtab.git] / README.md
index cf62fe49ee1e4b6b045d8f644804a73a45c09c8e..c557cdc177266c5fa33c4a7027831254ac828e7b 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,30 +1,35 @@
-NOTE: This is the original README from Start Clean New Tab Page Lite.
-      All I did was add in the display of website favicons and all new tabs forced
-      open in a new tab upon left click.
-      
-Original git repo:  https://github.com/startclean/Chrome-Extension
+After Google changed the new tab page of Chrome to an ugly array of circular icons (around mid 2016), I looked around for a better new tab page extension. The best I could find was [Start Clean](https://startclean.github.io/), but it had several issues (I don't remember exactly - I think there were various bugs). A fork of Start Clean by [shadowfacts](https://github.com/shadowfacts/Chrome-Extension) fixed some small issues and added the favicons which was rather nice, but for some reason (???) this fork makes links open in a new tab.
 
-# Start Clean New Tab Page Lite
+Initially I forked shadowfacts' version to make links open in the current tab. That worked fine for a while, but I have since rewritten the extension to have much more flexibility in adding/removing links and categories. The UI is also much improved. Here is a summary of the changes I've made:
 
-Start Clean Light is a version of the extension with no search.
-Start Clean offers a minimal ui that replaces Google Chrome's default page. It includes the top sites you visit, and can show your apps. You can add your own custom links and drag to reorder.
+* Links open in the current tab
+* Background, foreground and hover colours are configurable
+* Removed ueslesss search bar and apps sections (all I want is links to common sites)
+* You can now have as many columns of links as you like, and reorder them with drag and drop
+* Added new "edit mode" where you can rearrange/add/remove/rename columns
+* Added basic keyboard shortcuts & tab indices
+- Uses browser-default sans serif font rather than locally packaged font
+- Improved settings UI
+- Use the more secure `XMLHttpRequest` method for retrieving favicon blobs
+- Reduced permission requirements on installation
+- Much cleaner code (well, as much as possible - it is Javascript after all)
 
- * Version 0.2.7 bundles code and fonts locally for offline usage.
- * Version 0.2.6 offers a background color changer in the options. Thank you to koopa1338 on github! 
- * Version 0.2.5 includes bug fixes. 
- * Version 0.2.4 changes the way search works with autocomplete powered by duckduckgo and wikipedia. 
- * Version 0.2.2 offers an option to choose search box location and search engine & urls in the search box resolve. 
+The sorting of links is managed by [SortableJS](https://github.com/SortableJS/Sortable). If I was writing this from scratch again I would use native HTML5 drag and drop, but I guess if it ain't broke don't fix it. I did end up implementing HTML5 drag and drop for the movement of columns though.
 
-[Donate to dev](https://www.paypal.me/rawas)
+Favicons for websites are obtained from Google's S2 API. One day I might upgrade to [Favicon Kit](https://faviconkit.com/) which is less centralised. This is the only external object loaded, but it triggers some scary warning in Chrome which says that it can "change data on all websites you visit" etc.
 
-![](http://i.imgur.com/PnM9k1S.png)
+## Installation
 
-![](http://i.imgur.com/bHBfXLk.png)
+Unfortunately installation is a little protracted because Google wants all extensions to be distributed through the Chrome Web Store. Apparently this is enforced to increase security, but I have to pay to upload an extension (nice bait Google) so I see no reason to upload it.
 
-![](http://i.imgur.com/mIm30O8.png)
+You can still install it as a local extension in developer mode:
 
-Start Clean New Tab Page has less features and options than alternatives such as Awesome New Tab Page, but it is cleaner, faster, and has only what you need.
+1. Go to <chrome://extensions> and turn on developer mode (top right)
+2. Download <a href="../plain/build/newtab.crx" download>build/newtab.crx</a> (make sure you save it, don't install it straight away - see below)
+3. Drag the file onto the extensions page to install it
 
-Use Start Clean with your linux desktop to spice it up even more!
+Opening the crx file using Chrome's default file handler causes a "CRX_REQUIRED_PROOF_MISSING" error because Chrome now only allows extensions obtained from their store. However, you can drag and drop it onto the extensions page and that seems to bypass the verification. More info [here](https://support.google.com/chrome/thread/3125155?hl=en).
 
-![](http://i.imgur.com/UV9KV8N.jpg)
+## Building
+
+For the time being you can run the extension as a local "unpacked" extension, but if you make modifications you may like to make a distributible crx file.