Repository files navigation

Firefox Profilemaker

The Firefox profile maker is a web application for creating Firefox profiles with preconfigured defaults. The focus lies on privacy and removing unnecessary features. It disables intrusive features like telemetry, allows disabling web features that may be used for fingerprinting the browser, and contains some additional options for controversial features like Pocket.

If you are just looking to create a profile, you can find the service running this code at ffprofile.com. This repository contains the code to run your own instance, i.e., to add your own settings to it or simply so you don't have to trust the website but can generate your profile locally.

The project and website are not affiliated with or endorsed by Mozilla.

Installation

The project uses python Django. For running it locally, the Django test server should be sufficient. The project doesn't use database features, but it requires the session framework, which uses, depending on the configuration, a database backend. Using the simple SQLite database is sufficient.

After creating a Django project and adding the app, one needs to provide the Firefox addons that will be included in profiles as XPI files in a extensions folder at the path from where you run the project. The Extensions need to be named like in their install.rdf / manifest.json file because otherwise Firefox won't install them.

The current URLs and names are:

About the project

The project aims to provide a way to create a profile with privacy defaults, but instead of importing a long user.js file without knowing what the options do, every option should have a short description, and the users should be able to understand why they would want to enable or disable the option and what are the possible side effects. There is no one-size-fits-all, so the tool aims to provide a wizard to create a personalized profile.

Keeping it simple enough implies that it cannot contain everything. If there are too many options, people will not have the time to read every description and weigh the cost and benefits. So I try to keep the project focused on the relevant privacy options.

Some things we currently do not include are:

  • Many very useful add-ons. I try to keep the list short because add-ons can slow down the browser, they may be insecure, and there are just too many great addons to include them all.
  • Your favorite performance settings and similar optimizations. Often they are a trade-off and not easy to understand. Power users can still change them themself (and get them from one of the many great user.js files other people provide), but the average user is probably better off with the defaults.
  • Larger UI/UX changes. They are personal choices, and too many to include them all.
  • Options that are already easy to configure. If Firefox already asks for permission before doing something the first time, it is probably unnecessary to have a preconfigured answer.

This should not prevent you from creating such settings. There is already basic support for profiles, and it is planned to add a function to choose multiple profiles, e.g., security, privacy, classic ui or similar combinations. When it is implemented, such settings can be included in secondary profiles.

The bug tracker contains some infrastructure issues for these things and some issues tagged as other profile? which may be implemented sometime.

You're also welcome to add the options in an own fork. That's one of the reasons why the project is provided as open source. I may then pick up some of the options you implement at a later point in time.

About

A tool to create firefox profiles with personalized defaults.

Topics

Resources

Stars

846 stars

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Firefox Profilemaker

The Firefox profile maker is a web application for creating Firefox profiles with preconfigured defaults. The focus lies on privacy and removing unnecessary features. It disables intrusive features like telemetry, allows disabling web features that may be used for fingerprinting the browser, and contains some additional options for controversial features like Pocket.

If you are just looking to create a profile, you can find the service running this code at ffprofile.com. This repository contains the code to run your own instance, i.e., to add your own settings to it or simply so you don't have to trust the website but can generate your profile locally.

The project and website are not affiliated with or endorsed by Mozilla.

Installation

The project uses python Django. For running it locally, the Django test server should be sufficient. The project doesn't use database features, but it requires the session framework, which uses, depending on the configuration, a database backend. Using the simple SQLite database is sufficient.

After creating a Django project and adding the app, one needs to provide the Firefox addons that will be included in profiles as XPI files in a extensions folder at the path from where you run the project. The Extensions need to be named like in their install.rdf / manifest.json file because otherwise Firefox won't install them.

The current URLs and names are:

About the project

The project aims to provide a way to create a profile with privacy defaults, but instead of importing a long user.js file without knowing what the options do, every option should have a short description, and the users should be able to understand why they would want to enable or disable the option and what are the possible side effects. There is no one-size-fits-all, so the tool aims to provide a wizard to create a personalized profile.

Keeping it simple enough implies that it cannot contain everything. If there are too many options, people will not have the time to read every description and weigh the cost and benefits. So I try to keep the project focused on the relevant privacy options.

Some things we currently do not include are:

  • Many very useful add-ons. I try to keep the list short because add-ons can slow down the browser, they may be insecure, and there are just too many great addons to include them all.
  • Your favorite performance settings and similar optimizations. Often they are a trade-off and not easy to understand. Power users can still change them themself (and get them from one of the many great user.js files other people provide), but the average user is probably better off with the defaults.
  • Larger UI/UX changes. They are personal choices, and too many to include them all.
  • Options that are already easy to configure. If Firefox already asks for permission before doing something the first time, it is probably unnecessary to have a preconfigured answer.

This should not prevent you from creating such settings. There is already basic support for profiles, and it is planned to add a function to choose multiple profiles, e.g., security, privacy, classic ui or similar combinations. When it is implemented, such settings can be included in secondary profiles.

The bug tracker contains some infrastructure issues for these things and some issues tagged as other profile? which may be implemented sometime.

You're also welcome to add the options in an own fork. That's one of the reasons why the project is provided as open source. I may then pick up some of the options you implement at a later point in time.

About

A tool to create firefox profiles with personalized defaults.

Topics

Resources

Stars

846 stars

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Firefox Profilemaker

The Firefox profile maker is a web application for creating Firefox profiles with preconfigured defaults. The focus lies on privacy and removing unnecessary features. It disables intrusive features like telemetry, allows disabling web features that may be used for fingerprinting the browser, and contains some additional options for controversial features like Pocket.

If you are just looking to create a profile, you can find the service running this code at ffprofile.com. This repository contains the code to run your own instance, i.e., to add your own settings to it or simply so you don't have to trust the website but can generate your profile locally.

The project and website are not affiliated with or endorsed by Mozilla.

Installation

The project uses python Django. For running it locally, the Django test server should be sufficient. The project doesn't use database features, but it requires the session framework, which uses, depending on the configuration, a database backend. Using the simple SQLite database is sufficient.

After creating a Django project and adding the app, one needs to provide the Firefox addons that will be included in profiles as XPI files in a extensions folder at the path from where you run the project. The Extensions need to be named like in their install.rdf / manifest.json file because otherwise Firefox won't install them.

The current URLs and names are:

About the project

The project aims to provide a way to create a profile with privacy defaults, but instead of importing a long user.js file without knowing what the options do, every option should have a short description, and the users should be able to understand why they would want to enable or disable the option and what are the possible side effects. There is no one-size-fits-all, so the tool aims to provide a wizard to create a personalized profile.

Keeping it simple enough implies that it cannot contain everything. If there are too many options, people will not have the time to read every description and weigh the cost and benefits. So I try to keep the project focused on the relevant privacy options.

Some things we currently do not include are:

  • Many very useful add-ons. I try to keep the list short because add-ons can slow down the browser, they may be insecure, and there are just too many great addons to include them all.
  • Your favorite performance settings and similar optimizations. Often they are a trade-off and not easy to understand. Power users can still change them themself (and get them from one of the many great user.js files other people provide), but the average user is probably better off with the defaults.
  • Larger UI/UX changes. They are personal choices, and too many to include them all.
  • Options that are already easy to configure. If Firefox already asks for permission before doing something the first time, it is probably unnecessary to have a preconfigured answer.

This should not prevent you from creating such settings. There is already basic support for profiles, and it is planned to add a function to choose multiple profiles, e.g., security, privacy, classic ui or similar combinations. When it is implemented, such settings can be included in secondary profiles.

The bug tracker contains some infrastructure issues for these things and some issues tagged as other profile? which may be implemented sometime.

You're also welcome to add the options in an own fork. That's one of the reasons why the project is provided as open source. I may then pick up some of the options you implement at a later point in time.

About

A tool to create firefox profiles with personalized defaults.

Topics

Resources

Stars

846 stars

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Firefox Profilemaker

The Firefox profile maker is a web application for creating Firefox profiles with preconfigured defaults. The focus lies on privacy and removing unnecessary features. It disables intrusive features like telemetry, allows disabling web features that may be used for fingerprinting the browser, and contains some additional options for controversial features like Pocket.

If you are just looking to create a profile, you can find the service running this code at ffprofile.com. This repository contains the code to run your own instance, i.e., to add your own settings to it or simply so you don't have to trust the website but can generate your profile locally.

