Merge branch 'init' into 'main'
Initial release See merge request CodeByMrFinchum/github-light-mode-enforcer!1
This commit is contained in:
commit
f828873466
5 changed files with 79 additions and 82 deletions
20
LICENSE.md
Normal file
20
LICENSE.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
# GNU Affero General Public License v3.0
|
||||
|
||||
Copyright (C) [2024] [Mr Finchum]
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, version 3 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
---
|
||||
|
||||
## Additional Notes:
|
||||
This program is licensed under the AGPL-3.0, which requires that any modifications or derivative works distributed or used over a network must also be licensed under the AGPL-3.0.
|
106
README.md
106
README.md
|
@ -1,93 +1,35 @@
|
|||
# GitHub Light Mode Enforcer
|
||||
# Change GitHub Theme Without Logging In
|
||||
|
||||
For some genius reason, Microsoft decided to lock GitHub’s theme selection behind an account, **forcing you to stay logged in** to change it. Making github less accessibility for users.
|
||||
|
||||
While I agree that dark mode as a default is a fine idea, **GitHub's dark theme is not great**—I experience **eye fatigue** quickly. Since many projects are hosted on **Microsoft's GitHub**, and I refuse to log in just to change my theme, I decided to find a solution myself.
|
||||
|
||||
## Getting started
|
||||
I'm not alone—there's an active discussion on GitHub about this issue:
|
||||
🔗 **[GitHub Community Discussion](https://github.com/orgs/community/discussions/33190)**
|
||||
|
||||
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
|
||||
### 🚀 **The Solution**
|
||||
This Chrome extension **forces GitHub into light mode** by **overwriting the default dark theme**, bypassing the need to log in.
|
||||
|
||||
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
|
||||
GitHub **automatically resets** `data-color-mode` to `auto` on every page load, so simply changing it manually doesn’t work. This extension continuously **overrides** it to ensure GitHub stays in **light mode**.
|
||||
|
||||
## Add your files
|
||||
### 📌 Installation
|
||||
|
||||
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
|
||||
- [ ] [Add files using the command line](https://docs.gitlab.com/topics/git/add_files/#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
|
||||
I do not intend to publish this extension on the Chrome Web Store, but you can install it easily by following these steps:
|
||||
|
||||
```
|
||||
cd existing_repo
|
||||
git remote add origin https://gitlab.com/CodeByMrFinchum/github-light-mode-enforcer.git
|
||||
git branch -M main
|
||||
git push -uf origin main
|
||||
```
|
||||
1. **Clone the repository** or download the ZIP file and extract it.
|
||||
2. Open **Chrome** and go to `chrome://extensions/`.
|
||||
3. **Enable Developer Mode** (toggle in the top-right corner).
|
||||
4. Click **"Load unpacked"** and select the `src` folder inside the repo.
|
||||
|
||||
## Integrate with your tools
|
||||
📢 **Important Notes:**
|
||||
- You **must keep** the local extension files—removing them will uninstall the extension.
|
||||
- **Developer Mode must stay enabled**—disabling it will deactivate the extension.
|
||||
|
||||
- [ ] [Set up project integrations](https://gitlab.com/CodeByMrFinchum/github-light-mode-enforcer/-/settings/integrations)
|
||||
### ⚖️ License
|
||||
This project is licensed under the **GNU Affero General Public License v3.0**.
|
||||
Feel free to **fork, modify, and even publish it** to the Chrome Web Store if you’d like! 🚀
|
||||
|
||||
## Collaborate with your team
|
||||
|
||||
- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
|
||||
- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
|
||||
- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
|
||||
- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
|
||||
- [ ] [Set auto-merge](https://docs.gitlab.com/user/project/merge_requests/auto_merge/)
|
||||
|
||||
## Test and Deploy
|
||||
|
||||
Use the built-in continuous integration in GitLab.
|
||||
|
||||
- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/)
|
||||
- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
|
||||
- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
|
||||
- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
|
||||
- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
|
||||
|
||||
***
|
||||
|
||||
# Editing this README
|
||||
|
||||
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
|
||||
|
||||
## Suggestions for a good README
|
||||
|
||||
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
|
||||
|
||||
## Name
|
||||
Choose a self-explaining name for your project.
|
||||
|
||||
## Description
|
||||
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
|
||||
|
||||
## Badges
|
||||
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
|
||||
|
||||
## Visuals
|
||||
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
|
||||
|
||||
## Installation
|
||||
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
|
||||
|
||||
## Usage
|
||||
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
|
||||
|
||||
## Support
|
||||
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
|
||||
|
||||
## Roadmap
|
||||
If you have ideas for releases in the future, it is a good idea to list them in the README.
|
||||
|
||||
## Contributing
|
||||
State if you are open to contributions and what your requirements are for accepting them.
|
||||
|
||||
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
|
||||
|
||||
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
|
||||
|
||||
## Authors and acknowledgment
|
||||
Show your appreciation to those who have contributed to the project.
|
||||
|
||||
## License
|
||||
For open source projects, say how it is licensed.
|
||||
|
||||
## Project status
|
||||
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
|
||||
### 🛠 **Acknowledgments**
|
||||
- **Icon** from Flaticon (licensed for free personal & commercial use with attribution).
|
||||
- **Inspiration** for overwriting the theme came from **GitHub user [matheusqmello](https://github.com/orgs/community/discussions/33190#discussioncomment-10988423)**.
|
||||
- **Developed with assistance from ChatGPT**.
|
||||
|
|
19
src/content.js
Normal file
19
src/content.js
Normal file
|
@ -0,0 +1,19 @@
|
|||
function enforceLightMode() {
|
||||
const html = document.documentElement;
|
||||
|
||||
if (html.getAttribute("data-color-mode") === "auto") {
|
||||
html.setAttribute("data-color-mode", "light");
|
||||
console.log("GitHub Light Mode Enforced ✅");
|
||||
}
|
||||
}
|
||||
|
||||
// Run initially in case it's already set
|
||||
enforceLightMode();
|
||||
|
||||
// Watch for changes to the `html` element and enforce light mode if needed
|
||||
const observer = new MutationObserver(() => enforceLightMode());
|
||||
|
||||
observer.observe(document.documentElement, {
|
||||
attributes: true,
|
||||
attributeFilter: ["data-color-mode"],
|
||||
});
|
BIN
src/icon.png
Normal file
BIN
src/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
16
src/manifest.json
Normal file
16
src/manifest.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"manifest_version": 3,
|
||||
"name": "GitHub Light Mode Enforcer",
|
||||
"version": "1.0",
|
||||
"description": "Forces GitHub into light mode, even when OS / Browser theme is dark.",
|
||||
"icons": {
|
||||
"128": "icon.png"
|
||||
},
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": ["*://github.com/*"],
|
||||
"js": ["content.js"]
|
||||
}
|
||||
],
|
||||
"permissions": ["scripting"]
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue