about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--package.json2
-rw-r--r--src/assets/images/sendTargets-icon.svg52
-rw-r--r--src/assets/javascripts/services.js8
-rw-r--r--src/config/config.json67
-rw-r--r--src/instances/get_instances.py2
-rw-r--r--src/pages/options/index.html109
-rw-r--r--src/pages/options/widgets/services.js2
-rw-r--r--src/pages/popup/popup.ejs49
-rw-r--r--src/pages/popup/popup.html396
-rw-r--r--src/pages/popup/popup.pug155
-rw-r--r--src/pages/widgets/head.pug5
-rw-r--r--src/pages/widgets/icons.pug46
-rw-r--r--src/pages/widgets/instances.pug15
-rw-r--r--src/pages/widgets/latency.pug14
-rw-r--r--src/pages/widgets/links.ejs12
-rw-r--r--src/pages/widgets/links.pug83
-rw-r--r--src/pages/widgets/switches.ejs11
17 files changed, 422 insertions, 606 deletions
diff --git a/package.json b/package.json
index ee0d9089..76f57474 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
 		"pug": "pug ./src/pages/options/*.pug ./src/pages/popup/ -P -w",
 		"prettier": "npx prettier --write .",
 		"instances": "python3 src/instances/get_instances.py; git update-index --assume-unchanged src/instances/blacklist.json src/instances/data.json",