The project and website are not affiliated with or endorsed by Mozilla.

Installation

The project uses python Django. For running it locally, the Django test server should be sufficient. The project doesn't use database features, but it requires the session framework, which uses, depending on the configuration, a database backend. Using the simple SQLite database is sufficient.

After creating a Django project and adding the app, one needs to provide the Firefox addons that will be included in profiles as XPI files in a extensions folder at the path from where you run the project. The Extensions need to be named like in their install.rdf / manifest.json file because otherwise Firefox won't install them.

The current URLs and names are:

About the project

The project aims to provide a way to create a profile with privacy defaults, but instead of importing a long user.js file without knowing what the options do, every option should have a short description, and the users should be able to understand why they would want to enable or disable the option and what are the possible side effects. There is no one-size-fits-all, so the tool aims to provide a wizard to create a personalized profile.

Keeping it simple enough implies that it cannot contain everything. If there are too many options, people will not have the time to read every description and weigh the cost and benefits. So I try to keep the project focused on the relevant privacy options.

Some things we currently do not include are:

  • Many very useful add-ons. I try to keep the list short because add-ons can slow down the browser, they may be insecure, and there are just too many great addons to include them all.
  • Your favorite performance settings and similar optimizations. Often they are a trade-off and not easy to understand. Power users can still change them themself (and get them from one of the many great user.js files other people provide), but the average user is probably better off with the defaults.
  • Larger UI/UX changes. They are personal choices, and too many to include them all.
  • Options that are already easy to configure. If Firefox already asks for permission before doing something the first time, it is probably unnecessary to have a preconfigured answer.

This should not prevent you from creating such settings. There is already basic support for profiles, and it is planned to add a function to choose multiple profiles, e.g., security, privacy, classic ui or similar combinations. When it is implemented, such settings can be included in secondary profiles.

The bug tracker contains some infrastructure issues for these things and some issues tagged as other profile? which may be implemented sometime.

You're also welcome to add the options in an own fork. That's one of the reasons why the project is provided as open source. I may then pick up some of the options you implement at a later point in time.

About

A tool to create firefox profiles with personalized defaults.

Topics

Resources

Stars

846 stars

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Firefox Profilemaker

The Firefox profile maker is a web application for creating Firefox profiles with preconfigured defaults. The focus lies on privacy and removing unnecessary features. It disables intrusive features like telemetry, allows disabling web features that may be used for fingerprinting the browser, and contains some additional options for controversial features like Pocket.

If you are just looking to create a profile, you can find the service running this code at ffprofile.com. This repository contains the code to run your own instance, i.e., to add your own settings to it or simply so you don't have to trust the website but can generate your profile locally.

The project and website are not affiliated with or endorsed by Mozilla.

Installation

The project uses python Django. For running it locally, the Django test server should be sufficient. The project doesn't use database features, but it requires the session framework, which uses, depending on the configuration, a database backend. Using the simple SQLite database is sufficient.

After creating a Django project and adding the app, one needs to provide the Firefox addons that will be included in profiles as XPI files in a extensions folder at the path from where you run the project. The Extensions need to be named like in their install.rdf / manifest.json file because otherwise Firefox won't install them.

The current URLs and names are:

About the project

The project aims to provide a way to create a profile with privacy defaults, but instead of importing a long user.js file without knowing what the options do, every option should have a short description, and the users should be able to understand why they would want to enable or disable the option and what are the possible side effects. There is no one-size-fits-all, so the tool aims to provide a wizard to create a personalized profile.

Keeping it simple enough implies that it cannot contain everything. If there are too many options, people will not have the time to read every description and weigh the cost and benefits. So I try to keep the project focused on the relevant privacy options.

Some things we currently do not include are:

  • Many very useful add-ons. I try to keep the list short because add-ons can slow down the browser, they may be insecure, and there are just too many great addons to include them all.
  • Your favorite performance settings and similar optimizations. Often they are a trade-off and not easy to understand. Power users can still change them themself (and get them from one of the many great user.js files other people provide), but the average user is probably better off with the defaults.
  • Larger UI/UX changes. They are personal choices, and too many to include them all.
  • Options that are already easy to configure. If Firefox already asks for permission before doing something the first time, it is probably unnecessary to have a preconfigured answer.

This should not prevent you from creating such settings. There is already basic support for profiles, and it is planned to add a function to choose multiple profiles, e.g., security, privacy, classic ui or similar combinations. When it is implemented, such settings can be included in secondary profiles.

The bug tracker contains some infrastructure issues for these things and some issues tagged as other profile? which may be implemented sometime.

You're also welcome to add the options in an own fork. That's one of the reasons why the project is provided as open source. I may then pick up some of the options you implement at a later point in time.

About

A tool to create firefox profiles with personalized defaults.

Topics

Resources

Stars

846 stars

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Firefox Profilemaker

The Firefox profile maker is a web application for creating Firefox profiles with preconfigured defaults. The focus lies on privacy and removing unnecessary features. It disables intrusive features like telemetry, allows disabling web features that may be used for fingerprinting the browser, and contains some additional options for controversial features like Pocket.

If you are just looking to create a profile, you can find the service running this code at ffprofile.com. This repository contains the code to run your own instance, i.e., to add your own settings to it or simply so you don't have to trust the website but can generate your profile locally.

The project and website are not affiliated with or endorsed by Mozilla.

Installation

The project uses python Django. For running it locally, the Django test server should be sufficient. The project doesn't use database features, but it requires the session framework, which uses, depending on the configuration, a database backend. Using the simple SQLite database is sufficient.

After creating a Django project and adding the app, one needs to provide the Firefox addons that will be included in profiles as XPI files in a extensions folder at the path from where you run the project. The Extensions need to be named like in their install.rdf / manifest.json file because otherwise Firefox won't install them.

The current URLs and names are:

About the project

The project aims to provide a way to create a profile with privacy defaults, but instead of importing a long user.js file without knowing what the options do, every option should have a short description, and the users should be able to understand why they would want to enable or disable the option and what are the possible side effects. There is no one-size-fits-all, so the tool aims to provide a wizard to create a personalized profile.

Keeping it simple enough implies that it cannot contain everything. If there are too many options, people will not have the time to read every description and weigh the cost and benefits. So I try to keep the project focused on the relevant privacy options.

Some things we currently do not include are:

  • Many very useful add-ons. I try to keep the list short because add-ons can slow down the browser, they may be insecure, and there are just too many great addons to include them all.
  • Your favorite performance settings and similar optimizations. Often they are a trade-off and not easy to understand. Power users can still change them themself (and get them from one of the many great user.js files other people provide), but the average user is probably better off with the defaults.
  • Larger UI/UX changes. They are personal choices, and too many to include them all.
  • Options that are already easy to configure. If Firefox already asks for permission before doing something the first time, it is probably unnecessary to have a preconfigured answer.

This should not prevent you from creating such settings. There is already basic support for profiles, and it is planned to add a function to choose multiple profiles, e.g., security, privacy, classic ui or similar combinations. When it is implemented, such settings can be included in secondary profiles.

The bug tracker contains some infrastructure issues for these things and some issues tagged as other profile? which may be implemented sometime.

You're also welcome to add the options in an own fork. That's one of the reasons why the project is provided as open source. I may then pick up some of the options you implement at a later point in time.

About

A tool to create firefox profiles with personalized defaults.

Topics

Resources

Stars

846 stars

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Firefox Profilemaker

The Firefox profile maker is a web application for creating Firefox profiles with preconfigured defaults. The focus lies on privacy and removing unnecessary features. It disables intrusive features like telemetry, allows disabling web features that may be used for fingerprinting the browser, and contains some additional options for controversial features like Pocket.

If you are just looking to create a profile, you can find the service running this code at ffprofile.com. This repository contains the code to run your own instance, i.e., to add your own settings to it or simply so you don't have to trust the website but can generate your profile locally.

The project and website are not affiliated with or endorsed by Mozilla.

Installation

The project uses python Django. For running it locally, the Django test server should be sufficient. The project doesn't use database features, but it requires the session framework, which uses, depending on the configuration, a database backend. Using the simple SQLite database is sufficient.

After creating a Django project and adding the app, one needs to provide the Firefox addons that will be included in profiles as XPI files in a extensions folder at the path from where you run the project. The Extensions need to be named like in their install.rdf / manifest.json file because otherwise Firefox won't install them.

The current URLs and names are:

About the project