-		"ejs": "npx ejs src/pages/options/index.ejs -f src/config/config.json -o src/pages/options/index.html"
+		"ejs": "npx ejs src/pages/options/index.ejs -f src/config/config.json -o src/pages/options/index.html; npx ejs src/pages/popup/popup.ejs -f src/config/config.json -o src/pages/popup/popup.html"
 	},
 	"repository": {
 		"type": "git",
diff --git a/src/assets/images/sendTargets-icon.svg b/src/assets/images/sendTargets-icon.svg
index 2ed80a06..5557664e 100644
--- a/src/assets/images/sendTargets-icon.svg
+++ b/src/assets/images/sendTargets-icon.svg
@@ -1,51 +1,3 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   width="33.866665mm"
-   height="33.866665mm"
-   viewBox="0 0 33.866665 33.866665"
-   version="1.1"
-   id="svg898"
-   sodipodi:docname="send-icon.svg"
-   inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:svg="http://www.w3.org/2000/svg">
-  <defs
-     id="defs7" />
-  <sodipodi:namedview
-     id="namedview5"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     inkscape:pagecheckerboard="0"
-     inkscape:document-units="mm"
-     showgrid="false"
-     inkscape:zoom="2.6623698"
-     inkscape:cx="46.950653"
-     inkscape:cy="88.079425"
-     inkscape:window-width="1888"
-     inkscape:window-height="1060"
-     inkscape:window-x="32"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg898" />
-  <circle
-     style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.17791"
-     id="path1168"
-     cx="16.933332"
-     cy="16.933332"
-     r="16.933332" />
-  <g
-     id="layer1"
-     transform="matrix(0.36395732,0,0,0.36395732,5.286709,5.2870656)">
-    <path
-       id="cloud-upload"
-       d="m 64,34.286 a 17.033,17.033 0 0 1 -4.406,11.428 14.857,14.857 0 0 1 -10.558,4.572 h -2.179 v -6.857 h 2.179 a 8.004,8.004 0 0 0 5.468,-2.31 10.184,10.184 0 0 0 2.639,-6.833 11.442,11.442 0 0 0 -11.429,-11.429 c -0.377,0 -2.312,0.242 -3.49,0.394 A 1.136,1.136 0 0 1 41.003,22.487 L 40.537,21.13 A 14.103,14.103 0 0 0 28.821,11.498 13.666,13.666 0 0 0 14.091,28.277 l 0.489,2.087 a 1.143,1.143 0 0 1 -0.783,1.355 l -2.054,0.62 a 6.794,6.794 0 0 0 -4.886,6.518 4.604,4.604 0 0 0 0.947,2.808 5.539,5.539 0 0 0 4.089,1.764 h 5.25 v 6.857 h -5.25 A 12.236,12.236 0 0 1 2.213,45.634 11.506,11.506 0 0 1 0,38.857 13.573,13.573 0 0 1 6.944,26.973 19.51,19.51 0 0 1 6.857,25.143 20.563,20.563 0 0 1 45.844,16 18.307,18.307 0 0 1 64,34.286 Z M 32.923,32.123 a 1.143,1.143 0 0 0 -1.846,0 l -8.592,11.775 a 1.143,1.143 0 0 0 0.923,1.816 h 5.163 v 12.572 a 1.143,1.143 0 0 0 1.143,1.143 h 4.572 a 1.143,1.143 0 0 0 1.143,-1.143 V 45.714 h 5.163 a 1.143,1.143 0 0 0 0.923,-1.816 z"
-       stroke-width="2.286"
-       fill="#45a1ff"
-       fill-opacity="1" />
-  </g>
+<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+  <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
 </svg>
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index 79444442..f4c30873 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -68,7 +68,7 @@ function redirect(url, type, initiator) {
 	let redirectType

 	if (url.pathname == "/") return

 	for (const service in config.services) {

-		if (!options[service].enabled && !disableOverride) continue

+		if (!options[service].enabled) continue

 		let targets = service.targets

 		if (targets == "datajson") {

 			browser.storage.local.get(`${service}Targets`, (targets = r[service + "Targets"]))

@@ -385,12 +385,12 @@ function initDefaults() {
 			.then(response => response.text())

 			.then(async data => {

 				let dataJson = JSON.parse(data)

-				redirects = dataJson.slice()

+				redirects = JSON.parse(data)

 				browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], async r => {

 					for (const service in config.services) {

 						if (config.services[service].targets == "datajson") {

 							browser.storage.local.set({ [service + "Targets"]: [...dataJson[service]] })

-							delete redirects[service]

+							delete dataJson[service]

 						}

 						for (const defaultOption in config.services[service].options) {

 							browser.storage.local.set({ [service + utils.camelCase(defaultOption)]: config.services[service].options[defaultOption] })

@@ -422,7 +422,7 @@ function initDefaults() {
 					}

 				})

 				browser.storage.local.set({

-					redirects,

+					redirects: dataJson,

 				})

 				;() => resolve()

 			})

diff --git a/src/config/config.json b/src/config/config.json
index ac393f18..1c8f5f9f 100644
--- a/src/config/config.json
+++ b/src/config/config.json
@@ -102,7 +102,8 @@
 					"embedFrontend": "invidious"

 				},

 				"imageType": "png",

-				"embeddable": true

+				"embeddable": true,

+				"url": "https://youtube.com"

 			},

 			"youtubeMusic": {

 				"frontends": {

@@ -130,7 +131,8 @@
 					"frontend": "beatbump"

 				},

 				"imageType": "png",

-				"embeddable": false

+				"embeddable": false,

+				"url": "https://music.youtube.com"

 			},

 			"twitter": {

 				"frontends": {

@@ -169,7 +171,8 @@
 					"redirectType": "both"

 				},

 				"imageType": "png",

-				"embeddable": true

+				"embeddable": true,

+				"url": "https://twitter.com"

 			},

 			"instagram": {

 				"frontends": {

@@ -187,7 +190,8 @@
 				"name": "Instagram",

 				"options": { "enabled": true },

 				"imageType": "png",

-				"embeddable": false

+				"embeddable": false,

+				"url": "https://instagram.com"

 			},

 			"tiktok": {

 				"frontends": {

@@ -203,7 +207,8 @@
 				"name": "TikTok",

 				"options": { "enabled": true },

 				"imageType": "png",

-				"embeddable": false

+				"embeddable": false,

+				"url": "https://tiktok.com"

 			},

 			"reddit": {

 				"frontends": {

@@ -242,7 +247,8 @@
 					"frontend": "libreddit"

 				},

 				"imageType": "png",

-				"embeddable": false

+				"embeddable": false,

+				"url": "https://reddit.com"

 			},

 			"imgur": {

 				"frontends": {

@@ -256,7 +262,8 @@
 				"name": "Imgur",

 				"options": { "enabled": true },

 				"imageType": "png",

-				"embeddable": false

+				"embeddable": false,

+				"url": "https://imgur.com"

 			},

 			"wikipedia": {

 				"frontends": {

@@ -272,7 +279,8 @@
 				"name": "Wikipedia",

 				"options": { "enabled": false },

 				"imageType": "svg",

-				"embeddable": false

+				"embeddable": false,

+				"url": "https://wikipedia.com"

 			},

 			"medium": {

 				"frontends": {

@@ -304,8 +312,9 @@
 				],

 				"name": "Medium",

 				"options": { "enabled": true },

-				"imageType": "svg",

-				"embeddable": false

+				"imageType": "svgMono",

+				"embeddable": false,

+				"url": "https://medium.com"

 			},

 			"quora": {

 				"frontends": {

@@ -321,7 +330,8 @@
 				"name": "Quora",

 				"options": { "enabled": true },

 				"imageType": "png",

-				"embeddable": false

+				"embeddable": false,

+				"url": "https://quora.com"

 			},

 			"imdb": {

 				"frontends": {

@@ -337,7 +347,8 @@
 				"name": "IMDb",

 				"options": { "enabled": false },

 				"imageType": "svg",

-				"embeddable": false

+				"embeddable": false,

+				"url": "https://imdb.com"

 			},

 			"reuters": {

 				"frontends": {

@@ -351,7 +362,8 @@
 				"name": "Reuters",

 				"options": { "enabled": false },

 				"imageType": "svg",

-				"embeddable": false

+				"embeddable": false,

+				"url": "https://reuters.com"

 			},

 			"peertube": {

 				"frontends": {

@@ -365,7 +377,8 @@
 				"name": "PeerTube",

 				"options": { "enabled": false },

 				"imageType": "svg",

-				"embeddable": false

+				"embeddable": false,

+				"url": "https://search.joinpeertube.org"

 			},

 			"lbry": {

 				"frontends": {

@@ -389,10 +402,12 @@
 				"options": {

 					"enabled": false,

 					"frontend": "librarian",

-					"redirectType": "both"

+					"redirectType": "both",

+					"embedFrontend": "librarian"

 				},

 				"imageType": "png",

-				"embeddable": true

+				"embeddable": true,

+				"url": "https://odysee.com"

 			},

 			"search": {

 				"frontends": {

@@ -467,8 +482,9 @@
 					"enabled": true,

 					"frontend": "searxng"

 				},

-				"imageType": "svg",

-				"embeddable": false

+				"imageType": "svgMono",

+				"embeddable": false,

+				"url": "https://search.libredirect.invalid"

 			},

 			"translate": {

 				"frontends": {

@@ -493,8 +509,9 @@
 					"enabled": true,

 					"frontend": "simplyTranslate"

 				},

-				"imageType": "svg",

-				"embeddable": false

+				"imageType": "svgMono",

+				"embeddable": false,

+				"url": "https://translate.google.com"

 			},

 			"maps": {

 				"frontends": {

@@ -514,8 +531,9 @@
 					"enabled": true,

 					"frontend": "osm"

 				},

-				"imageType": "svg",

-				"embeddable": false

+				"imageType": "svgMono",

+				"embeddable": false,

+				"url": "https://maps.google.com"

 			},

 			"sendTargets": {

 				"frontends": {

@@ -528,8 +546,9 @@
 				"targets": ["^https?:\\/{2}send\\.libredirect\\.invalid\\/$", "^https?:\\/{2}send\\.firefox\\.com\\/$", "^https?:\\/{2}sendfiles\\.online\\/$"],

 				"name": "Send Files",

 				"options": { "enabled": true },

-				"imageType": "svg",

-				"embeddable": false

+				"imageType": "svgMono",

+				"embeddable": false,

+				"url": "https://send.libredirect.invalid"

 			}

 		}

 	}

diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py
index 2547917a..85bdf1cf 100644
--- a/src/instances/get_instances.py
+++ b/src/instances/get_instances.py
@@ -446,7 +446,7 @@ def peertube():
         'https://instances.joinpeertube.org/api/v1/instances?start=0&count=1045&sort=-createdAt')
     rJson = json.loads(r.text)
 
-    myList = []
+    myList = ['https://search.joinpeertube.org']
     for k in rJson['data']:
         myList.append('https://'+k['host'])
 
diff --git a/src/pages/options/index.html b/src/pages/options/index.html
index e1163e99..a23ff247 100644
--- a/src/pages/options/index.html
+++ b/src/pages/options/index.html
@@ -10,26 +10,85 @@
 </head>
   <body class="option" dir="auto">
   <section class="links" id="links">
-  <div class="title"><img src="../../../assets/images/general-icon.svg"><a href="#general" data-localise="__MSG_general__">General</a></div>
-    <div class="title"><img src="../../../assets/images/youtube-icon.png"><a href="#youtube" data-localise="__MSG_youtube__">youtube</a></div>
-    <div class="title"><img src="../../../assets/images/youtubeMusic-icon.png"><a href="#youtubeMusic" data-localise="__MSG_youtubeMusic__">youtubeMusic</a></div>
-    <div class="title"><img src="../../../assets/images/twitter-icon.png"><a href="#twitter" data-localise="__MSG_twitter__">twitter</a></div>
-    <div class="title"><img src="../../../assets/images/instagram-icon.png"><a href="#instagram" data-localise="__MSG_instagram__">instagram</a></div>
-    <div class="title"><img src="../../../assets/images/tiktok-icon.png"><a href="#tiktok" data-localise="__MSG_tiktok__">tiktok</a></div>
-    <div class="title"><img src="../../../assets/images/reddit-icon.png"><a href="#reddit" data-localise="__MSG_reddit__">reddit</a></div>
-    <div class="title"><img src="../../../assets/images/imgur-icon.png"><a href="#imgur" data-localise="__MSG_imgur__">imgur</a></div>
-    <div class="title"><img src="../../../assets/images/wikipedia-icon.svg"><a href="#wikipedia" data-localise="__MSG_wikipedia__">wikipedia</a></div>
-    <div class="title"><img src="../../../assets/images/medium-icon.svg"><a href="#medium" data-localise="__MSG_medium__">medium</a></div>
-    <div class="title"><img src="../../../assets/images/quora-icon.png"><a href="#quora" data-localise="__MSG_quora__">quora</a></div>
-    <div class="title"><img src="../../../assets/images/imdb-icon.svg"><a href="#imdb" data-localise="__MSG_imdb__">imdb</a></div>
-    <div class="title"><img src="../../../assets/images/reuters-icon.svg"><a href="#reuters" data-localise="__MSG_reuters__">reuters</a></div>
-    <div class="title"><img src="../../../assets/images/peertube-icon.svg"><a href="#peertube" data-localise="__MSG_peertube__">peertube</a></div>
-    <div class="title"><img src="../../../assets/images/lbry-icon.png"><a href="#lbry" data-localise="__MSG_lbry__">lbry</a></div>
-    <div class="title"><img src="../../../assets/images/search-icon.svg"><a href="#search" data-localise="__MSG_search__">search</a></div>
-    <div class="title"><img src="../../../assets/images/translate-icon.svg"><a href="#translate" data-localise="__MSG_translate__">translate</a></div>
-    <div class="title"><img src="../../../assets/images/maps-icon.svg"><a href="#maps" data-localise="__MSG_maps__">maps</a></div>
-    <div class="title"><img src="../../../assets/images/sendTargets-icon.svg"><a href="#sendTargets" data-localise="__MSG_sendTargets__">sendTargets</a></div>
-    <div class="title"><img src="../../../assets/images/about-icon.svg"><a href="#about" data-localise="__MSG_about__">About</a></div>
+  <div class="title"><svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor">
+  <path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"></path>
+</svg>
+<a href="#general" data-localise="__MSG_general__">General</a></div>
+    <div class="title">
+    <img src="../../../assets/images/youtube-icon.png">
+    <a href="#youtube" data-localise="__MSG_youtube__">youtube</a></div>
+    <div class="title">
+    <img src="../../../assets/images/youtubeMusic-icon.png">
+    <a href="#youtubeMusic" data-localise="__MSG_youtubeMusic__">youtubeMusic</a></div>
+    <div class="title">
+    <img src="../../../assets/images/twitter-icon.png">
+    <a href="#twitter" data-localise="__MSG_twitter__">twitter</a></div>
+    <div class="title">
+    <img src="../../../assets/images/instagram-icon.png">
+    <a href="#instagram" data-localise="__MSG_instagram__">instagram</a></div>
+    <div class="title">
+    <img src="../../../assets/images/tiktok-icon.png">
+    <a href="#tiktok" data-localise="__MSG_tiktok__">tiktok</a></div>
+    <div class="title">
+    <img src="../../../assets/images/reddit-icon.png">
+    <a href="#reddit" data-localise="__MSG_reddit__">reddit</a></div>
+    <div class="title">
+    <img src="../../../assets/images/imgur-icon.png">
+    <a href="#imgur" data-localise="__MSG_imgur__">imgur</a></div>
+    <div class="title">
+    <img src="../../../assets/images/wikipedia-icon.svg">
+    <a href="#wikipedia" data-localise="__MSG_wikipedia__">wikipedia</a></div>
+    <div class="title">
+    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
+  <circle cx="500" cy="500" r="500"></circle>
+  <ellipse ry="475" rx="250" cy="501" cx="1296"></ellipse>
+  <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
+</svg>
+
+    <a href="#medium" data-localise="__MSG_medium__">medium</a></div>
+    <div class="title">
+    <img src="../../../assets/images/quora-icon.png">
+    <a href="#quora" data-localise="__MSG_quora__">quora</a></div>
+    <div class="title">
+    <img src="../../../assets/images/imdb-icon.svg">
+    <a href="#imdb" data-localise="__MSG_imdb__">imdb</a></div>
+    <div class="title">
+    <img src="../../../assets/images/reuters-icon.svg">
+    <a href="#reuters" data-localise="__MSG_reuters__">reuters</a></div>
+    <div class="title">
+    <img src="../../../assets/images/peertube-icon.svg">
+    <a href="#peertube" data-localise="__MSG_peertube__">peertube</a></div>
+    <div class="title">
+    <img src="../../../assets/images/lbry-icon.png">
+    <a href="#lbry" data-localise="__MSG_lbry__">lbry</a></div>
+    <div class="title">
+    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
+  <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
+</svg>
+
+    <a href="#search" data-localise="__MSG_search__">search</a></div>
+    <div class="title">
+    <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+  <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
+</svg>
+
+    <a href="#translate" data-localise="__MSG_translate__">translate</a></div>
+    <div class="title">
+    <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+  <path d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"></path>
+</svg>
+
+    <a href="#maps" data-localise="__MSG_maps__">maps</a></div>
+    <div class="title">
+    <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+  <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
+</svg>
+
+    <a href="#sendTargets" data-localise="__MSG_sendTargets__">sendTargets</a></div>
+    <div class="title"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" fill="currentColor">
+  <path d="M11 17h2v-6h-2Zm1-8q.425 0 .713-.288Q13 8.425 13 8t-.287-.713Q12.425 7 12 7t-.712.287Q11 7.575 11 8t.288.712Q11.575 9 12 9Zm0 13q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q3.35 0 5.675-2.325Q20 15.35 20 12q0-3.35-2.325-5.675Q15.35 4 12 4 8.65 4 6.325 6.325 4 8.65 4 12q0 3a.35 2.325 5.675Q8.65 20 12 20Zm0-8Z"></path>
+</svg>
+<a href="#about" data-localise="__MSG_about__">About</a></div>
 </section>
     <div id="pages">
       <section class="option-block" id="general_page">
@@ -169,7 +228,7 @@
       <input id="wikipedia" type="checkbox">
     </div>
     <div>
-      <div><img src="../../../assets/images/medium-icon.svg">
+      <div><img src="../../../assets/images/medium-icon.svgMono">
         <x data-localise="__MSG_medium__">medium</x>
       </div>
       <input id="medium" type="checkbox">
@@ -205,25 +264,25 @@
       <input id="lbry" type="checkbox">
     </div>
     <div>
-      <div><img src="../../../assets/images/search-icon.svg">
+      <div><img src="../../../assets/images/search-icon.svgMono">
         <x data-localise="__MSG_search__">search</x>
       </div>
       <input id="search" type="checkbox">
     </div>
     <div>
-      <div><img src="../../../assets/images/translate-icon.svg">
+      <div><img src="../../../assets/images/translate-icon.svgMono">
         <x data-localise="__MSG_translate__">translate</x>
       </div>
       <input id="translate" type="checkbox">
     </div>
     <div>
-      <div><img src="../../../assets/images/maps-icon.svg">
+      <div><img src="../../../assets/images/maps-icon.svgMono">
         <x data-localise="__MSG_maps__">maps</x>
       </div>
       <input id="maps" type="checkbox">
     </div>
     <div>
-      <div><img src="../../../assets/images/sendTargets-icon.svg">
+      <div><img src="../../../assets/images/sendTargets-icon.svgMono">
         <x data-localise="__MSG_sendTargets__">sendTargets</x>
       </div>
       <input id="sendTargets" type="checkbox">
diff --git a/src/pages/options/widgets/services.js b/src/pages/options/widgets/services.js
index 69840de4..b595943e 100644
--- a/src/pages/options/widgets/services.js
+++ b/src/pages/options/widgets/services.js
@@ -53,7 +53,7 @@ function changeFrontendsSettings(service) {
 					}
 				}
 			}
-		} else if (Object.keys(config.services[service].frontends) > 1) divs[service].embedFrontend.disabled = true
+		} else if (Object.keys(config.services[service].frontends).length > 1) divs[service].embedFrontend.disabled = true
 	}
 }
 
diff --git a/src/pages/popup/popup.ejs b/src/pages/popup/popup.ejs
new file mode 100644
index 00000000..efb73e5c
--- /dev/null
+++ b/src/pages/popup/popup.ejs
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link href="../stylesheets/styles.css" rel="stylesheet">
+    <link href="./style.css" rel="stylesheet">
+  </head>
+  <body dir="auto">
+    <div class="current_site">
+      <%- include('src/pages/widgets/switches', {config: config}) -%>
+      <div id="current_site_divider">
+        <hr>
+      </div>
+    </div>
+    <div class="all_sites">
+      <%- include('src/pages/widgets/switches', {config: config}) -%>
+    </div>
+    <hr>
+    <div class="some-block" id="change_instance_div"><a class="title button prevent" id="change_instance">
+        <h4 data-localise="__MSG_switchInstance__">Change Instance</h4>
+        <svg xmlns="http://www.w3.org/2000/svg" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor">
+          <path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"></path>
+        </svg></a></div>
+    <div class="some-block" id="copy_raw_div" title="Copy the original redirected link">        <a class="title button prevent" id="copy_raw">
+        <h4 data-localise="__MSG_copyRaw__">Copy Raw</h4>
+        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+          <path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"></path>
+        </svg></a></div>
+    <div class="some-block" id="unify_div" title="Unify cookies across all selected instances"><a class="title button prevent" id="unify">
+        <h4 data-localise="__MSG_unifySettings__">Unify Settings</h4>
+        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+          <path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path>
+        </svg></a></div>
+    <div class="some-block"><a class="title button prevent" id="more-options">
+        <h4 data-localise="__MSG_settings__">Settings</h4>
+        <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor">
+          <path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"></path>
+        </svg></a></div>
+    <div class="some-block"><a class="title button" id="about" href="/pages/options/index.html#about">
+        <h4 data-localise="__MSG_about__">About</h4>
+        <svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" fill="currentColor">
+          <path d="M11 17h2v-6h-2Zm1-8q.425 0 .713-.288Q13 8.425 13 8t-.287-.713Q12.425 7 12 7t-.712.287Q11 7.575 11 8t.288.712Q11.575 9 12 9Zm0 13q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q3.35 0 5.675-2.325Q20 15.35 20 12q0-3.35-2.325-5.675Q15.35 4 12 4 8.65 4 6.325 6.325 4 8.65 4 12q0 3a.35 2.325 5.675Q8.65 20 12 20Zm0-8Z"></path>
+        </svg></a></div>
+    <div class="space"></div>
+    <script type="module" src="../options/init.js"></script>
+    <script type="module" src="./popup.js"></script>
+  </body>
+</html>
diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html
index 25f70f48..e21a63a0 100644
--- a/src/pages/popup/popup.html
+++ b/src/pages/popup/popup.html
@@ -8,189 +8,227 @@
   </head>
   <body dir="auto">
     <div class="current_site">
-      <div class="youtube some-block"><a class="title" href="https://youtube.com"><img src="../../assets/images/youtube-icon.png"/>
-          <h4 data-localise="__MSG_youtube__">YouTube</h4></a>
-        <input class="disable-youtube" type="checkbox"/>
-      </div>
-      <div class="youtubeMusic some-block"><a class="title" href="https://music.youtube.com"><img src="../../assets/images/youtube-music-icon.png"/>
-          <h4 data-localise="__MSG_ytmusic__">YT Music</h4></a>
-        <input class="disable-youtubeMusic" type="checkbox"/>
-      </div>
-      <div class="twitter some-block"><a class="title" href="https://twitter.com"><img src="../../assets/images/twitter-icon.png"/>
-          <h4 data-localise="__MSG_twitter__">Twitter</h4></a>
-        <input class="disable-nitter" type="checkbox"/>
-      </div>
-      <div class="instagram some-block"><a class="title" href="https://instagram.com"><img src="../../assets/images/instagram-icon.png"/>
-          <h4 data-localise="__MSG_instagram__">Instagram</h4></a>
-        <input class="disable-bibliogram" type="checkbox"/>
-      </div>
-      <div class="tiktok some-block"><a class="title" href="https://tiktok.com"><img src="../../assets/images/tiktok-icon.png"/>
-          <h4 data-localise="__MSG_tiktok__">TikTok</h4></a>
-        <input class="disable-tiktok" type="checkbox"/>
-      </div>
-      <div class="imgur some-block"><a class="title" href="https://imgur.com"><img src="../../assets/images/imgur.png"/>
-          <h4 data-localise="__MSG_imgur__">Imgur</h4></a>
-        <input class="disable-imgur" type="checkbox"/>
-      </div>
-      <div class="reddit some-block"><a class="title" href="https://reddit.com"><img src="../../assets/images/reddit-icon.png"/>
-          <h4 data-localise="__MSG_reddit__">Reddit</h4></a>
-        <input class="disable-reddit" type="checkbox"/>
-      </div>
-      <div class="wikipedia some-block"><a class="title" href="https://wikipedia.com"><img src="../../assets/images/wikipedia-icon.svg"/>
-          <h4 data-localise="__MSG_wikipedia__">Wikipedia</h4></a>
-        <input class="disable-wikipedia" type="checkbox"/>
-      </div>
-      <div class="medium some-block"><a class="title" href="https://medium.com">
-          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
-            <circle cx="500" cy="500" r="500"></circle>
-            <ellipse ry="475" rx="250" cy="501" cx="1296"></ellipse>
-            <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
-          </svg>
-          <h4 data-localise="__MSG_medium__">Medium</h4></a>
-        <input class="disable-medium" type="checkbox"/>
-      </div>
-      <div class="quora some-block"><a class="title" href="https://quora.com"><img src="../../assets/images/quora.png"/>
-          <h4 data-localise="__MSG_quora__">Quora</h4></a>
-        <input class="disable-quora" type="checkbox"/>
-      </div>
-      <div class="imdb some-block"><a class="title" href="https://imdb.com"><img src="../../assets/images/imdb.svg"/>
-          <h4 data-localise="__MSG_imdb__">IMDb</h4></a>
-        <input class="disable-imdb" type="checkbox"/>
-      </div>
-      <div class="reuters some-block"><a class="title" href="https://reuters.com"><img src="../../assets/images/reuters.svg"/>
-          <h4 data-localise="__MSG_reuters__">Reuters</h4></a>
-        <input class="disable-reuters" type="checkbox"/>
-      </div>
-      <div class="peertube some-block"><a class="title" href="https://search.joinpeertube.org"><img src="../../assets/images/peertube-icon.svg"/>
-          <h4 data-localise="__MSG_peertube__">PeerTube</h4></a>
-        <input class="disable-peertube" type="checkbox"/>
-      </div>
-      <div class="lbry some-block"><a class="title" href="https://odysee.com/"><img src="../../assets/images/lbry-icon.png"/>
-          <h4 data-localise="__MSG_lbry__">LBRY</h4></a>
-        <input class="disable-lbry" type="checkbox"/>
-      </div>
-      <div class="search some-block"><a class="title" href="https://search.libredirect.invalid">
-          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
-            <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
-          </svg>
-          <h4 data-localise="__MSG_search__">Search</h4></a>
-        <input class="disable-search" type="checkbox"/>
-      </div>
-      <div class="translate some-block"><a class="title" href="https://translate.google.com">
-          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-            <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
-          </svg>
-          <h4 data-localise="__MSG_translate__">Translate</h4></a>
-        <input class="disable-translate" type="checkbox"/>
-      </div>
-      <div class="maps some-block"><a class="title" href="https://www.openstreetmap.org">
-          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-            <path d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"></path>
-          </svg>
-          <h4 data-localise="__MSG_maps__">Maps</h4></a>
-        <input class="disable-osm" type="checkbox"/>
-      </div>
-      <div class="sendTargets some-block"><a class="title" href="https://send.libredirect.invalid">
-          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-            <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
-          </svg>
-          <h4 data-localise="__MSG_sendFiles__">Send Files</h4></a>
-        <input class="disable-sendTargets" type="checkbox"/>
-      </div>
+      <div class="youtube some-block"><a class="title" href="https://youtube.com">
+    <img src="../../assets/images/youtube-icon.png"/>
+    <h4 data-localise="__MSG_youtube__">Youtube</h4></a>
+  <input class="youtube-enabled" type="checkbox"/>
+</div>
+<div class="youtubeMusic some-block"><a class="title" href="https://music.youtube.com">
+    <img src="../../assets/images/youtubeMusic-icon.png"/>
+    <h4 data-localise="__MSG_youtubeMusic__">YT Music</h4></a>
+  <input class="youtubeMusic-enabled" type="checkbox"/>
+</div>
+<div class="twitter some-block"><a class="title" href="https://twitter.com">
+    <img src="../../assets/images/twitter-icon.png"/>
+    <h4 data-localise="__MSG_twitter__">Twitter</h4></a>
+  <input class="twitter-enabled" type="checkbox"/>
+</div>
+<div class="instagram some-block"><a class="title" href="https://instagram.com">
+    <img src="../../assets/images/instagram-icon.png"/>
+    <h4 data-localise="__MSG_instagram__">Instagram</h4></a>
+  <input class="instagram-enabled" type="checkbox"/>
+</div>
+<div class="tiktok some-block"><a class="title" href="https://tiktok.com">
+    <img src="../../assets/images/tiktok-icon.png"/>
+    <h4 data-localise="__MSG_tiktok__">TikTok</h4></a>
+  <input class="tiktok-enabled" type="checkbox"/>
+</div>
+<div class="reddit some-block"><a class="title" href="https://reddit.com">
+    <img src="../../assets/images/reddit-icon.png"/>
+    <h4 data-localise="__MSG_reddit__">Reddit</h4></a>
+  <input class="reddit-enabled" type="checkbox"/>
+</div>
+<div class="imgur some-block"><a class="title" href="https://imgur.com">
+    <img src="../../assets/images/imgur-icon.png"/>
+    <h4 data-localise="__MSG_imgur__">Imgur</h4></a>
+  <input class="imgur-enabled" type="checkbox"/>
+</div>
+<div class="wikipedia some-block"><a class="title" href="https://wikipedia.com">
+    <img src="../../assets/images/wikipedia-icon.svg"/>
+    <h4 data-localise="__MSG_wikipedia__">Wikipedia</h4></a>
+  <input class="wikipedia-enabled" type="checkbox"/>
+</div>
+<div class="medium some-block"><a class="title" href="https://medium.com">
+    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
+  <circle cx="500" cy="500" r="500"></circle>
+  <ellipse ry="475" rx="250" cy="501" cx="1296"></ellipse>
+  <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
+</svg>
+
+    <h4 data-localise="__MSG_medium__">Medium</h4></a>
+  <input class="medium-enabled" type="checkbox"/>
+</div>
+<div class="quora some-block"><a class="title" href="https://quora.com">
+    <img src="../../assets/images/quora-icon.png"/>
+    <h4 data-localise="__MSG_quora__">Quora</h4></a>
+  <input class="quora-enabled" type="checkbox"/>
+</div>
+<div class="imdb some-block"><a class="title" href="https://imdb.com">
+    <img src="../../assets/images/imdb-icon.svg"/>
+    <h4 data-localise="__MSG_imdb__">IMDb</h4></a>
+  <input class="imdb-enabled" type="checkbox"/>
+</div>
+<div class="reuters some-block"><a class="title" href="https://reuters.com">
+    <img src="../../assets/images/reuters-icon.svg"/>
+    <h4 data-localise="__MSG_reuters__">Reuters</h4></a>
+  <input class="reuters-enabled" type="checkbox"/>
+</div>
+<div class="peertube some-block"><a class="title" href="https://search.joinpeertube.org">
+    <img src="../../assets/images/peertube-icon.svg"/>
+    <h4 data-localise="__MSG_peertube__">PeerTube</h4></a>
+  <input class="peertube-enabled" type="checkbox"/>
+</div>
+<div class="lbry some-block"><a class="title" href="https://odysee.com">
+    <img src="../../assets/images/lbry-icon.png"/>
+    <h4 data-localise="__MSG_lbry__">LBRY</h4></a>
+  <input class="lbry-enabled" type="checkbox"/>
+</div>
+<div class="search some-block"><a class="title" href="https://search.libredirect.invalid">
+    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
+  <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
+</svg>
+
+    <h4 data-localise="__MSG_search__">Search</h4></a>
+  <input class="search-enabled" type="checkbox"/>
+</div>
+<div class="translate some-block"><a class="title" href="https://translate.google.com">
+    <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+  <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
+</svg>
+
+    <h4 data-localise="__MSG_translate__">Translate</h4></a>
+  <input class="translate-enabled" type="checkbox"/>
+</div>
+<div class="maps some-block"><a class="title" href="https://maps.google.com">
+    <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+  <path d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"></path>
+</svg>
+
+    <h4 data-localise="__MSG_maps__">Maps</h4></a>
+  <input class="maps-enabled" type="checkbox"/>
+</div>
+<div class="sendTargets some-block"><a class="title" href="https://send.libredirect.invalid">
+    <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+  <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
+</svg>
+
+    <h4 data-localise="__MSG_sendTargets__">Send Files</h4></a>
+  <input class="sendTargets-enabled" type="checkbox"/>
+</div>
+
       <div id="current_site_divider">
         <hr>
       </div>
     </div>
     <div class="all_sites">
-      <div class="youtube some-block"><a class="title" href="https://youtube.com"><img src="../../assets/images/youtube-icon.png"/>
-          <h4 data-localise="__MSG_youtube__">YouTube</h4></a>
-        <input class="disable-youtube" type="checkbox"/>
-      </div>
-      <div class="youtubeMusic some-block"><a class="title" href="https://music.youtube.com"><img src="../../assets/images/youtube-music-icon.png"/>
-          <h4 data-localise="__MSG_ytmusic__">YT Music</h4></a>
-        <input class="disable-youtubeMusic" type="checkbox"/>
-      </div>
-      <div class="twitter some-block"><a class="title" href="https://twitter.com"><img src="../../assets/images/twitter-icon.png"/>
-          <h4 data-localise="__MSG_twitter__">Twitter</h4></a>
-        <input class="disable-nitter" type="checkbox"/>
-      </div>
-      <div class="instagram some-block"><a class="title" href="https://instagram.com"><img src="../../assets/images/instagram-icon.png"/>
-          <h4 data-localise="__MSG_instagram__">Instagram</h4></a>
-        <input class="disable-bibliogram" type="checkbox"/>
-      </div>
-      <div class="tiktok some-block"><a class="title" href="https://tiktok.com"><img src="../../assets/images/tiktok-icon.png"/>
-          <h4 data-localise="__MSG_tiktok__">TikTok</h4></a>
-        <input class="disable-tiktok" type="checkbox"/>
-      </div>
-      <div class="imgur some-block"><a class="title" href="https://imgur.com"><img src="../../assets/images/imgur.png"/>
-          <h4 data-localise="__MSG_imgur__">Imgur</h4></a>
-        <input class="disable-imgur" type="checkbox"/>
-      </div>
-      <div class="reddit some-block"><a class="title" href="https://reddit.com"><img src="../../assets/images/reddit-icon.png"/>
-          <h4 data-localise="__MSG_reddit__">Reddit</h4></a>
-        <input class="disable-reddit" type="checkbox"/>
-      </div>
-      <div class="wikipedia some-block"><a class="title" href="https://wikipedia.com"><img src="../../assets/images/wikipedia-icon.svg"/>
-          <h4 data-localise="__MSG_wikipedia__">Wikipedia</h4></a>
-        <input class="disable-wikipedia" type="checkbox"/>
-      </div>
-      <div class="medium some-block"><a class="title" href="https://medium.com">
-          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
-            <circle cx="500" cy="500" r="500"></circle>
-            <ellipse ry="475" rx="250" cy="501" cx="1296"></ellipse>
-            <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
-          </svg>
-          <h4 data-localise="__MSG_medium__">Medium</h4></a>
-        <input class="disable-medium" type="checkbox"/>
-      </div>
-      <div class="quora some-block"><a class="title" href="https://quora.com"><img src="../../assets/images/quora.png"/>
-          <h4 data-localise="__MSG_quora__">Quora</h4></a>
-        <input class="disable-quora" type="checkbox"/>
-      </div>
-      <div class="imdb some-block"><a class="title" href="https://imdb.com"><img src="../../assets/images/imdb.svg"/>
-          <h4 data-localise="__MSG_imdb__">IMDb</h4></a>
-        <input class="disable-imdb" type="checkbox"/>
-      </div>
-      <div class="reuters some-block"><a class="title" href="https://reuters.com"><img src="../../assets/images/reuters.svg"/>
-          <h4 data-localise="__MSG_reuters__">Reuters</h4></a>
-        <input class="disable-reuters" type="checkbox"/>
-      </div>
-      <div class="peertube some-block"><a class="title" href="https://search.joinpeertube.org"><img src="../../assets/images/peertube-icon.svg"/>
-          <h4 data-localise="__MSG_peertube__">PeerTube</h4></a>
-        <input class="disable-peertube" type="checkbox"/>
-      </div>
-      <div class="lbry some-block"><a class="title" href="https://odysee.com/"><img src="../../assets/images/lbry-icon.png"/>
-          <h4 data-localise="__MSG_lbry__">LBRY</h4></a>
-        <input class="disable-lbry" type="checkbox"/>
-      </div>
-      <div class="search some-block"><a class="title" href="https://search.libredirect.invalid">
-          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
-            <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
-          </svg>
-          <h4 data-localise="__MSG_search__">Search</h4></a>
-        <input class="disable-search" type="checkbox"/>
-      </div>
-      <div class="translate some-block"><a class="title" href="https://translate.google.com">
-          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-            <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
-          </svg>
-          <h4 data-localise="__MSG_translate__">Translate</h4></a>
-        <input class="disable-translate" type="checkbox"/>
-      </div>
-      <div class="maps some-block"><a class="title" href="https://www.openstreetmap.org">
-          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-            <path d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"></path>
-          </svg>
-          <h4 data-localise="__MSG_maps__">Maps</h4></a>
-        <input class="disable-osm" type="checkbox"/>
-      </div>
-      <div class="sendTargets some-block"><a class="title" href="https://send.libredirect.invalid">
-          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-            <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
-          </svg>
-          <h4 data-localise="__MSG_sendFiles__">Send Files</h4></a>
-        <input class="disable-sendTargets" type="checkbox"/>
-      </div>
+      <div class="youtube some-block"><a class="title" href="https://youtube.com">
+    <img src="../../assets/images/youtube-icon.png"/>
+    <h4 data-localise="__MSG_youtube__">Youtube</h4></a>
+  <input class="youtube-enabled" type="checkbox"/>
+</div>
+<div class="youtubeMusic some-block"><a class="title" href="https://music.youtube.com">
+    <img src="../../assets/images/youtubeMusic-icon.png"/>
+    <h4 data-localise="__MSG_youtubeMusic__">YT Music</h4></a>
+  <input class="youtubeMusic-enabled" type="checkbox"/>
+</div>
+<div class="twitter some-block"><a class="title" href="https://twitter.com">
+    <img src="../../assets/images/twitter-icon.png"/>
+    <h4 data-localise="__MSG_twitter__">Twitter</h4></a>
+  <input class="twitter-enabled" type="checkbox"/>
+</div>
+<div class="instagram some-block"><a class="title" href="https://instagram.com">
+    <img src="../../assets/images/instagram-icon.png"/>
+    <h4 data-localise="__MSG_instagram__">Instagram</h4></a>
+  <input class="instagram-enabled" type="checkbox"/>
+</div>
+<div class="tiktok some-block"><a class="title" href="https://tiktok.com">
+    <img src="../../assets/images/tiktok-icon.png"/>
+    <h4 data-localise="__MSG_tiktok__">TikTok</h4></a>
+  <input class="tiktok-enabled" type="checkbox"/>
+</div>
+<div class="reddit some-block"><a class="title" href="https://reddit.com">
+    <img src="../../assets/images/reddit-icon.png"/>
+    <h4 data-localise="__MSG_reddit__">Reddit</h4></a>
+  <input class="reddit-enabled" type="checkbox"/>
+</div>
+<div class="imgur some-block"><a class="title" href="https://imgur.com">
+    <img src="../../assets/images/imgur-icon.png"/>
+    <h4 data-localise="__MSG_imgur__">Imgur</h4></a>
+  <input class="imgur-enabled" type="checkbox"/>
+</div>
+<div class="wikipedia some-block"><a class="title" href="https://wikipedia.com">
+    <img src="../../assets/images/wikipedia-icon.svg"/>
+    <h4 data-localise="__MSG_wikipedia__">Wikipedia</h4></a>
+  <input class="wikipedia-enabled" type="checkbox"/>
+</div>
+<div class="medium some-block"><a class="title" href="https://medium.com">
+    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
+  <circle cx="500" cy="500" r="500"></circle>
+  <ellipse ry="475" rx="250" cy="501" cx="1296"></ellipse>
+  <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
+</svg>
+
+    <h4 data-localise="__MSG_medium__">Medium</h4></a>
+  <input class="medium-enabled" type="checkbox"/>
+</div>
+<div class="quora some-block"><a class="title" href="https://quora.com">
+    <img src="../../assets/images/quora-icon.png"/>
+    <h4 data-localise="__MSG_quora__">Quora</h4></a>
+  <input class="quora-enabled" type="checkbox"/>
+</div>
+<div class="imdb some-block"><a class="title" href="https://imdb.com">
+    <img src="../../assets/images/imdb-icon.svg"/>
+    <h4 data-localise="__MSG_imdb__">IMDb</h4></a>
+  <input class="imdb-enabled" type="checkbox"/>
+</div>
+<div class="reuters some-block"><a class="title" href="https://reuters.com">
+    <img src="../../assets/images/reuters-icon.svg"/>
+    <h4 data-localise="__MSG_reuters__">Reuters</h4></a>
+  <input class="reuters-enabled" type="checkbox"/>
+</div>
+<div class="peertube some-block"><a class="title" href="https://search.joinpeertube.org">
+    <img src="../../assets/images/peertube-icon.svg"/>
+    <h4 data-localise="__MSG_peertube__">PeerTube</h4></a>
+  <input class="peertube-enabled" type="checkbox"/>
+</div>
+<div class="lbry some-block"><a class="title" href="https://odysee.com">
+    <img src="../../assets/images/lbry-icon.png"/>
+    <h4 data-localise="__MSG_lbry__">LBRY</h4></a>
+  <input class="lbry-enabled" type="checkbox"/>
+</div>
+<div class="search some-block"><a class="title" href="https://search.libredirect.invalid">
+    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
+  <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
+</svg>
+
+    <h4 data-localise="__MSG_search__">Search</h4></a>
+  <input class="search-enabled" type="checkbox"/>
+</div>
+<div class="translate some-block"><a class="title" href="https://translate.google.com">
+    <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+  <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
+</svg>
+
+    <h4 data-localise="__MSG_translate__">Translate</h4></a>
+  <input class="translate-enabled" type="checkbox"/>
+</div>
+<div class="maps some-block"><a class="title" href="https://maps.google.com">
+    <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+  <path d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"></path>
+</svg>
+
+    <h4 data-localise="__MSG_maps__">Maps</h4></a>
+  <input class="maps-enabled" type="checkbox"/>
+</div>
+<div class="sendTargets some-block"><a class="title" href="https://send.libredirect.invalid">
+    <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+  <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
+</svg>
+
+    <h4 data-localise="__MSG_sendTargets__">Send Files</h4></a>
+  <input class="sendTargets-enabled" type="checkbox"/>
+</div>
+
     </div>
     <hr>
     <div class="some-block" id="change_instance_div"><a class="title button prevent" id="change_instance">
@@ -222,4 +260,4 @@
     <script type="module" src="../options/init.js"></script>
     <script type="module" src="./popup.js"></script>
   </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/src/pages/popup/popup.pug b/src/pages/popup/popup.pug
deleted file mode 100644
index 7da687cc..00000000
--- a/src/pages/popup/popup.pug
+++ /dev/null
@@ -1,155 +0,0 @@
-include ../widgets/icons.pug
-
-mixin services
-    .youtube.some-block
-        a.title(href="https://youtube.com")
-            img(src="../../assets/images/youtube-icon.png")
-            h4(data-localise="__MSG_youtube__") YouTube
-        input.disable-youtube(type="checkbox")
-
-    .youtubeMusic.some-block
-        a.title(href="https://music.youtube.com")
-            img(src="../../assets/images/youtube-music-icon.png")
-            h4(data-localise="__MSG_ytmusic__") YT Music
-        input.disable-youtubeMusic(type="checkbox")
-
-    .twitter.some-block
-        a.title(href="https://twitter.com")
-            img(src="../../assets/images/twitter-icon.png")
-            h4(data-localise="__MSG_twitter__") Twitter
-        input.disable-nitter(type="checkbox")
-
-    .instagram.some-block
-        a.title(href="https://instagram.com")
-            img(src="../../assets/images/instagram-icon.png")
-            h4(data-localise="__MSG_instagram__") Instagram
-        input.disable-bibliogram(type="checkbox")
-
-    .tiktok.some-block
-        a.title(href="https://tiktok.com")
-            img(src="../../assets/images/tiktok-icon.png")
-            h4(data-localise="__MSG_tiktok__") TikTok
-        input.disable-tiktok(type="checkbox")
-
-    .imgur.some-block
-        a.title(href="https://imgur.com")
-            img(src="../../assets/images/imgur.png")
-            h4(data-localise="__MSG_imgur__") Imgur
-        input.disable-imgur(type="checkbox")
-
-    .reddit.some-block
-        a.title(href="https://reddit.com")
-            img(src="../../assets/images/reddit-icon.png")
-            h4(data-localise="__MSG_reddit__") Reddit
-        input.disable-reddit(type="checkbox")
-
-    .wikipedia.some-block
-        a.title(href="https://wikipedia.com")
-            img(src="../../assets/images/wikipedia-icon.svg")
-            h4(data-localise="__MSG_wikipedia__") Wikipedia
-        input.disable-wikipedia(type="checkbox")
-
-    .medium.some-block
-        a.title(href="https://medium.com")
-            +medium
-            h4(data-localise="__MSG_medium__") Medium
-        input.disable-medium(type="checkbox")
-
-    .quora.some-block
-        a.title(href="https://quora.com")
-            img(src="../../assets/images/quora.png")
-            h4(data-localise="__MSG_quora__") Quora
-        input.disable-quora(type="checkbox")
-    
-    .imdb.some-block
-        a.title(href="https://imdb.com")
-            img(src="../../assets/images/imdb.svg")
-            h4(data-localise="__MSG_imdb__") IMDb
-        input.disable-imdb(type="checkbox")
-
-    .reuters.some-block
-        a.title(href="https://reuters.com")
-            img(src="../../assets/images/reuters.svg")
-            h4(data-localise="__MSG_reuters__") Reuters
-        input.disable-reuters(type="checkbox")
-
-    .peertube.some-block
-        a.title(href="https://search.joinpeertube.org")
-            img(src="../../assets/images/peertube-icon.svg")
-            h4(data-localise="__MSG_peertube__") PeerTube
-        input.disable-peertube(type="checkbox")
-
-    .lbry.some-block
-        a.title(href="https://odysee.com/")
-            img(src="../../assets/images/lbry-icon.png")
-            h4(data-localise="__MSG_lbry__") LBRY
-        input.disable-lbry(type="checkbox")
-
-    .search.some-block
-        a.title(href="https://search.libredirect.invalid")
-            +search
-            h4(data-localise="__MSG_search__") Search
-        input.disable-search(type="checkbox")
-
-    .translate.some-block
-        a.title(href="https://translate.google.com")
-            +translate
-            h4(data-localise="__MSG_translate__") Translate
-        input.disable-translate(type="checkbox")
-
-    .maps.some-block
-        a.title(href="https://www.openstreetmap.org")
-            +maps
-            h4(data-localise="__MSG_maps__") Maps
-        input.disable-osm(type="checkbox")
-
-    .sendTargets.some-block
-        a.title(href="https://send.libredirect.invalid")
-            +send
-            h4(data-localise="__MSG_sendFiles__") Send Files
-        input.disable-sendTargets(type="checkbox")
-
-doctype html
-html(lang="en")
-    head
-        meta(charset="utf-8")
-        meta(name="viewport" content="width=device-width, initial-scale=1")
-        link(href="../stylesheets/styles.css" rel="stylesheet")
-        link(href="./style.css" rel="stylesheet")
-    body(dir="auto")
-        .current_site
-            +services
-            #current_site_divider
-                hr
-        .all_sites
-            +services
-        hr
-        #change_instance_div.some-block
-            a#change_instance.title.button.prevent
-                h4(data-localise="__MSG_switchInstance__") Change Instance
-                +change_instance
-
-        #copy_raw_div.some-block(title="Copy the original redirected link")         
-            a#copy_raw.title.button.prevent
-                h4(data-localise="__MSG_copyRaw__") Copy Raw
-                +copy_raw
-
-        #unify_div.some-block(title="Unify cookies across all selected instances")
-            a#unify.title.button.prevent
-                h4(data-localise="__MSG_unifySettings__") Unify Settings
-                +unify
-
-        .some-block
-            a#more-options.title.button.prevent
-                h4(data-localise="__MSG_settings__") Settings
-                +settings
-
-        .some-block
-            a#about.title.button(href="/pages/options/index.html#about")
-                h4(data-localise="__MSG_about__") About
-                +about
-
-        .space
-
-        script(type="module" src="../options/init.js")
-        script(type="module" src="./popup.js")
diff --git a/src/pages/widgets/head.pug b/src/pages/widgets/head.pug
deleted file mode 100644
index 53de42d3..00000000
--- a/src/pages/widgets/head.pug
+++ /dev/null
@@ -1,5 +0,0 @@
-head
-    meta(charset='utf-8')
-    meta(name="viewport" content="width=device-width, initial-scale=1")
-    link(rel="icon" type="image/x-icon" href="../../../assets/images/libredirect.svg")
-    link(href="../../stylesheets/styles.css" rel="stylesheet")
\ No newline at end of file
diff --git a/src/pages/widgets/icons.pug b/src/pages/widgets/icons.pug
deleted file mode 100644
index cc77ad16..00000000
--- a/src/pages/widgets/icons.pug
+++ /dev/null
@@ -1,46 +0,0 @@
-mixin medium
-    svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor")
-        circle(cx="500" cy="500" r="500")
-        ellipse(ry="475" rx="250" cy="501" cx="1296")
-        ellipse(cx="1682" cy="502" rx="88" ry="424")
-
-mixin search
-    svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor")
-        path(d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z")
-
-mixin translate
-    svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor")
-        path(d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z")
-
-mixin maps
-    svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor")
-        path( d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z")
-
-mixin send
-    svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor")
-        path(d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z")
-
-mixin change_instance
-    svg(xmlns="http://www.w3.org/2000/svg" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor")
-        path(d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z")
-
-mixin settings
-    svg(xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="26px" viewBox="0 0 24 24"
-        width="26px" fill="currentColor")
-        path(d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z")
-
-mixin copy_raw
-    svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor")
-        path(d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z")
-
-mixin general
-    svg(xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor")
-        path(d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z")
-
-mixin unify
-    svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor")
-        path(d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z")
-
-mixin about
-    svg( xmlns="http://www.w3.org/2000/svg" height="24" width="24" fill="currentColor")
-        path( d="M11 17h2v-6h-2Zm1-8q.425 0 .713-.288Q13 8.425 13 8t-.287-.713Q12.425 7 12 7t-.712.287Q11 7.575 11 8t.288.712Q11.575 9 12 9Zm0 13q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q3.35 0 5.675-2.325Q20 15.35 20 12q0-3.35-2.325-5.675Q15.35 4 12 4 8.65 4 6.325 6.325 4 8.65 4 12q0 3a.35 2.325 5.675Q8.65 20 12 20Zm0-8Z")
\ No newline at end of file
diff --git a/src/pages/widgets/instances.pug b/src/pages/widgets/instances.pug
deleted file mode 100644
index 950bd46b..00000000
--- a/src/pages/widgets/instances.pug
+++ /dev/null
@@ -1,15 +0,0 @@
-mixin instances(myPlaceholder)
-    .some-block.option-block
-        h4(data-localise="__MSG_defaultInstances__") Default Instances
-
-    .checklist
-    hr
-    .some-block.option-block
-        h4(data-localise="__MSG_customInstances__") Custom Instances
-    form.custom-instance-form
-        .some-block.option-block
-            input.custom-instance(placeholder=myPlaceholder type="url")
-            button.add.add-instance(type="submit")
-                svg(xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor")
-                    path(d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z")
-    .checklist.custom-checklist
\ No newline at end of file
diff --git a/src/pages/widgets/latency.pug b/src/pages/widgets/latency.pug
deleted file mode 100644
index e5bf53b2..00000000
--- a/src/pages/widgets/latency.pug
+++ /dev/null
@@ -1,14 +0,0 @@
-mixin latency(service)
-    - var latencyVal
-    if (service)
-        - latencyVal = `latency-${service}`
-    else
-        - latencyVal = `latency`
-
-    .buttons.buttons-inline
-        label.button.button-inline(id=`${latencyVal}-label` for=latencyVal) 
-            svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor")
-                path(d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z")
-            |&nbsp;
-            x(data-localise="__MSG_testInstancesLatency__") Test Instances Latency
-        input.button.button-inline(id=latencyVal style="display:none;")
\ No newline at end of file
diff --git a/src/pages/widgets/links.ejs b/src/pages/widgets/links.ejs
index c28d3668..86b9f260 100644
--- a/src/pages/widgets/links.ejs
+++ b/src/pages/widgets/links.ejs
@@ -1,7 +1,13 @@
 <section class="links" id="links">
-  <div class="title"><img src="../../../assets/images/general-icon.svg"><a href="#general" data-localise="__MSG_general__">General</a></div>
+  <div class="title"><%- include ('src/assets/images/general-icon.svg') %><a href="#general" data-localise="__MSG_general__">General</a></div>
   <% for (const service in config.services) { -%>
-  <div class="title"><img src="../../../assets/images/<%= service %>-icon.<%= config.services[service].imageType %>"><a href="#<%= service %>" data-localise="__MSG_<%= service %>__"><%= service %></a></div>
+  <div class="title">
+  <% if (config.services[service].imageType != "svgMono") { _%>
+  <img src="../../../assets/images/<%= service %>-icon.<%= config.services[service].imageType %>">
+  <% } else { _%>
+  <%- include ('src/assets/images/' + service + '-icon.svg') %>
+  <% } _%>
+  <a href="#<%= service %>" data-localise="__MSG_<%= service %>__"><%= service %></a></div>
   <% }; -%>
-  <div class="title"><img src="../../../assets/images/about-icon.svg"><a href="#about" data-localise="__MSG_about__">About</a></div>
+  <div class="title"><%- include ('src/assets/images/about-icon.svg') %><a href="#about" data-localise="__MSG_about__">About</a></div>
 </section>
diff --git a/src/pages/widgets/links.pug b/src/pages/widgets/links.pug
deleted file mode 100644
index c7f8e0a6..00000000
--- a/src/pages/widgets/links.pug
+++ /dev/null
@@ -1,83 +0,0 @@
-include ./icons.pug
-
-mixin links(service)
-    section#links.links
-        .title
-            +general
-            a(href="#general" data-localise="__MSG_general__") General
-
-        .title 
-            img(src="../../../assets/images/youtube-icon.png")
-            a(href="#youtube" data-localise="__MSG_youtube__") YouTube 
-
-        .title 
-            img(src="../../../assets/images/youtube-music-icon.png")
-            a(href="#youtubeMusic" data-localise="__MSG_ytmusic__") YT Music
-
-        .title 
-            img(src="../../../assets/images/twitter-icon.png")
-            a(href="#twitter" data-localise="__MSG_twitter__") Twitter
-
-        .title 
-            img(src="../../../assets/images/instagram-icon.png")
-            a(href="#instagram" data-localise="__MSG_instagram__") Instagram
-
-        .title 
-            img(src="../../../assets/images/tiktok-icon.png")
-            a(href="#tiktok" data-localise="__MSG_tiktok__") TikTok
-
-        .title 
-            img(src="../../../assets/images/reddit-icon.png")
-            a(href="#reddit" data-localise="__MSG_reddit__") Reddit
-
-        .title 
-            img(src="../../../assets/images/imgur.png")
-            a(href="#imgur" data-localise="__MSG_imgur__") Imgur
-
-        .title 
-            img(src="../../../assets/images/wikipedia-icon.svg")
-            a(href="#wikipedia" data-localise="__MSG_wikipedia__") Wikipedia
-
-        .title 
-            +medium
-            a(href="#medium" data-localise="__MSG_medium__") Medium
-
-        .title
-            img(src="../../../assets/images/quora.png")
-            a(href="#quora" data-localise="__MSG_quora__") Quora
-
-        .title
-            img(src="../../../assets/images/imdb.svg")
-            a(href="#imdb" data-localise="__MSG_imdb__") IMDb
-
-        .title
-            img(src="../../../assets/images/reuters.svg")
-            a(href="#reuters" data-localise="__MSG_reuters__") Reuters
-
-        .title 
-            img(src="../../../assets/images/peertube-icon.svg")
-            a(href="#peertube" data-localise="__MSG_peertube__") PeerTube
-
-        .title 
-            img(src="../../../assets/images/lbry-icon.png")
-            a(href="#lbry" data-localise="__MSG_lbry__") LBRY
-
-        .title 
-            +search
-            a(href="#search" data-localise="__MSG_search__") Search
-
-        .title 
-            +translate
-            a(href="#translate" data-localise="__MSG_translate__") Translate
-
-        .title 
-            +maps
-            a(href="#maps" data-localise="__MSG_maps__") Maps
-
-        .title
-            +send
-            a(href="#sendTargets" data-localise="__MSG_sendFiles__") Send Files
-        
-        .title
-            +about
-            a(href="#about" data-localise="__MSG_about") About
diff --git a/src/pages/widgets/switches.ejs b/src/pages/widgets/switches.ejs
new file mode 100644
index 00000000..45bcd790
--- /dev/null
+++ b/src/pages/widgets/switches.ejs
@@ -0,0 +1,11 @@
+<% for (const service in config.services) { -%>
+<div class="<%= service %> some-block"><a class="title" href="<%= config.services[service].url %>">
+  <% if (config.services[service].imageType != "svgMono") { _%>
+  <img src="../../assets/images/<%= service %>-icon.<%= config.services[service].imageType %>"/>
+  <% } else { _%>
+  <%- include ('src/assets/images/' + service + '-icon.svg') %>
+  <% } _%>
+  <h4 data-localise="__MSG_<%= service %>__"><%= config.services[service].name %></h4></a>
+  <input class="<%= service %>-enabled" type="checkbox"/>
+</div>
+<% } %>