The project aims to provide a way to create a profile with privacy defaults, but instead of importing a long user.js file without knowing what the options do, every option should have a short description, and the users should be able to understand why they would want to enable or disable the option and what are the possible side effects. There is no one-size-fits-all, so the tool aims to provide a wizard to create a personalized profile.

Keeping it simple enough implies that it cannot contain everything. If there are too many options, people will not have the time to read every description and weigh the cost and benefits. So I try to keep the project focused on the relevant privacy options.

Some things we currently do not include are:

  • Many very useful add-ons. I try to keep the list short because add-ons can slow down the browser, they may be insecure, and there are just too many great addons to include them all.
  • Your favorite performance settings and similar optimizations. Often they are a trade-off and not easy to understand. Power users can still change them themself (and get them from one of the many great user.js files other people provide), but the average user is probably better off with the defaults.
  • Larger UI/UX changes. They are personal choices, and too many to include them all.
  • Options that are already easy to configure. If Firefox already asks for permission before doing something the first time, it is probably unnecessary to have a preconfigured answer.

This should not prevent you from creating such settings. There is already basic support for profiles, and it is planned to add a function to choose multiple profiles, e.g., security, privacy, classic ui or similar combinations. When it is implemented, such settings can be included in secondary profiles.

The bug tracker contains some infrastructure issues for these things and some issues tagged as other profile? which may be implemented sometime.

You're also welcome to add the options in an own fork. That's one of the reasons why the project is provided as open source. I may then pick up some of the options you implement at a later point in time.

About

A tool to create firefox profiles with personalized defaults.

Topics

Resources

Stars

846 stars

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Firefox Profilemaker

The Firefox profile maker is a web application for creating Firefox profiles with preconfigured defaults. The focus lies on privacy and removing unnecessary features. It disables intrusive features like telemetry, allows disabling web features that may be used for fingerprinting the browser, and contains some additional options for controversial features like Pocket.

If you are just looking to create a profile, you can find the service running this code at ffprofile.com. This repository contains the code to run your own instance, i.e., to add your own settings to it or simply so you don't have to trust the website but can generate your profile locally.

The project and website are not affiliated with or endorsed by Mozilla.

Installation

The project uses python Django. For running it locally, the Django test server should be sufficient. The project doesn't use database features, but it requires the session framework, which uses, depending on the configuration, a database backend. Using the simple SQLite database is sufficient.

After creating a Django project and adding the app, one needs to provide the Firefox addons that will be included in profiles as XPI files in a extensions folder at the path from where you run the project. The Extensions need to be named like in their install.rdf / manifest.json file because otherwise Firefox won't install them.

The current URLs and names are:

About the project

The project aims to provide a way to create a profile with privacy defaults, but instead of importing a long user.js file without knowing what the options do, every option should have a short description, and the users should be able to understand why they would want to enable or disable the option and what are the possible side effects. There is no one-size-fits-all, so the tool aims to provide a wizard to create a personalized profile.

Keeping it simple enough implies that it cannot contain everything. If there are too many options, people will not have the time to read every description and weigh the cost and benefits. So I try to keep the project focused on the relevant privacy options.

Some things we currently do not include are:

  • Many very useful add-ons. I try to keep the list short because add-ons can slow down the browser, they may be insecure, and there are just too many great addons to include them all.
  • Your favorite performance settings and similar optimizations. Often they are a trade-off and not easy to understand. Power users can still change them themself (and get them from one of the many great user.js files other people provide), but the average user is probably better off with the defaults.
  • Larger UI/UX changes. They are personal choices, and too many to include them all.
  • Options that are already easy to configure. If Firefox already asks for permission before doing something the first time, it is probably unnecessary to have a preconfigured answer.

This should not prevent you from creating such settings. There is already basic support for profiles, and it is planned to add a function to choose multiple profiles, e.g., security, privacy, classic ui or similar combinations. When it is implemented, such settings can be included in secondary profiles.

The bug tracker contains some infrastructure issues for these things and some issues tagged as other profile? which may be implemented sometime.

You're also welcome to add the options in an own fork. That's one of the reasons why the project is provided as open source. I may then pick up some of the options you implement at a later point in time.

About

A tool to create firefox profiles with personalized defaults.

Topics

Resources

Stars

846 stars

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages