Update part 1
@ -0,0 +1,128 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, religion, or sexual identity
|
||||||
|
and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
|
||||||
|
* Demonstrating empathy and kindness toward other people
|
||||||
|
* Being respectful of differing opinions, viewpoints, and experiences
|
||||||
|
* Giving and gracefully accepting constructive feedback
|
||||||
|
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
|
and learning from the experience
|
||||||
|
* Focusing on what is best not just for us as individuals, but for the
|
||||||
|
overall community
|
||||||
|
|
||||||
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery, and sexual attention or
|
||||||
|
advances of any kind
|
||||||
|
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or email
|
||||||
|
address, without their explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported to the community leaders responsible for enforcement at
|
||||||
|
`github issue`.
|
||||||
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
|
||||||
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series
|
||||||
|
of actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or
|
||||||
|
permanent ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within
|
||||||
|
the community.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 2.0, available at
|
||||||
|
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||||
|
enforcement ladder](https://github.com/mozilla/diversity).
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
https://www.contributor-covenant.org/faq. Translations are available at
|
||||||
|
https://www.contributor-covenant.org/translations.
|
@ -0,0 +1,246 @@
|
|||||||
|
# Contributing
|
||||||
|
|
||||||
|
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc -->
|
||||||
|
**Table of Contents**
|
||||||
|
|
||||||
|
- [Introduce](#introduce)
|
||||||
|
- [Code of Conduct](#code-of-conduct)
|
||||||
|
- [We Develop with Github](#we-develop-with-github)
|
||||||
|
- [Environment](#environment)
|
||||||
|
- [Your First Contribution](#your-first-contribution)
|
||||||
|
- [Contribution Targets](#contribution-targets)
|
||||||
|
- [Project Structure](#project-structure)
|
||||||
|
- [Icon files](#icon-files)
|
||||||
|
- [Meta Info files](#meta-info-files)
|
||||||
|
- [Rules](#rules)
|
||||||
|
- [Version](#version)
|
||||||
|
- [Branch](#branch)
|
||||||
|
- [Issue](#issue)
|
||||||
|
- [Coding style](#coding-style)
|
||||||
|
- [Commit](#commit)
|
||||||
|
- [Commit Message](#commit-message)
|
||||||
|
- [Pull request](#pull-request)
|
||||||
|
- [License](#license)
|
||||||
|
- [References](#references)
|
||||||
|
|
||||||
|
<!-- markdown-toc end -->
|
||||||
|
|
||||||
|
## Introduce
|
||||||
|
|
||||||
|
I'm really glad you're reading this, because we need volunteer developers to help this project come to fruition.
|
||||||
|
|
||||||
|
Please note we have a code of conduct, please follow it in all your interactions with the project.
|
||||||
|
|
||||||
|
### Code of Conduct
|
||||||
|
|
||||||
|
Refer to [CODE\_OF\_CONDUCT.md](https://github.com/black7375/Firefox-UI-Fix/blob/master/CODE_OF_CONDUCT.md).
|
||||||
|
|
||||||
|
### We Develop with Github
|
||||||
|
|
||||||
|
We use [github](https://github.com/black7375/Firefox-UI-Fix) to host code, to track [issues](https://github.com/black7375/Firefox-UI-Fix/issues) and feature requests, as well as accept [pull requests](https://github.com/black7375/Firefox-UI-Fix/pulls).
|
||||||
|
|
||||||
|
After feedback has been given we expect responses within two weeks. After two weeks we may close the issue and pull request if it isn't showing any activity.
|
||||||
|
|
||||||
|
### Environment
|
||||||
|
|
||||||
|
You can configure it as follows:
|
||||||
|
```shell
|
||||||
|
## clone repository
|
||||||
|
git clone https://github.com/black7375/Firefox-UI-Fix.git
|
||||||
|
cd ./Firefox-UI-Fix
|
||||||
|
|
||||||
|
## checkout branch
|
||||||
|
git checkout <BRANCH_NAME>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Your First Contribution
|
||||||
|
|
||||||
|
**Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github)
|
||||||
|
|
||||||
|
The following documents may be helpful:
|
||||||
|
- [Roadmap](https://github.com/black7375/Firefox-UI-Fix/issues/2)
|
||||||
|
- [Each Versions Plan](https://github.com/black7375/Firefox-UI-Fix/milestones)
|
||||||
|
- [Wiki:Compatibility Issues Solution](https://github.com/black7375/Firefox-UI-Fix/wiki/Compatibility-Issues-Solution)
|
||||||
|
- [Wiki:Tips](https://github.com/black7375/Firefox-UI-Fix/wiki/Tips)
|
||||||
|
|
||||||
|
Live Debugging:
|
||||||
|
- [Tutorial: How to create and live-debug userChrome.css](https://www.reddit.com/r/FirefoxCSS/comments/73dvty/tutorial_how_to_create_and_livedebug_userchromecss/)
|
||||||
|
- [Browser Toolbox](https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox)
|
||||||
|
- [Style Editor](https://developer.mozilla.org/en-US/docs/Tools/Style_Editor)
|
||||||
|
|
||||||
|
Firefox Source Code:
|
||||||
|
- [Github](https://github.com/mozilla/gecko-dev)
|
||||||
|
- [Searchfox](https://searchfox.org/)
|
||||||
|
- [Firefox Source Docs](https://firefox-source-docs.mozilla.org/)
|
||||||
|
|
||||||
|
Test for None mac users:
|
||||||
|
- [Docker-OSX](https://github.com/sickcodes/Docker-OSX)
|
||||||
|
|
||||||
|
### Contribution Targets
|
||||||
|
|
||||||
|
We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
|
||||||
|
|
||||||
|
**Promotions**
|
||||||
|
- Introduce project
|
||||||
|
- Video (Recommend!!, We need it)
|
||||||
|
- Blog
|
||||||
|
- SNS
|
||||||
|
- Reddit, Hackernews..etc
|
||||||
|
- Sample
|
||||||
|
- [Producthunt](https://www.producthunt.com/posts/firefox-ui-fix-proton)([#43](https://github.com/black7375/Firefox-UI-Fix/issues/43))
|
||||||
|
- [Youtube](https://www.youtube.com/watch?v=ECta0icNMgY)
|
||||||
|
|
||||||
|
**Docs**
|
||||||
|
- Fix typos, alignments.
|
||||||
|
- Correct awkward sentences.
|
||||||
|
- Improve document readability.
|
||||||
|
|
||||||
|
**Issues**
|
||||||
|
- Report a bug.
|
||||||
|
- Discussing the current state of the code.
|
||||||
|
- Tell us about related or relevant projects and documents.
|
||||||
|
- Help other users issue.
|
||||||
|
- Proposing others..
|
||||||
|
|
||||||
|
**Codes**
|
||||||
|
- New Features.
|
||||||
|
- Bug fixes.
|
||||||
|
- Improved compatibility or accessibility.
|
||||||
|
- Refactoring.
|
||||||
|
|
||||||
|
### Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
root
|
||||||
|
|- .gitattributes: Exclude at `Download Zip`
|
||||||
|
|- .github: Issue/PR Template, Github Actions
|
||||||
|
|- .prettierignore: Exclude coding style
|
||||||
|
|- .prettierrc.json: Coding style
|
||||||
|
|- icons/: Icons, illustrations
|
||||||
|
|- install.ps1: Install script write in powersehll
|
||||||
|
|- install.sh: Install script write in bash
|
||||||
|
|- LEPTON: Meta infos (branch, version)
|
||||||
|
|- user.js: about:config settings
|
||||||
|
|- userChrome.css: CSS for Browser UI
|
||||||
|
|- userContent.css: CSS for Web pages
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Icon files
|
||||||
|
|
||||||
|
Most of them are made in SVG.
|
||||||
|
|
||||||
|
Except for illustrations, there must be an `fill="context-fill" fill-opacity="context-fill-opacity"` property to dynamically determine color and transparency.
|
||||||
|
|
||||||
|
Icons are mainly [FirefoxUX/photon-icons](https://github.com/FirefoxUX/photon-icons)
|
||||||
|
or [microsoft/fluentui-system-icons](https://github.com/microsoft/fluentui-system-icons).
|
||||||
|
|
||||||
|
#### Meta Info files
|
||||||
|
|
||||||
|
It comes from [install.sh](https://github.com/black7375/Firefox-UI-Fix/blob/01ae88bf2c4710e1f364d9eb2901ca2b722cefe7/install.sh#L442).
|
||||||
|
|
||||||
|
**`LEPTON` file format**
|
||||||
|
|
||||||
|
If this file exist in same directory as the `userChrome.css` file,
|
||||||
|
it is recognized as the "Lepton" installation directory.
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[Info]
|
||||||
|
Branch=master | photon-style | proton-style
|
||||||
|
Ver=<git tag> | <git hash> | [NULL]
|
||||||
|
```
|
||||||
|
|
||||||
|
**`lepton.ini` file Format**
|
||||||
|
|
||||||
|
In `lepton.ini`, various information is stored during the installation process.\
|
||||||
|
This file is recreated every time the installer is created.
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[Profile Name]
|
||||||
|
Type=Local | Release | Git
|
||||||
|
Branch=master | photon-style | proton-style
|
||||||
|
Ver=<git tag> | <git hash> | [NULL]
|
||||||
|
Path=<Full PATH>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Update Policy according to `Type`**
|
||||||
|
- Local(unknown): force latest commit update
|
||||||
|
- Release(<git tag>): force latest tag update
|
||||||
|
- Git<git hash>: latest commit update
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
|
||||||
|
### Version
|
||||||
|
|
||||||
|
Milestone, The versioning scheme we use is [SemVer](https://semver.org/). (Maintainer decides, do not pull request.)
|
||||||
|
|
||||||
|
We will release the feature as soon as it is complete, but the cycle should be 2-4 weeks.
|
||||||
|
Rapid releases.
|
||||||
|
|
||||||
|
It comes from [#109](https://github.com/black7375/Firefox-UI-Fix/issues/109#issuecomment-873313945).
|
||||||
|
|
||||||
|
### Branch
|
||||||
|
|
||||||
|
Stable: Only bugfix, Documentation.
|
||||||
|
- `master`: Common bugfix, documentation.
|
||||||
|
- `photon-style`: Bugfix, documentation specified in `photon-style`.
|
||||||
|
- `proton-sryle`: Bugfix, documentation specified in `proton-style`.
|
||||||
|
|
||||||
|
Development: New Features.
|
||||||
|
- `dev`: Common new features.
|
||||||
|
- `photon-style-dev`: New features specified in `photon-style`.
|
||||||
|
- `proton-style-dev`: New features specified in `proton-style`.
|
||||||
|
|
||||||
|
### Issue
|
||||||
|
|
||||||
|
- **Versions:**
|
||||||
|
- Make sure you’re on the latest version.
|
||||||
|
- Try older versions.
|
||||||
|
- Try switching up dependency versions.
|
||||||
|
- **Search:** Search the project’s [issues](https://github.com/black7375/Firefox-UI-Fix/issues) to make sure it's not a known issue.
|
||||||
|
|
||||||
|
### Coding style
|
||||||
|
|
||||||
|
- **Indent:** 2 spaces for indentation rather than tabs.
|
||||||
|
- **Columns:** Fit `80`~`100` columns as much as possible. (Auto formatting is using 120 to avoid the worst case)
|
||||||
|
|
||||||
|
### Commit
|
||||||
|
|
||||||
|
- **Meaningfully:**: It doesn't make meaningless commits.
|
||||||
|
- **One per task:** It's difficult to distinguish when various tasks are mixed.
|
||||||
|
- **Often:** Codes may corrupt during large changes.
|
||||||
|
|
||||||
|
### Commit Message
|
||||||
|
|
||||||
|
For intuitive recognition, I [put a **prefix**](https://github.com/black7375/Firefox-UI-Fix/commits/master).
|
||||||
|
- `Add:` Add feature or enhanced.
|
||||||
|
- `Fix:` Bug fix or change default values.
|
||||||
|
- `Clean:` Refactoring.
|
||||||
|
- `Doc:` Update docs.
|
||||||
|
|
||||||
|
### Pull request
|
||||||
|
|
||||||
|
- **Branch:** Check the [Branch](#branch) section and PR to the correct branch.
|
||||||
|
- **Issue:** We recommend that you open the issue first to discuss the changes with the owner of this repository.
|
||||||
|
|
||||||
|
### License
|
||||||
|
|
||||||
|
**Any contributions you make will be under the MPL 2.0 Software License**
|
||||||
|
|
||||||
|
In short, when you submit code changes, your submissions are understood to be under the same [MPL 2.0 License](https://choosealicense.com/licenses/mpl-2.0/) that covers the project.
|
||||||
|
Feel free to contact the maintainers if that's a concern.
|
||||||
|
|
||||||
|
**Reference specification**
|
||||||
|
|
||||||
|
Even if you copy the code snippet, it is recommended that you leave a link.
|
||||||
|
|
||||||
|
**FAQ**
|
||||||
|
|
||||||
|
If you have any questions about other licenses, please see [Moailla's MPL 2.0 FAQ](https://www.mozilla.org/en-US/MPL/2.0/FAQ/).
|
||||||
|
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
- [Good-CONTRIBUTING.md-template](https://gist.github.com/PurpleBooth/b24679402957c63ec426)
|
||||||
|
- [Contributing to Transcriptase](https://gist.github.com/briandk/3d2e8b3ec8daf5a27a62)
|
||||||
|
- [contributing-template](https://github.com/nayafia/contributing-template/blob/master/CONTRIBUTING-template.md)
|
||||||
|
- [Contributing to Open Source Projects](https://www.contribution-guide.org/)
|
151
arch-config/.mozilla/firefox/default-release/chrome/CREDITS
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
This is at least a partial credits-file of people that have contributed to the 'Firefox-UI-Fix' project.
|
||||||
|
It is sorted by name.
|
||||||
|
The fields are: name (N), email (E), web-address(W), license(L).
|
||||||
|
Thanks,
|
||||||
|
|
||||||
|
black7375
|
||||||
|
----------
|
||||||
|
Reference Projects & Resources
|
||||||
|
|
||||||
|
N: Compact Mode Firefox Css
|
||||||
|
W: https://github.com/Godiesc/compactmodefirefoxcss
|
||||||
|
L: MPL 2.0
|
||||||
|
|
||||||
|
N: EdgeFox
|
||||||
|
W: https://github.com/23Bluemaster23/EdgeFox
|
||||||
|
|
||||||
|
N: EdgeTabSeparater.userChrome.css
|
||||||
|
W: https://gist.github.com/mmis1000/08d8de4bbe70c04423f0b966bcc286b1
|
||||||
|
L: MIT
|
||||||
|
|
||||||
|
N: firefox-csshacks
|
||||||
|
W: https://github.com/MrOtherGuy/firefox-csshacks
|
||||||
|
L: MPL 2.0
|
||||||
|
|
||||||
|
N: Fluent UI System Icons
|
||||||
|
W: https://github.com/microsoft/fluentui-system-icons
|
||||||
|
L: MIT
|
||||||
|
|
||||||
|
N: gecko-dev
|
||||||
|
W: https://hg.mozilla.org/
|
||||||
|
L: MPL 2.0
|
||||||
|
|
||||||
|
N: MaterialFox
|
||||||
|
W: https://github.com/muckSponge/MaterialFox
|
||||||
|
L: MIT
|
||||||
|
|
||||||
|
N: Multi-Account-Containers
|
||||||
|
W: https://github.com/mozilla/multi-account-containers
|
||||||
|
L: MPL 2.0
|
||||||
|
|
||||||
|
N: PS-Menu
|
||||||
|
W: https://github.com/chrisseroka/ps-menu
|
||||||
|
L: MIT
|
||||||
|
|
||||||
|
N: Quantum Nox Firefox Dark Full Theme
|
||||||
|
W: https://github.com/Izheil/Quantum-Nox-Firefox-Dark-Full-Theme
|
||||||
|
L: MPL 2.0
|
||||||
|
|
||||||
|
N: quietfox
|
||||||
|
W: https://github.com/coekuss/quietfox
|
||||||
|
L: MIT
|
||||||
|
|
||||||
|
N: ShadowFox
|
||||||
|
W: https://github.com/overdodactyl/ShadowFox
|
||||||
|
L: MIT
|
||||||
|
|
||||||
|
N: SVG Repo
|
||||||
|
E: info@svgrepo.com
|
||||||
|
W: https://www.svgrepo.com
|
||||||
|
L: CC0
|
||||||
|
|
||||||
|
N: uc.css.js
|
||||||
|
W: https://github.com/aminomancer/uc.css.js
|
||||||
|
L: CC BY-NC-SA 4.0
|
||||||
|
|
||||||
|
N: userChrome.csshacks
|
||||||
|
W: https://gist.github.com/DCzajkowski/baaf7bc81aae5278d690eaae951a823b
|
||||||
|
L: CC0
|
||||||
|
|
||||||
|
N: userChrome.css
|
||||||
|
W: https://gist.github.com/Dragoner7/ec2319e5038a6b4722d3e692713f9471
|
||||||
|
L: MPL 2.0
|
||||||
|
|
||||||
|
N: userChrome.org
|
||||||
|
W: https://www.userchrome.org/what-is-userchrome-css.html
|
||||||
|
L: CC BY 4.0
|
||||||
|
|
||||||
|
----------
|
||||||
|
Major Contributors
|
||||||
|
|
||||||
|
N: AveYo
|
||||||
|
E: aveyo@yahoo.com
|
||||||
|
W: https://github.com/AveYo
|
||||||
|
|
||||||
|
N: Jan Janssen
|
||||||
|
E: medhefgo@web.de
|
||||||
|
W: https://github.com/medhefgo
|
||||||
|
|
||||||
|
N: Yunsup Sim
|
||||||
|
E: pedogunu@gmail.com
|
||||||
|
W: https://ethansup.net
|
||||||
|
|
||||||
|
----------
|
||||||
|
Contributors
|
||||||
|
|
||||||
|
N: 7k5x
|
||||||
|
E: 7k5xlp0onfire@gmail.com
|
||||||
|
W: https://github.com/7k5x
|
||||||
|
|
||||||
|
N: Ajith-stark
|
||||||
|
E: ajith.kum.12342@gmail.com
|
||||||
|
W: https://github.com/Ajith-stark
|
||||||
|
|
||||||
|
N: badprogramshere
|
||||||
|
W: https://github.com/badprogramshere
|
||||||
|
|
||||||
|
N: Burak Yigit Kaya
|
||||||
|
E: ben@byk.im
|
||||||
|
W: https://byk.im/
|
||||||
|
|
||||||
|
N: dr460nf1r3
|
||||||
|
E: njcrypted@protonmail.com
|
||||||
|
W: https://dr460nf1r3.me/
|
||||||
|
|
||||||
|
N: hellojaccc
|
||||||
|
E: kim@taekyeong.me
|
||||||
|
W: https://github.com/hellojaccc
|
||||||
|
|
||||||
|
N: James Upjohn
|
||||||
|
E: jammehcow@jammehcow.co.nz
|
||||||
|
W: https://github.com/jammehcow
|
||||||
|
|
||||||
|
N: Jonta
|
||||||
|
W: https://github.com/Jonta
|
||||||
|
|
||||||
|
N: mamen
|
||||||
|
W: https://www.mamen.at
|
||||||
|
|
||||||
|
N: Tatsuyuki Ishi
|
||||||
|
E: ishitatsuyuki@gmail.com
|
||||||
|
W: https://github.com/ishitatsuyuki
|
||||||
|
|
||||||
|
N: Rahul Ramkumar
|
||||||
|
E: rahulram226@gmail.com
|
||||||
|
W: https://rahulramkumar.dev
|
||||||
|
|
||||||
|
N: Roel
|
||||||
|
E: Nyubis@gmail.com
|
||||||
|
W: https://github.com/Nyubis
|
||||||
|
|
||||||
|
N: SanderTheDragon
|
||||||
|
E: sanderthedragon@zoho.com
|
||||||
|
W: https://gitlab.com/SanderTheDragon
|
||||||
|
|
||||||
|
N: sean z
|
||||||
|
E: ean@vsxd.com
|
||||||
|
W: https://vsxd.com/
|
||||||
|
|
||||||
|
N: Sylvain
|
||||||
|
E: B00ze64@hotmail.com
|
||||||
|
W: https://github.com/B00ze64
|
@ -0,0 +1,3 @@
|
|||||||
|
[Info]
|
||||||
|
Ver=v4.2.0
|
||||||
|
Branch=proton-style
|
373
arch-config/.mozilla/firefox/default-release/chrome/LICENSE
Normal file
@ -0,0 +1,373 @@
|
|||||||
|
Mozilla Public License Version 2.0
|
||||||
|
==================================
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
1.1. "Contributor"
|
||||||
|
means each individual or legal entity that creates, contributes to
|
||||||
|
the creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. "Contributor Version"
|
||||||
|
means the combination of the Contributions of others (if any) used
|
||||||
|
by a Contributor and that particular Contributor's Contribution.
|
||||||
|
|
||||||
|
1.3. "Contribution"
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. "Covered Software"
|
||||||
|
means Source Code Form to which the initial Contributor has attached
|
||||||
|
the notice in Exhibit A, the Executable Form of such Source Code
|
||||||
|
Form, and Modifications of such Source Code Form, in each case
|
||||||
|
including portions thereof.
|
||||||
|
|
||||||
|
1.5. "Incompatible With Secondary Licenses"
|
||||||
|
means
|
||||||
|
|
||||||
|
(a) that the initial Contributor has attached the notice described
|
||||||
|
in Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
(b) that the Covered Software was made available under the terms of
|
||||||
|
version 1.1 or earlier of the License, but not also under the
|
||||||
|
terms of a Secondary License.
|
||||||
|
|
||||||
|
1.6. "Executable Form"
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. "Larger Work"
|
||||||
|
means a work that combines Covered Software with other material, in
|
||||||
|
a separate file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. "License"
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. "Licensable"
|
||||||
|
means having the right to grant, to the maximum extent possible,
|
||||||
|
whether at the time of the initial grant or subsequently, any and
|
||||||
|
all of the rights conveyed by this License.
|
||||||
|
|
||||||
|
1.10. "Modifications"
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
(a) any file in Source Code Form that results from an addition to,
|
||||||
|
deletion from, or modification of the contents of Covered
|
||||||
|
Software; or
|
||||||
|
|
||||||
|
(b) any new file in Source Code Form that contains any Covered
|
||||||
|
Software.
|
||||||
|
|
||||||
|
1.11. "Patent Claims" of a Contributor
|
||||||
|
means any patent claim(s), including without limitation, method,
|
||||||
|
process, and apparatus claims, in any patent Licensable by such
|
||||||
|
Contributor that would be infringed, but for the grant of the
|
||||||
|
License, by the making, using, selling, offering for sale, having
|
||||||
|
made, import, or transfer of either its Contributions or its
|
||||||
|
Contributor Version.
|
||||||
|
|
||||||
|
1.12. "Secondary License"
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU
|
||||||
|
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||||
|
Public License, Version 3.0, or any later versions of those
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
1.13. "Source Code Form"
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. "You" (or "Your")
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, "You" includes any entity that
|
||||||
|
controls, is controlled by, or is under common control with You. For
|
||||||
|
purposes of this definition, "control" means (a) the power, direct
|
||||||
|
or indirect, to cause the direction or management of such entity,
|
||||||
|
whether by contract or otherwise, or (b) ownership of more than
|
||||||
|
fifty percent (50%) of the outstanding shares or beneficial
|
||||||
|
ownership of such entity.
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or
|
||||||
|
as part of a Larger Work; and
|
||||||
|
|
||||||
|
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||||
|
for sale, have made, import, and otherwise transfer either its
|
||||||
|
Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution
|
||||||
|
become effective for each Contribution on the date the Contributor first
|
||||||
|
distributes such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under
|
||||||
|
this License. No additional rights or licenses will be implied from the
|
||||||
|
distribution or licensing of Covered Software under this License.
|
||||||
|
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||||
|
Contributor:
|
||||||
|
|
||||||
|
(a) for any code that a Contributor has removed from Covered Software;
|
||||||
|
or
|
||||||
|
|
||||||
|
(b) for infringements caused by: (i) Your and any other third party's
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||||
|
its Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks,
|
||||||
|
or logos of any Contributor (except as may be necessary to comply with
|
||||||
|
the notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this
|
||||||
|
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||||
|
permitted under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its
|
||||||
|
Contributions are its original creation(s) or it has sufficient rights
|
||||||
|
to grant the rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under
|
||||||
|
applicable copyright doctrines of fair use, fair dealing, or other
|
||||||
|
equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||||
|
in Section 2.1.
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under
|
||||||
|
the terms of this License. You must inform recipients that the Source
|
||||||
|
Code Form of the Covered Software is governed by the terms of this
|
||||||
|
License, and how they can obtain a copy of this License. You may not
|
||||||
|
attempt to alter or restrict the recipients' rights in the Source Code
|
||||||
|
Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
(a) such Covered Software must also be made available in Source Code
|
||||||
|
Form, as described in Section 3.1, and You must inform recipients of
|
||||||
|
the Executable Form how they can obtain a copy of such Source Code
|
||||||
|
Form by reasonable means in a timely manner, at a charge no more
|
||||||
|
than the cost of distribution to the recipient; and
|
||||||
|
|
||||||
|
(b) You may distribute such Executable Form under the terms of this
|
||||||
|
License, or sublicense it under different terms, provided that the
|
||||||
|
license for the Executable Form does not attempt to limit or alter
|
||||||
|
the recipients' rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for
|
||||||
|
the Covered Software. If the Larger Work is a combination of Covered
|
||||||
|
Software with a work governed by one or more Secondary Licenses, and the
|
||||||
|
Covered Software is not Incompatible With Secondary Licenses, this
|
||||||
|
License permits You to additionally distribute such Covered Software
|
||||||
|
under the terms of such Secondary License(s), so that the recipient of
|
||||||
|
the Larger Work may, at their option, further distribute the Covered
|
||||||
|
Software under the terms of either this License or such Secondary
|
||||||
|
License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices
|
||||||
|
(including copyright notices, patent notices, disclaimers of warranty,
|
||||||
|
or limitations of liability) contained within the Source Code Form of
|
||||||
|
the Covered Software, except that You may alter any license notices to
|
||||||
|
the extent required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on
|
||||||
|
behalf of any Contributor. You must make it absolutely clear that any
|
||||||
|
such warranty, support, indemnity, or liability obligation is offered by
|
||||||
|
You alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Covered Software due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description must
|
||||||
|
be placed in a text file included with all distributions of the Covered
|
||||||
|
Software under this License. Except to the extent prohibited by statute
|
||||||
|
or regulation, such description must be sufficiently detailed for a
|
||||||
|
recipient of ordinary skill to be able to understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
--------------
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically
|
||||||
|
if You fail to comply with any of its terms. However, if You become
|
||||||
|
compliant, then the rights granted under this License from a particular
|
||||||
|
Contributor are reinstated (a) provisionally, unless and until such
|
||||||
|
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||||
|
ongoing basis, if such Contributor fails to notify You of the
|
||||||
|
non-compliance by some reasonable means prior to 60 days after You have
|
||||||
|
come back into compliance. Moreover, Your grants from a particular
|
||||||
|
Contributor are reinstated on an ongoing basis if such Contributor
|
||||||
|
notifies You of the non-compliance by some reasonable means, this is the
|
||||||
|
first time You have received notice of non-compliance with this License
|
||||||
|
from such Contributor, and You become compliant prior to 30 days after
|
||||||
|
Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions,
|
||||||
|
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||||
|
directly or indirectly infringes any patent, then the rights granted to
|
||||||
|
You by any and all Contributors for the Covered Software under Section
|
||||||
|
2.1 of this License shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||||
|
end user license agreements (excluding distributors and resellers) which
|
||||||
|
have been validly granted by You or Your distributors under this License
|
||||||
|
prior to termination shall survive termination.
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 6. Disclaimer of Warranty *
|
||||||
|
* ------------------------- *
|
||||||
|
* *
|
||||||
|
* Covered Software is provided under this License on an "as is" *
|
||||||
|
* basis, without warranty of any kind, either expressed, implied, or *
|
||||||
|
* statutory, including, without limitation, warranties that the *
|
||||||
|
* Covered Software is free of defects, merchantable, fit for a *
|
||||||
|
* particular purpose or non-infringing. The entire risk as to the *
|
||||||
|
* quality and performance of the Covered Software is with You. *
|
||||||
|
* Should any Covered Software prove defective in any respect, You *
|
||||||
|
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||||
|
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||||
|
* essential part of this License. No use of any Covered Software is *
|
||||||
|
* authorized under this License except under this disclaimer. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 7. Limitation of Liability *
|
||||||
|
* -------------------------- *
|
||||||
|
* *
|
||||||
|
* Under no circumstances and under no legal theory, whether tort *
|
||||||
|
* (including negligence), contract, or otherwise, shall any *
|
||||||
|
* Contributor, or anyone who distributes Covered Software as *
|
||||||
|
* permitted above, be liable to You for any direct, indirect, *
|
||||||
|
* special, incidental, or consequential damages of any character *
|
||||||
|
* including, without limitation, damages for lost profits, loss of *
|
||||||
|
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||||
|
* and all other commercial damages or losses, even if such party *
|
||||||
|
* shall have been informed of the possibility of such damages. This *
|
||||||
|
* limitation of liability shall not apply to liability for death or *
|
||||||
|
* personal injury resulting from such party's negligence to the *
|
||||||
|
* extent applicable law prohibits such limitation. Some *
|
||||||
|
* jurisdictions do not allow the exclusion or limitation of *
|
||||||
|
* incidental or consequential damages, so this exclusion and *
|
||||||
|
* limitation may not apply to You. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the
|
||||||
|
courts of a jurisdiction where the defendant maintains its principal
|
||||||
|
place of business and such litigation shall be governed by laws of that
|
||||||
|
jurisdiction, without reference to its conflict-of-law provisions.
|
||||||
|
Nothing in this Section shall prevent a party's ability to bring
|
||||||
|
cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
----------------
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. Any law or regulation which provides
|
||||||
|
that the language of a contract shall be construed against the drafter
|
||||||
|
shall not be used to construe this License against a Contributor.
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version
|
||||||
|
of the License under which You originally received the Covered Software,
|
||||||
|
or under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a
|
||||||
|
modified version of this License if you rename the license and remove
|
||||||
|
any references to the name of the license steward (except to note that
|
||||||
|
such modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||||
|
Licenses
|
||||||
|
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular
|
||||||
|
file, then You may include the notice in a location (such as a LICENSE
|
||||||
|
file in a relevant directory) where a recipient would be likely to look
|
||||||
|
for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
|
defined by the Mozilla Public License, v. 2.0.
|
169
arch-config/.mozilla/firefox/default-release/chrome/README.org
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
* Lepton (old name: Proton Fix)
|
||||||
|
:PROPERTIES:
|
||||||
|
:TOC: :include all
|
||||||
|
:END:
|
||||||
|
|
||||||
|
|
||||||
|
*Table of Contents*
|
||||||
|
:CONTENTS:
|
||||||
|
- [[#lepton-old-name-proton-fix][Lepton (old name: Proton Fix)]]
|
||||||
|
- [[#introduction][Introduction]]
|
||||||
|
- [[#installation-guide][Installation Guide]]
|
||||||
|
- [[#why-proton][WHY Proton?]]
|
||||||
|
- [[#why-not-proton][WHY Not Proton?]]
|
||||||
|
- [[#padding-comparisons][Padding Comparisons]]
|
||||||
|
- [[#faq][FAQ]]
|
||||||
|
:END:
|
||||||
|
|
||||||
|
|
||||||
|
** Introduction
|
||||||
|
[[https://wiki.mozilla.org/Firefox/Proton][Proton]] is Firefox's new design, starting from Firefox 89. \\
|
||||||
|
[[https://design.firefox.com/photon/][Photon]] is the old design of Firefox which was used until version 88.
|
||||||
|
|
||||||
|
Proton's [[#why-proton][overall feel is good]], but there were a few things I [[#why-not-proton][didn't like]] and wanted to improve. \\
|
||||||
|
That's why this project was born, and Lepton to denote light theme layer.
|
||||||
|
|
||||||
|
/Disclaimer:/ It works on *Firefox 89* and above!!
|
||||||
|
| *Wiki* | | | |
|
||||||
|
| [[https://github.com/black7375/Firefox-UI-Fix/wiki/Installation-Guide][Installation Guide]] | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Screenshots][Screenshots]] | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Compatibility-Issues-Solution][Compatibility Issues Solution]] | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Tips][Tips]] |
|
||||||
|
|
||||||
|
[[https://user-images.githubusercontent.com/25581533/127980993-5c532856-0c1c-4548-b310-9495df246d16.png]]
|
||||||
|
|
||||||
|
(Lepton's design :arrow_up:)
|
||||||
|
|
||||||
|
- *Color*
|
||||||
|
- Default light/dark theme contrast enhancement
|
||||||
|
- Colorful context menu
|
||||||
|
- More dark mode support
|
||||||
|
- GTK system theme support
|
||||||
|
- Windows system theme support
|
||||||
|
- Windows7 compatibility
|
||||||
|
- *Icons*
|
||||||
|
- Panel
|
||||||
|
- Context Menu
|
||||||
|
- Global Menu
|
||||||
|
- Library's open context
|
||||||
|
- *Padding Narrower*
|
||||||
|
- Tab
|
||||||
|
- Panel
|
||||||
|
- Menu
|
||||||
|
- Density
|
||||||
|
- Others...
|
||||||
|
- *Tab Design*
|
||||||
|
- MultiSelected
|
||||||
|
- Adjust Color: Easily recognizable.
|
||||||
|
- Unselect:
|
||||||
|
- Divide Line: React to hover like chrome
|
||||||
|
- Clipped:
|
||||||
|
- Clearer Text: Adjusted clipped gradation
|
||||||
|
- Closed Button: Visible on hover
|
||||||
|
- Sound:
|
||||||
|
- Remove Second Label
|
||||||
|
- Show Favicon: Always show favicon
|
||||||
|
- Container Tab:
|
||||||
|
- Highlight line position: Displayed tab side.
|
||||||
|
- *Activity Stream Design*
|
||||||
|
- Search Bar:
|
||||||
|
- Focused Shadow: Same as the accent color
|
||||||
|
- Hand off to Awesomebar
|
||||||
|
- Icons:
|
||||||
|
- Size: Fill(Changes dynamically to your size)
|
||||||
|
- *Error Page Design*
|
||||||
|
- Illustrations: Restore error page illustrations
|
||||||
|
- *Others*
|
||||||
|
- Activate calculator at address bar
|
||||||
|
- Smooth Scrolling
|
||||||
|
- Mouse pointer for each context
|
||||||
|
|
||||||
|
** Installation Guide
|
||||||
|
|
||||||
|
*Script Installation (experimental)*
|
||||||
|
|
||||||
|
Linux, mac users:
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
bash -c "$(curl -fsSL https://raw.githubusercontent.com/black7375/Firefox-UI-Fix/master/install.sh)"
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Windows users: Run powershell as administrator
|
||||||
|
#+BEGIN_SRC powershell
|
||||||
|
Powershell -c "Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iwr https://raw.githubusercontent.com/black7375/Firefox-UI-Fix/master/install.ps1 -useb | iex"
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
*Manual Installation*
|
||||||
|
|
||||||
|
You can see the [[https://github.com/black7375/Firefox-UI-Fix/wiki/Installation-Guide][installation guide]] with screenshots on the wiki.
|
||||||
|
|
||||||
|
1. Download files
|
||||||
|
- Click the green ":arrow_down: Code"-button above
|
||||||
|
- Select ":package: Download Zip"
|
||||||
|
2. Find your profile directory
|
||||||
|
- Open =about:support= in a new tab
|
||||||
|
- Find the =Profile Folder= entry and click the =Open Folder= button
|
||||||
|
3. Copy downloaded files
|
||||||
|
- Extract the downloaded zip file
|
||||||
|
- Copy the =user.js= file to the previously opened profile directory
|
||||||
|
- Create a new directory inside your profile directory called =chrome=
|
||||||
|
- Copy the remaining files from the extracted zip-file into previously created the =chrome= directory
|
||||||
|
4. Restart Firefox
|
||||||
|
- Click the =Clear startup cache...= at the top of =about:support=
|
||||||
|
|
||||||
|
If you prefer Connected Tab, see [[https://github.com/black7375/Firefox-UI-Fix][Original Lepton]].\\
|
||||||
|
If you prefer Photon, see [[https://github.com/black7375/Firefox-UI-Fix/tree/photon-style][Lepton's photon-style]].
|
||||||
|
|
||||||
|
** WHY Proton?
|
||||||
|
I think a lot has improved.
|
||||||
|
|
||||||
|
[[https://user-images.githubusercontent.com/25581533/119773764-a6639e00-beb0-11eb-8023-498b6293c4b2.png]]
|
||||||
|
|
||||||
|
(Proton's design :arrow_up:)
|
||||||
|
|
||||||
|
- Neatly organized menu
|
||||||
|
- Icon beautiful enough to remind you of Edge
|
||||||
|
- Nice color scheme
|
||||||
|
- Satisfied Rounding
|
||||||
|
- Modal window & Scrollbar!!
|
||||||
|
|
||||||
|
** WHY Not Proton?
|
||||||
|
However, there are also many flaws.
|
||||||
|
|
||||||
|
[[https://user-images.githubusercontent.com/25581533/119773812-b5e2e700-beb0-11eb-923c-55ae1a8ca249.png]]
|
||||||
|
|
||||||
|
(Photon's design :arrow_up:)
|
||||||
|
|
||||||
|
- Is it a tab or a button?
|
||||||
|
- Where are the menu icons?
|
||||||
|
- Icons in ActivityStream are too small
|
||||||
|
- Padding gaps are wide
|
||||||
|
- :warning: Address bar 3-point menu, screenshot moves to toolbar (can't fix)
|
||||||
|
|
||||||
|
** Padding Comparisons
|
||||||
|
[[https://user-images.githubusercontent.com/25581533/120262626-8c97d180-c289-11eb-87a6-68e285d6d77c.png]]
|
||||||
|
[[https://user-images.githubusercontent.com/25581533/120253257-6ae11f00-c276-11eb-93cf-393f9845f30b.png]]
|
||||||
|
[[https://user-images.githubusercontent.com/25581533/118402352-1e33fc00-b659-11eb-89fc-3cb38207fe39.png]]
|
||||||
|
[[https://user-images.githubusercontent.com/25581533/124066951-0eb21c00-da29-11eb-9ac4-c6b82a268c6f.png]]
|
||||||
|
|
||||||
|
- Photon (Quantum)
|
||||||
|
- Proton
|
||||||
|
- Lepton
|
||||||
|
|
||||||
|
** FAQ
|
||||||
|
|
||||||
|
- *Black pixels around the selected tab bottom corners* \\
|
||||||
|
[[https://user-images.githubusercontent.com/5571586/120401980-edf58a00-c2f5-11eb-9e64-ce50c5b189b2.png]]
|
||||||
|
|
||||||
|
Please follow the [[https://github.com/black7375/Firefox-UI-Fix/wiki/Installation-Guide][Installation Guide]], \\
|
||||||
|
or set =about:config='s =svg.context-properties.content.enabled= to =true= .
|
||||||
|
|
||||||
|
- *Some panel menu items doesn't show* \\
|
||||||
|
[[https://user-images.githubusercontent.com/25581533/120487528-93b40200-c3a5-11eb-98ad-3498beb9f38e.png]]
|
||||||
|
|
||||||
|
Please follow the [[https://github.com/black7375/Firefox-UI-Fix/wiki/Installation-Guide][Installation Guide]], \\
|
||||||
|
or copy the =icons= directory to =chrome= .
|
||||||
|
|
||||||
|
|
||||||
|
- *Less icons in the panel with photon-style*\\
|
||||||
|
[[https://user-images.githubusercontent.com/25581533/123761424-5746c980-d8b1-11eb-9a0f-83fb305f9f08.png]]
|
||||||
|
[[https://user-images.githubusercontent.com/25581533/123762962-d4bf0980-d8b2-11eb-8492-d497d330c72a.png]]
|
||||||
|
|
||||||
|
I didn't put all the icons like before.\\
|
||||||
|
[[https://user-images.githubusercontent.com/25581533/123602947-dd4b0d80-d7e8-11eb-93a6-2b263bdd99f7.png]]
|
@ -0,0 +1,7 @@
|
|||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M3,5v1h2V5H3z M3,9h2V8H3V9z M3,12h2v-1H3V12z"/>
|
||||||
|
<path d="M7,2V1H1v1v1v11c0,0.5,0.5,1,1,1h12c0.5,0,1-0.5,1-1V2H7z M13.5,14h-11C2.2,14,2,13.8,2,13.5V3h12v10.5 C14,13.8,13.8,14,13.5,14z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 557 B |
@ -0,0 +1,4 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M13.003 6v-.004a2 2 0 00-2-2H6.175l-1.11-.887A.506.506 0 004.753 3H3a2 2 0 00-2 2v6a2 2 0 002 2h9.25a1.5 1.5 0 001.44-1.079l1.169-4A1.5 1.5 0 0013.419 6h-.416zM3 4h1.578l1.109.887a.5.5 0 00.312.109h5.004a1 1 0 011 1V6H4.25a1.5 1.5 0 00-1.44 1.08L2 9.857V5a1 1 0 011-1zm.77 3.36A.5.5 0 014.25 7h9.169a.5.5 0 01.48.64l-1.169 4a.5.5 0 01-.48.36H3.083a.5.5 0 01-.48-.64l1.167-4z"/>
|
||||||
|
<path d="M5.118 7.447l-.448.616h1.232l.448-.616H5.118zM4.67 9.911h1.232l.448-.616H5.118l-.448.616zm0 1.848h1.232l.448-.616H5.118l-.448.616zM6.966 7.447l-.448.616h4.312l.448-.616H6.966zm3.696 1.848H6.966l-.448.616h3.696l.448-.616zm-4.144 2.464h4.312l.448-.616H6.966l-.448.616z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 817 B |
@ -0,0 +1,4 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M9.987 12a.897.897 0 01-.488-.146l-1.449-.941-1.449.941a.897.897 0 01-1.026-.034.948.948 0 01-.349-.992l.424-1.704-1.319-1.125a.953.953 0 01-.286-1.013.917.917 0 01.811-.646l1.711-.114.633-1.635A.91.91 0 018.05 4c.377 0 .71.232.85.591l.633 1.635 1.711.114a.914.914 0 01.811.646A.955.955 0 0111.769 8l-1.318 1.124.423 1.704a.95.95 0 01-.348.992.916.916 0 01-.539.18zM7.813 9.991h.473l1.395.906a.137.137 0 00.076.022.144.144 0 00.138-.178l-.372-1.672.146-.462 1.269-1.082a.146.146 0 00.051-.112.145.145 0 00-.129-.145l-1.664-.153-.383-.286s-.409-1.057-.629-1.603a.14.14 0 00-.13-.089.143.143 0 00-.132.091L7.286 6.83l-.383.286-1.647.109a.145.145 0 00-.084.254l1.259 1.129.146.462-.408 1.641a.144.144 0 00.137.181.135.135 0 00.073-.021l1.434-.88z"/>
|
||||||
|
<path d="M15,2H1C0.5,2,0,2.5,0,3v10c0,0.5,0.5,1,1,1h14c0.5,0,1-0.5,1-1V3C16,2.5,15.5,2,15,2z M15,12.5 c0,0.3-0.2,0.5-0.5,0.5h-13C1.2,13,1,12.8,1,12.5v-9C1,3.2,1.2,3,1.5,3h13C14.8,3,15,3.2,15,3.5V12.5z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,4 @@
|
|||||||
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M3.929 6.357c0-.67.543-1.214 1.214-1.214h9.714c.671 0 1.214.544 1.214 1.214v2.429c0 .67-.543 1.214-1.214 1.214H5.143a1.214 1.214 0 01-1.214-1.214V6.357zm10.928 0H5.143v2.429h9.714V6.357zM12.429 11.214c-.671 0-1.215.544-1.215 1.215v1.214c0 .671.544 1.214 1.215 1.214h2.428c.671 0 1.214-.543 1.214-1.214v-1.214c0-.671-.543-1.215-1.214-1.215h-2.428zm0 1.215h2.428v1.214h-2.428v-1.214zM3.929 11.821c0-.335.271-.607.607-.607h4.857a.607.607 0 010 1.215H4.536a.607.607 0 01-.607-.608zM4.536 13.643a.607.607 0 100 1.214h4.857a.607.607 0 000-1.214H4.536z"/>
|
||||||
|
<path d="M1.5 5.143A3.643 3.643 0 015.143 1.5h9.714A3.643 3.643 0 0118.5 5.143v9.714a3.643 3.643 0 01-3.643 3.643H5.143A3.643 3.643 0 011.5 14.857V5.143zm3.643-2.429a2.43 2.43 0 00-2.429 2.429v9.714a2.43 2.43 0 002.429 2.429h9.714a2.43 2.43 0 002.429-2.429V5.143a2.43 2.43 0 00-2.429-2.429H5.143z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1008 B |
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M2.39705 2.55379L2.46967 2.46967C2.73594 2.2034 3.1526 2.1792 3.44621 2.39705L3.53033 2.46967L8 6.939L12.4697 2.46967C12.7626 2.17678 13.2374 2.17678 13.5303 2.46967C13.8232 2.76256 13.8232 3.23744 13.5303 3.53033L9.061 8L13.5303 12.4697C13.7966 12.7359 13.8208 13.1526 13.6029 13.4462L13.5303 13.5303C13.2641 13.7966 12.8474 13.8208 12.5538 13.6029L12.4697 13.5303L8 9.061L3.53033 13.5303C3.23744 13.8232 2.76256 13.8232 2.46967 13.5303C2.17678 13.2374 2.17678 12.7626 2.46967 12.4697L6.939 8L2.46967 3.53033C2.2034 3.26406 2.1792 2.8474 2.39705 2.55379L2.46967 2.46967L2.39705 2.55379Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 783 B |
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M18 20.5C18.276 20.5 18.5 20.275 18.5 20V10H14C12.896 10 12 9.104 12 8V3.5H6C5.724 3.5 5.5 3.725 5.5 4V14.6273C5.0625 14.3222 4.55203 14.1144 4 14.0354V4C4 2.896 4.896 2 6 2H12.172C12.1999 2 12.2271 2.00371 12.2542 2.00741C12.2738 2.01008 12.2933 2.01274 12.313 2.014C12.528 2.029 12.74 2.07 12.937 2.152C12.9944 2.17648 13.0488 2.20797 13.103 2.23933C13.1197 2.24897 13.1363 2.25859 13.153 2.268C13.1685 2.27647 13.1845 2.28426 13.2005 2.29207C13.2281 2.30548 13.2557 2.31894 13.281 2.336C13.359 2.389 13.429 2.452 13.5 2.516C13.5115 2.5262 13.5238 2.53567 13.5363 2.5452C13.5531 2.55808 13.57 2.57105 13.585 2.586L19.414 8.414C19.789 8.789 20 9.298 20 9.828V20C20 21.104 19.104 22 18 22H16.2636C16.6282 21.5865 16.8786 21.0701 16.9659 20.5H18ZM17.378 8.5L13.5 4.621V8C13.5 8.275 13.724 8.5 14 8.5H17.378ZM12.0522 20.5C12.2553 21.36 13.0279 22 13.95 22H14.05C14.9721 22 15.7447 21.36 15.9478 20.5C15.9819 20.3555 16 20.2049 16 20.05V19.8162C16 19.2015 15.6775 18.6318 15.1504 18.3156L13.6214 17.3982C13.5461 17.353 13.5 17.2716 13.5 17.1838V16.95C13.5 16.7015 13.7015 16.5 13.95 16.5H14.05C14.2985 16.5 14.5 16.7015 14.5 16.95V17C14.5 17.4142 14.8358 17.75 15.25 17.75C15.6642 17.75 16 17.4142 16 17V16.95C16 15.873 15.127 15 14.05 15H13.95C12.873 15 12 15.873 12 16.95V17.1838C12 17.7985 12.3225 18.3682 12.8496 18.6844L14.3786 19.6018C14.4539 19.647 14.5 19.7284 14.5 19.8162V20.05C14.5 20.2985 14.2985 20.5 14.05 20.5H13.95C13.7015 20.5 13.5 20.2985 13.5 20.05V20C13.5 19.5858 13.1642 19.25 12.75 19.25C12.3358 19.25 12 19.5858 12 20V20.05C12 20.2049 12.0181 20.3555 12.0522 20.5ZM5.95011 21.9994C5.96691 21.9829 5.98354 21.9663 6 21.9495V22C5.98332 22 5.96669 21.9998 5.95011 21.9994ZM7.24666 21C7.1601 20.8451 7.09405 20.6772 7.05218 20.5C7.01806 20.3555 7 20.2049 7 20.05V20C7 19.5858 7.33579 19.25 7.75 19.25C8.16421 19.25 8.5 19.5858 8.5 20V20.05C8.5 20.2985 8.70147 20.5 8.95 20.5H9.05C9.29853 20.5 9.5 20.2985 9.5 20.05V19.8162C9.5 19.7284 9.45393 19.647 9.37862 19.6018L7.84963 18.6844C7.32252 18.3682 7 17.7985 7 17.1838V16.95C7 15.873 7.87304 15 8.95 15H9.05C10.127 15 11 15.873 11 16.95V17C11 17.4142 10.6642 17.75 10.25 17.75C9.83579 17.75 9.5 17.4142 9.5 17V16.95C9.5 16.7015 9.29853 16.5 9.05 16.5H8.95C8.70147 16.5 8.5 16.7015 8.5 16.95V17.1838C8.5 17.2716 8.54607 17.353 8.62138 17.3982L10.1504 18.3156C10.6775 18.6318 11 19.2015 11 19.8162V20.05C11 20.2049 10.9819 20.3555 10.9478 20.5C10.906 20.6772 10.8399 20.8451 10.7533 21C10.4199 21.5966 9.78205 22 9.05 22H8.95C8.21795 22 7.58012 21.5966 7.24666 21ZM5.80831 20.4618C5.9318 20.1657 6 19.8408 6 19.5C6 19.1734 5.7913 18.8956 5.5 18.7927C5.42181 18.765 5.33766 18.75 5.25 18.75C4.97225 18.75 4.72976 18.901 4.60013 19.1254C4.53645 19.2356 4.5 19.3635 4.5 19.5C4.5 19.8575 4.31237 20.1712 4.03022 20.348C3.87651 20.4443 3.69476 20.5 3.5 20.5C2.94772 20.5 2.5 20.0523 2.5 19.5V17.5C2.5 16.9477 2.94772 16.5 3.5 16.5C3.68214 16.5 3.85291 16.5487 4 16.6338C4.2989 16.8067 4.5 17.1299 4.5 17.5C4.5 17.6365 4.53644 17.7644 4.60013 17.8746C4.72976 18.099 4.97225 18.25 5.25 18.25C5.33766 18.25 5.42181 18.235 5.5 18.2073C5.7913 18.1044 6 17.8266 6 17.5C6 16.9371 5.81396 16.4176 5.5 15.9998C5.13939 15.5198 4.61002 15.1738 4 15.05C3.83844 15.0172 3.67123 15 3.5 15C2.11929 15 1 16.1193 1 17.5V19.5C1 20.8807 2.11929 22 3.5 22C3.98733 22 4.44208 21.8606 4.82655 21.6194C5.2625 21.346 5.60808 20.9418 5.80831 20.4618Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
@ -0,0 +1,7 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M5.5 4.25C5.5 3.83579 5.83579 3.5 6.25 3.5H12V8C12 9.10457 12.8954 10 14 10H18.5V19.75C18.5 20.1642 18.1642 20.5 17.75 20.5H13V22H17.75C18.9926 22 20 20.9926 20 19.75V9.66421C20 9.20009 19.8156 8.75497 19.4874 8.42678L13.5732 2.51256C13.245 2.18437 12.7999 2 12.3358 2H6.25C5.00736 2 4 3.00736 4 4.25V12H5.5V4.25ZM13.5 8V4.56066L17.4393 8.5H14C13.7239 8.5 13.5 8.27614 13.5 8Z"/>
|
||||||
|
<path d="M4.5 13.75C4.5 14.1642 4.16421 14.5 3.75 14.5H2.5V21.5H3.75C4.16421 21.5 4.5 21.8358 4.5 22.25C4.5 22.6642 4.16421 23 3.75 23H2.5C1.67157 23 1 22.3284 1 21.5V14.5C1 13.6716 1.67157 13 2.5 13H3.75C4.16421 13 4.5 13.3358 4.5 13.75Z"/>
|
||||||
|
<path d="M9.25 14.5C8.83579 14.5 8.5 14.1642 8.5 13.75C8.5 13.3358 8.83579 13 9.25 13H10.5C11.3284 13 12 13.6716 12 14.5V21.5C12 22.3284 11.3284 23 10.5 23H9.25C8.83579 23 8.5 22.6642 8.5 22.25C8.5 21.8358 8.83579 21.5 9.25 21.5H10.5V14.5H9.25Z"/>
|
||||||
|
<path d="M6.5 16.75C6.91421 16.75 7.25 17.0858 7.25 17.5V21C7.25 21.4142 6.91421 21.75 6.5 21.75C6.08579 21.75 5.75 21.4142 5.75 21V17.5C5.75 17.0858 6.08579 16.75 6.5 16.75Z"/>
|
||||||
|
<path d="M6.5 16C6.91421 16 7.25 15.6642 7.25 15.25C7.25 14.8358 6.91421 14.5 6.5 14.5C6.08579 14.5 5.75 14.8358 5.75 15.25C5.75 15.6642 6.08579 16 6.5 16Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M13.749 4.463v-.004a2.28 2.28 0 00-2.28-2.281H5.964l-1.265-1.01a.568.568 0 00-.356-.125H2.345a2.28 2.28 0 00-2.28 2.28v6.841a2.28 2.28 0 002.28 2.28h10.546a1.71 1.71 0 001.642-1.231l1.332-4.56a1.71 1.71 0 00-1.641-2.19h-.475zM2.345 2.183h1.799l1.264 1.011a.572.572 0 00.356.125h5.705c.63 0 1.14.51 1.14 1.14v.004H3.77c-.76 0-1.429.502-1.642 1.231L1.205 8.86V3.323c0-.63.51-1.14 1.14-1.14zm.878 3.831a.57.57 0 01.547-.411h10.454a.57.57 0 01.547.73l-1.333 4.561a.57.57 0 01-.547.41H2.44a.57.57 0 01-.547-.73l1.33-4.56z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 676 B |
@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="context-fill" fill-opacity="context-fill-opacity">
|
||||||
|
<path d="M.256 3.652v7.745a2.58 2.58 0 002.581 2.581h10.326a2.58 2.58 0 002.581-2.581V4.943a2.581 2.581 0 00-2.581-2.582H6.936L5.499 1.212a.648.648 0 00-.403-.141H2.837A2.58 2.58 0 00.256 3.652zm1.29 0c0-.713.578-1.291 1.291-1.291h2.032l1.121.897-1.144 1.04h-3.3v-.646zm5.929 0h5.688c.713 0 1.291.578 1.291 1.291v6.454a1.29 1.29 0 01-1.291 1.29H2.837a1.29 1.29 0 01-1.291-1.29V5.588h3.55c.16 0 .315-.06.434-.168l1.945-1.768z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 555 B |
@ -0,0 +1,4 @@
|
|||||||
|
<svg viewBox="0 0 16 16" width="16" height="16" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M7.625 1.75c3.446 0 6.25 2.804 6.25 6.25s-2.804 6.25-6.25 6.25-6.25-2.804-6.25-6.25 2.804-6.25 6.25-6.25m0-1.25a7.5 7.5 0 1 0 0 15 7.5 7.5 0 0 0 0-15z"/>
|
||||||
|
<path d="M4.661 10.424c.11 0 .217-.029.312-.084l3-1.732.312-.542V4.625A.628.628 0 007.66 4a.628.628 0 00-.625.625v3.081L4.347 9.258a.627.627 0 00.314 1.166z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 473 B |
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M4.838.852h14.223a4.02 4.02 0 014.014 3.791l.006.228v14.224a4.02 4.02 0 01-3.792 4.013l-.228.007H4.838a4.02 4.02 0 01-4.013-3.792l-.007-.228V4.871A4.02 4.02 0 014.61.858l.228-.006zm2.566 14.223H2.673v4.02c0 1.136.875 2.067 1.987 2.157l.178.007h14.223a2.165 2.165 0 002.158-1.987l.007-.177v-4.02h-4.731a4.64 4.64 0 01-4.298 3.704l-.247.007a4.64 4.64 0 01-4.492-3.478l-.054-.233zM19.061 2.707H4.838a2.164 2.164 0 00-2.157 1.987l-.008.177v8.349h5.566c.47 0 .858.349.919.802l.009.126a2.783 2.783 0 005.559.19l.007-.19c0-.47.349-.858.801-.92l.126-.008h5.566V4.871a2.165 2.165 0 00-1.987-2.157l-.178-.007zM5.456 8.891h12.987a.928.928 0 01.126 1.847l-.126.008H5.456A.927.927 0 015.33 8.9l.126-.009h12.987H5.456zm0-3.71h12.987a.928.928 0 01.126 1.846l-.126.009H5.456a.927.927 0 01-.126-1.847l.126-.008h12.987H5.456z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 966 B |
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M6.25 3H17.75C19.483 3 20.8992 4.35645 20.9949 6.06558L21 6.25V17.75C21 19.483 19.6435 20.8992 17.9344 20.9949L17.75 21H6.25C4.51697 21 3.10075 19.6435 3.00514 17.9344L3 17.75V6.25C3 4.51697 4.35645 3.10075 6.06558 3.00514L6.25 3ZM8.32501 14.5H4.5V17.75C4.5 18.6682 5.20711 19.4212 6.10647 19.4942L6.25 19.5H17.75C18.6682 19.5 19.4212 18.7929 19.4942 17.8935L19.5 17.75V14.5H15.675C15.3404 16.1483 13.9247 17.404 12.2003 17.4947L12 17.5C10.253 17.5 8.78498 16.3053 8.36837 14.6884L8.32501 14.5ZM17.75 4.5H6.25C5.33183 4.5 4.57881 5.20711 4.5058 6.10647L4.5 6.25V13H9C9.3797 13 9.69349 13.2822 9.74315 13.6482L9.75 13.75C9.75 14.9926 10.7574 16 12 16C13.1909 16 14.1656 15.0748 14.2448 13.904L14.25 13.75C14.25 13.3703 14.5322 13.0565 14.8982 13.0068L15 13H19.5V6.25C19.5 5.33183 18.7929 4.57881 17.8935 4.5058L17.75 4.5ZM6.75 9.5H17.25C17.6642 9.5 18 9.83579 18 10.25C18 10.6297 17.7178 10.9435 17.3518 10.9932L17.25 11H6.75C6.33579 11 6 10.6642 6 10.25C6 9.8703 6.28215 9.55651 6.64823 9.50685L6.75 9.5H17.25H6.75ZM6.75 6.5H17.25C17.6642 6.5 18 6.83579 18 7.25C18 7.6297 17.7178 7.94349 17.3518 7.99315L17.25 8H6.75C6.33579 8 6 7.66421 6 7.25C6 6.8703 6.28215 6.55651 6.64823 6.50685L6.75 6.5H17.25H6.75Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M4.872.843h14.256a4.029 4.029 0 014.022 3.801l.007.228v14.256a4.029 4.029 0 01-3.801 4.022l-.228.007H4.872A4.029 4.029 0 01.85 19.356l-.007-.228V4.872A4.029 4.029 0 014.644.85l.228-.007h14.256H4.872zM2.703 15.099v4.029c0 1.138.876 2.072 1.991 2.162l.178.007h14.256a2.169 2.169 0 002.162-1.991l.007-.178v-4.029h-4.741a4.65 4.65 0 01-4.308 3.712l-.248.007a4.651 4.651 0 01-4.502-3.485l-.054-.234H2.703v4.029-4.029zM19.128 2.703H4.872A2.169 2.169 0 002.71 4.694l-.007.178v8.368h5.578c.471 0 .86.349.921.803l.009.126a2.79 2.79 0 005.572.191l.006-.191c0-.47.35-.859.804-.921l.126-.008h5.578V4.872a2.169 2.169 0 00-1.991-2.162l-.178-.007z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 791 B |
@ -1,7 +1,7 @@
|
|||||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
<svg data-name="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
|
<svg data-name="icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity">
|
||||||
<path fill="context-fill" fill-opacity="context-fill-opacity" d="M15.85 12.15l-3-3a0.49 0.49 0 0 0-0.7 0.7L14.29 12H9.5a0.5 0.5 0 0 0 0 1h4.79l-2.14 2.15a0.48 0.48 0 0 0 0 0.7 0.48 0.48 0 0 0 0.7 0l3-3a0.36 0.36 0 0 0 0.11-0.16 0.5 0.5 0 0 0 0-0.38 0.36 0.36 0 0 0-0.11-0.16z"/>
|
<path d="M15.85 12.15l-3-3a0.49 0.49 0 0 0-0.7 0.7L14.29 12H9.5a0.5 0.5 0 0 0 0 1h4.79l-2.14 2.15a0.48 0.48 0 0 0 0 0.7 0.48 0.48 0 0 0 0.7 0l3-3a0.36 0.36 0 0 0 0.11-0.16 0.5 0.5 0 0 0 0-0.38 0.36 0.36 0 0 0-0.11-0.16z"/>
|
||||||
<path fill="context-fill" fill-opacity="context-fill-opacity" d="M13 1H3a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h4a1 1 0 0 0 0-2H3a1 1 0 0 1-1-1V6h12v2a1 1 0 0 0 2 0V4a3 3 0 0 0-3-3zM2 5V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1z"/>
|
<path d="M13 1H3a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h4a1 1 0 0 0 0-2H3a1 1 0 0 1-1-1V6h12v2a1 1 0 0 0 2 0V4a3 3 0 0 0-3-3zM2 5V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1z"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 796 B After Width: | Height: | Size: 763 B |
@ -1,6 +1,6 @@
|
|||||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity" >
|
||||||
<path fill="context-fill" fill-opacity="context-fill-opacity" d="M14.707 13.293L11.414 10l2.293-2.293a1 1 0 0 0 0-1.414A4.384 4.384 0 0 0 10.586 5h-.172A2.415 2.415 0 0 1 8 2.586V2a1 1 0 0 0-1.707-.707l-5 5A1 1 0 0 0 2 8h.586A2.415 2.415 0 0 1 5 10.414v.169a4.036 4.036 0 0 0 1.337 3.166 1 1 0 0 0 1.37-.042L10 11.414l3.293 3.293a1 1 0 0 0 1.414-1.414zm-7.578-1.837A2.684 2.684 0 0 1 7 10.583v-.169a4.386 4.386 0 0 0-1.292-3.121 4.414 4.414 0 0 0-1.572-1.015l2.143-2.142a4.4 4.4 0 0 0 1.013 1.571A4.384 4.384 0 0 0 10.414 7h.172a2.4 2.4 0 0 1 .848.152z"/>
|
<path d="M14.707 13.293L11.414 10l2.293-2.293a1 1 0 0 0 0-1.414A4.384 4.384 0 0 0 10.586 5h-.172A2.415 2.415 0 0 1 8 2.586V2a1 1 0 0 0-1.707-.707l-5 5A1 1 0 0 0 2 8h.586A2.415 2.415 0 0 1 5 10.414v.169a4.036 4.036 0 0 0 1.337 3.166 1 1 0 0 0 1.37-.042L10 11.414l3.293 3.293a1 1 0 0 0 1.414-1.414zm-7.578-1.837A2.684 2.684 0 0 1 7 10.583v-.169a4.386 4.386 0 0 0-1.292-3.121 4.414 4.414 0 0 0-1.572-1.015l2.143-2.142a4.4 4.4 0 0 0 1.013 1.571A4.384 4.384 0 0 0 10.414 7h.172a2.4 2.4 0 0 1 .848.152z"/>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 837 B After Width: | Height: | Size: 862 B |
@ -0,0 +1,6 @@
|
|||||||
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M5 2C3.34315 2 2 3.34315 2 5V8.5C2 8.77614 2.22386 9 2.5 9C2.77614 9 3 8.77614 3 8.5V5C3 3.89543 3.89543 3 5 3H8.5C8.77614 3 9 2.77614 9 2.5C9 2.22386 8.77614 2 8.5 2H5Z"/>
|
||||||
|
<path d="M11.5 2C11.2239 2 11 2.22386 11 2.5C11 2.77614 11.2239 3 11.5 3H15C16.1046 3 17 3.89543 17 5V8.5C17 8.77614 17.2239 9 17.5 9C17.7761 9 18 8.77614 18 8.5V5C18 3.34315 16.6569 2 15 2H11.5Z"/>
|
||||||
|
<path d="M2.5 11C2.77614 11 3 11.2239 3 11.5V15C3 16.1046 3.89543 17 5 17H8.5C8.77614 17 9 17.2239 9 17.5C9 17.7761 8.77614 18 8.5 18H5C3.34315 18 2 16.6569 2 15V11.5C2 11.2239 2.22386 11 2.5 11Z"/>
|
||||||
|
<path d="M18 11.5C18 11.2239 17.7761 11 17.5 11C17.2239 11 17 11.2239 17 11.5V15C17 16.1046 16.1046 17 15 17H11.5C11.2239 17 11 17.2239 11 17.5C11 17.7761 11.2239 18 11.5 18H15C16.6569 18 18 16.6569 18 15V11.5Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 941 B |
@ -1,7 +1,7 @@
|
|||||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16" fill="context-fill" fill-opacity="context-fill-opacity">
|
||||||
<path fill="context-fill" fill-opacity="context-fill-opacity" d="M 15.707 4.293 l -4 -4 a 1 1 0 0 0 -1.414 1.414 L 12.585 4 H 11 a 7.008 7.008 0 0 0 -7 7 a 1 1 0 0 0 2 0 a 5.006 5.006 0 0 1 5 -5 h 1.585 l -2.293 2.293 a 1 1 0 1 0 1.414 1.414 l 4 -4 a 1 1 0 0 0 0.001 -1.414 Z"/>
|
<path d="M8.25 10.375a.625.625 0 0 1-1.25 0l0-8.323-3.308 3.309a.626.626 0 0 1-.885-.885L7.285 0l.681 0 4.477 4.476a.626.626 0 0 1-.885.885L8.25 2.052l0 8.323z"/>
|
||||||
<path fill="context-fill" fill-opacity="context-fill-opacity" d="M 13 11 a 1 1 0 0 0 -1 1 v 1 a 1 1 0 0 1 -1 1 H 3 a 1 1 0 0 1 -1 -1 V 6 a 1 1 0 0 1 1 -1 h 1 a 1 1 0 0 0 0 -2 H 3 a 3 3 0 0 0 -3 3 v 7 a 3 3 0 0 0 3 3 h 8 a 3 3 0 0 0 3 -3 v -1 a 1 1 0 0 0 -1 -1 Z"/>
|
<path d="M12.25 15a2 2 0 0 0 2-2l0-1.375a.625.625 0 0 0-1.25 0l0 1.525-.6.6-9.55 0-.6-.6 0-1.525a.625.625 0 0 0-1.25 0L1 13a2 2 0 0 0 2 2l9.25 0z"/>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 850 B After Width: | Height: | Size: 675 B |
@ -0,0 +1,6 @@
|
|||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="context-fill" fill-opacity="context-fill-opacity">
|
||||||
|
<path d="M1 1v6l8 8 6-6-8-8H1zm0-1h6a1 1 0 0 1 .707.293l8 8a1 1 0 0 1 0 1.414l-6 6a1 1 0 0 1-1.414 0l-8-8A1 1 0 0 1 0 7V1a1 1 0 0 1 1-1zm3 5a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 1a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 547 B |
@ -0,0 +1,4 @@
|
|||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity"><path d="M13 1H3a3.007 3.007 0 0 0-3 3v8a3.009 3.009 0 0 0 3 3h10a3.005 3.005 0 0 0 3-3V4a3.012 3.012 0 0 0-3-3zM3 3h10a1 1 0 0 1 1 1v1H2V4a1 1 0 0 1 1-1zm11 3v1H2V6zm-1 7H3a1 1 0 0 1-1-1V8h12v4a1 1 0 0 1-1 1z"></path></svg>
|
After Width: | Height: | Size: 576 B |
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M7 6.25244V6.99982H4.25C3.00736 6.99982 2 8.00717 2 9.24982V17.7466C2 18.9892 3.00736 19.9966 4.25 19.9966H19.75C20.9926 19.9966 22 18.9892 22 17.7466V9.24982C22 8.00718 20.9926 6.99982 19.75 6.99982H17V6.25244C17 5.0098 15.9926 4.00244 14.75 4.00244H9.25C8.00736 4.00244 7 5.0098 7 6.25244ZM9.25 5.50244H14.75C15.1642 5.50244 15.5 5.83823 15.5 6.25244V6.99982H8.5V6.25244C8.5 5.83823 8.83579 5.50244 9.25 5.50244ZM7 8.50244H8.5V8.49982H15.5V8.50244H17V8.49982H19.75C20.1642 8.49982 20.5 8.8356 20.5 9.24982V11.4998H17.5V10.7498C17.5 10.3356 17.1642 9.99982 16.75 9.99982C16.3358 9.99982 16 10.3356 16 10.7498V11.4998H8V10.7498C8 10.3356 7.66421 9.99982 7.25 9.99982C6.83579 9.99982 6.5 10.3356 6.5 10.7498V11.4998H3.5V9.24982C3.5 8.8356 3.83579 8.49982 4.25 8.49982H7V8.50244ZM16 12.9998V14.2498C16 14.664 16.3358 14.9998 16.75 14.9998C17.1642 14.9998 17.5 14.664 17.5 14.2498V12.9998H20.5V17.7466C20.5 18.1608 20.1642 18.4966 19.75 18.4966H4.25C3.83579 18.4966 3.5 18.1608 3.5 17.7466V12.9998H6.5V14.2498C6.5 14.664 6.83579 14.9998 7.25 14.9998C7.66421 14.9998 8 14.664 8 14.2498V12.9998H16Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
@ -1,6 +1,6 @@
|
|||||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity">
|
||||||
<path fill="context-fill" fill-opacity="context-fill-opacity" d="M11.414 10l2.293-2.293a1 1 0 0 0 0-1.414 4.418 4.418 0 0 0-.8-.622L11.425 7.15h.008l-4.3 4.3v-.017l-1.48 1.476a3.865 3.865 0 0 0 .692.834 1 1 0 0 0 1.37-.042L10 11.414l3.293 3.293a1 1 0 0 0 1.414-1.414zm3.293-8.707a1 1 0 0 0-1.414 0L9.7 4.882A2.382 2.382 0 0 1 8 2.586V2a1 1 0 0 0-1.707-.707l-5 5A1 1 0 0 0 2 8h.586a2.382 2.382 0 0 1 2.3 1.7l-3.593 3.593a1 1 0 1 0 1.414 1.414l12-12a1 1 0 0 0 0-1.414zm-9 6a4.414 4.414 0 0 0-1.571-1.015l2.143-2.142a4.4 4.4 0 0 0 1.013 1.571 4.191 4.191 0 0 0 .9.684l-1.8 1.8a4.2 4.2 0 0 0-.684-.898z"/>
|
<path d="M11.414 10l2.293-2.293a1 1 0 0 0 0-1.414 4.418 4.418 0 0 0-.8-.622L11.425 7.15h.008l-4.3 4.3v-.017l-1.48 1.476a3.865 3.865 0 0 0 .692.834 1 1 0 0 0 1.37-.042L10 11.414l3.293 3.293a1 1 0 0 0 1.414-1.414zm3.293-8.707a1 1 0 0 0-1.414 0L9.7 4.882A2.382 2.382 0 0 1 8 2.586V2a1 1 0 0 0-1.707-.707l-5 5A1 1 0 0 0 2 8h.586a2.382 2.382 0 0 1 2.3 1.7l-3.593 3.593a1 1 0 1 0 1.414 1.414l12-12a1 1 0 0 0 0-1.414zm-9 6a4.414 4.414 0 0 0-1.571-1.015l2.143-2.142a4.4 4.4 0 0 0 1.013 1.571 4.191 4.191 0 0 0 .9.684l-1.8 1.8a4.2 4.2 0 0 0-.684-.898z"/>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 883 B After Width: | Height: | Size: 907 B |
797
arch-config/.mozilla/firefox/default-release/chrome/install.ps1
Normal file
@ -0,0 +1,797 @@
|
|||||||
|
<#
|
||||||
|
|
||||||
|
.SYNOPSIS
|
||||||
|
Installer for Lepton
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
Installs Lepton onto selected Firefox profiles
|
||||||
|
|
||||||
|
.INPUTS
|
||||||
|
TODO: input directories for installation?
|
||||||
|
Would need to discuss a non-interactive install system
|
||||||
|
|
||||||
|
.OUTPUTS
|
||||||
|
TODO: output directories that Lepton has been installed to?
|
||||||
|
|
||||||
|
.PARAMETER u
|
||||||
|
Specifies whether to update a current installation
|
||||||
|
Defaults to false
|
||||||
|
|
||||||
|
.PARAMETER f
|
||||||
|
Specifies a custom path to look for Firefox profiles in
|
||||||
|
|
||||||
|
.PARAMETER p
|
||||||
|
Specifies a custom name to use when creating a profile
|
||||||
|
|
||||||
|
.PARAMETER h
|
||||||
|
Shows this help message
|
||||||
|
|
||||||
|
.PARAMETER ?
|
||||||
|
Shows this help message
|
||||||
|
|
||||||
|
.PARAMETER WhatIf
|
||||||
|
Runs the installer without actioning any file copies/moves
|
||||||
|
Equivelant to a dry-run
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
PS> .\Install.ps1 -u -f C:\Users\someone\ff-profiles
|
||||||
|
Updates current installations in the profile directory 'C:\Users\someone\ff-profiles'
|
||||||
|
|
||||||
|
.LINK
|
||||||
|
https://github.com/black7375/Firefox-UI-Fix#readme
|
||||||
|
|
||||||
|
#>
|
||||||
|
|
||||||
|
[CmdletBinding(
|
||||||
|
SupportsShouldProcess = $true,
|
||||||
|
PositionalBinding = $false
|
||||||
|
)]
|
||||||
|
|
||||||
|
param(
|
||||||
|
[Alias("u")]
|
||||||
|
[Switch]$updateMode,
|
||||||
|
[Alias("f")]
|
||||||
|
[string]$profileDir,
|
||||||
|
[Alias("p")]
|
||||||
|
[string]$profileName,
|
||||||
|
[Alias("h")]
|
||||||
|
[Switch]$help = $false
|
||||||
|
)
|
||||||
|
|
||||||
|
#** Helper Utils ***************************************************************
|
||||||
|
#== Message ====================================================================
|
||||||
|
function Lepton-ErrorMessage() {
|
||||||
|
Write-Error "FAILED: ${args}"
|
||||||
|
exit -1
|
||||||
|
}
|
||||||
|
|
||||||
|
function Lepton-OKMessage() {
|
||||||
|
$local:SIZE = 50
|
||||||
|
$local:FILLED = ""
|
||||||
|
for ($i = 0; $i -le ($SIZE - 2); $i++) {
|
||||||
|
$FILLED += "."
|
||||||
|
}
|
||||||
|
$FILLED += "OK"
|
||||||
|
|
||||||
|
$local:message = "${args}"
|
||||||
|
Write-Host ${message}(${FILLED}.Substring(${message}.Length))
|
||||||
|
}
|
||||||
|
|
||||||
|
$PSMinSupportedVersion = 2
|
||||||
|
function Verify-PowerShellVersion {
|
||||||
|
Write-Host -NoNewline "Checking PowerShell version... "
|
||||||
|
$PSVersion = [int](Select-Object -Property Major -First 1 -ExpandProperty Major -InputObject $PSVersionTable.PSVersion)
|
||||||
|
|
||||||
|
Write-Host "[$PSVersion]"
|
||||||
|
if ($PSVersion -lt $PSMinSupportedVersion) {
|
||||||
|
Write-Error -Category NotInstalled "You need a minimum PowerShell version of [$PSMinSupportedVersion] to use this installer"
|
||||||
|
exit -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#== Required Tools =============================================================
|
||||||
|
function Install-Choco() {
|
||||||
|
# https://chocolatey.org/install
|
||||||
|
Set-ExecutionPolicy Bypass -Scope Process -Force
|
||||||
|
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
|
||||||
|
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
|
||||||
|
$env:Path += ";C:\ProgramData\chocolatey"
|
||||||
|
}
|
||||||
|
|
||||||
|
function Check-Git() {
|
||||||
|
if( -Not (Get-Command git) ) {
|
||||||
|
if ( -Not (Get-Command choco)) {
|
||||||
|
Install-Choco
|
||||||
|
}
|
||||||
|
choco install git -y
|
||||||
|
$env:Path += ";C:\Program Files\Git\bin"
|
||||||
|
}
|
||||||
|
|
||||||
|
Lepton-OKMessage "Required - git"
|
||||||
|
}
|
||||||
|
|
||||||
|
#== PATH / File ================================================================
|
||||||
|
$currentDir = (Get-Location).path
|
||||||
|
|
||||||
|
function Filter-Path() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Mandatory=$true, Position=0)]
|
||||||
|
[string[]] $pathList,
|
||||||
|
[Parameter(Position=1)]
|
||||||
|
[string] $option = "Any"
|
||||||
|
)
|
||||||
|
|
||||||
|
return $pathList.Where({ Test-Path -Path "$_" -PathType "${option}" })
|
||||||
|
}
|
||||||
|
|
||||||
|
function Copy-Auto() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Mandatory=$true, Position=0)]
|
||||||
|
[string] $file,
|
||||||
|
[Parameter(Mandatory=$true, Position=1)]
|
||||||
|
[string] $target
|
||||||
|
)
|
||||||
|
|
||||||
|
if ( "${file}" -eq "${target}" ) {
|
||||||
|
Write-Host "'${file}' and ${target} are same file"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( Test-Path -Path "${target}" ) {
|
||||||
|
Write-Host "${target} already exists."
|
||||||
|
Write-Host "Now making a backup.."
|
||||||
|
Copy-Auto "${target}" "${target}.bak"
|
||||||
|
Remove-Item "${target}" -Recurse -Force
|
||||||
|
Write-Host ""
|
||||||
|
}
|
||||||
|
|
||||||
|
Copy-Item -Path "${file}" -Destination "${target}" -Force -Recurse
|
||||||
|
}
|
||||||
|
|
||||||
|
function Move-Auto() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Mandatory=$true, Position=0)]
|
||||||
|
[string] $file,
|
||||||
|
[Parameter(Mandatory=$true, Position=1)]
|
||||||
|
[string] $target
|
||||||
|
)
|
||||||
|
|
||||||
|
if ( "${file}" -eq "${target}" ) {
|
||||||
|
Write-Host "'${file}' and ${target} are same file"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( Test-Path -Path "${target}" ) {
|
||||||
|
Write-Host "${target} already exists."
|
||||||
|
Write-Host "Now making a backup.."
|
||||||
|
Move-Auto "${target}" "${target}.bak"
|
||||||
|
Write-Host ""
|
||||||
|
}
|
||||||
|
|
||||||
|
Get-ChildItem -Path "${target}" -Recurse | Move-Item -Path "${file}" -Destination "${target}" -Force
|
||||||
|
}
|
||||||
|
|
||||||
|
function Restore-Auto() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Mandatory=$true, Position=0)]
|
||||||
|
[string] $file
|
||||||
|
)
|
||||||
|
$local:target = "${file}.bak"
|
||||||
|
|
||||||
|
if ( Test-Path -Path "${file}" ) {
|
||||||
|
Remove-Item "${file}" -Recurse -Force
|
||||||
|
}
|
||||||
|
Get-ChildItem -Path "${target}" -Recurse | Move-Item -Destination "${file}" -Force
|
||||||
|
|
||||||
|
$local:lookupTarget = "${target}.bak"
|
||||||
|
if ( Test-Path -Path "${lookupTarget}" ) {
|
||||||
|
Restore-Auto "${target}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Write-File() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Mandatory=$true, Position=0)]
|
||||||
|
[string] $filePath,
|
||||||
|
[Parameter(Position=1)]
|
||||||
|
[string] $fileContent = ""
|
||||||
|
)
|
||||||
|
|
||||||
|
if ( "${fileContent}" -eq "" ) {
|
||||||
|
New-Item -Path "${filePath}" -Force
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Out-File -FilePath "${filePath}" -InputObject "${fileContent}" -Force
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#== INI File ================================================================
|
||||||
|
# https://devblogs.microsoft.com/scripting/use-powershell-to-work-with-any-ini-file/
|
||||||
|
function Get-IniContent () {
|
||||||
|
Param (
|
||||||
|
[Parameter(Mandatory=$true, Position=0)]
|
||||||
|
[string] $filePath
|
||||||
|
)
|
||||||
|
|
||||||
|
$ini = @{}
|
||||||
|
switch -regex -file $filePath {
|
||||||
|
"^\[(.+)\]" {
|
||||||
|
# Section
|
||||||
|
$section = $matches[1]
|
||||||
|
$ini[$section] = @{}
|
||||||
|
$CommentCount = 0
|
||||||
|
}
|
||||||
|
"^(;.*)$" {
|
||||||
|
# Comment
|
||||||
|
$value = $matches[1]
|
||||||
|
$CommentCount = $CommentCount + 1
|
||||||
|
$name = “Comment” + $CommentCount
|
||||||
|
$ini[$section][$name] = $value
|
||||||
|
}
|
||||||
|
"(.+?)\s*=(.*)" {
|
||||||
|
# For compatibility
|
||||||
|
if ( $section -eq $null ) {
|
||||||
|
$section = "Info"
|
||||||
|
$ini[$section] = @{}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Key
|
||||||
|
$name,$value = $matches[1..2]
|
||||||
|
$ini[$section][$name] = $value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $ini
|
||||||
|
}
|
||||||
|
|
||||||
|
function Out-IniFile() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Mandatory=$true, Position=0)]
|
||||||
|
[string] $filePath,
|
||||||
|
[Parameter(Position=1)]
|
||||||
|
[hashtable] $iniObject = @{}
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create new file
|
||||||
|
$local:outFile = New-Item -ItemType file -Path "${filepath}" -Force
|
||||||
|
|
||||||
|
foreach ($i in $iniObject.keys) {
|
||||||
|
if (!($($iniObject[$i].GetType().Name) -eq "Hashtable")) {
|
||||||
|
#No Sections
|
||||||
|
Add-Content -Path $outFile -Value "$i=$($iniObject[$i])"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
#Sections
|
||||||
|
Add-Content -Path $outFile -Value "[$i]"
|
||||||
|
Foreach ($j in ($iniObject[$i].keys | Sort-Object)) {
|
||||||
|
if ($j -match "^Comment[\d]+") {
|
||||||
|
Add-Content -Path $outFile -Value "$($iniObject[$i][$j])"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Add-Content -Path $outFile -Value "$j=$($iniObject[$i][$j])"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Add-Content -Path $outFile -Value ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#** Select Menu ****************************************************************
|
||||||
|
# https://github.com/chrisseroka/ps-menu
|
||||||
|
function Check-PsMenu() {
|
||||||
|
if(-Not (Get-InstalledModule ps-menu -ErrorAction silentlycontinue)) {
|
||||||
|
Set-PSRepository PSGallery -InstallationPolicy Trusted
|
||||||
|
Install-Module -Name ps-menu -Confirm:$False -Force
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function DrawMenu {
|
||||||
|
param ($menuItems, $menuPosition, $Multiselect, $selection)
|
||||||
|
$l = $menuItems.length
|
||||||
|
for ($i = 0; $i -le $l; $i++) {
|
||||||
|
if ($menuItems[$i] -ne $null){
|
||||||
|
$item = $menuItems[$i]
|
||||||
|
if ($Multiselect) {
|
||||||
|
if ($selection -contains $i){
|
||||||
|
$item = '[x] ' + $item
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$item = '[ ] ' + $item
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($i -eq $menuPosition) {
|
||||||
|
Write-Host "> $($item)" -ForegroundColor Green
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Host " $($item)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Toggle-Selection {
|
||||||
|
param ($pos, [array]$selection)
|
||||||
|
if ($selection -contains $pos){
|
||||||
|
$result = $selection | where {$_ -ne $pos}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$selection += $pos
|
||||||
|
$result = $selection
|
||||||
|
}
|
||||||
|
$result
|
||||||
|
}
|
||||||
|
|
||||||
|
function Menu {
|
||||||
|
param ([array]$menuItems, [switch]$ReturnIndex=$false, [switch]$Multiselect)
|
||||||
|
$vkeycode = 0
|
||||||
|
$pos = 0
|
||||||
|
$selection = @()
|
||||||
|
if ($menuItems.Length -gt 0) {
|
||||||
|
try {
|
||||||
|
[console]::CursorVisible=$false #prevents cursor flickering
|
||||||
|
DrawMenu $menuItems $pos $Multiselect $selection
|
||||||
|
While ($vkeycode -ne 13 -and $vkeycode -ne 27) {
|
||||||
|
$press = $host.ui.rawui.readkey("NoEcho,IncludeKeyDown")
|
||||||
|
$vkeycode = $press.virtualkeycode
|
||||||
|
If ($vkeycode -eq 38 -or $press.Character -eq 'k') {$pos--}
|
||||||
|
If ($vkeycode -eq 40 -or $press.Character -eq 'j') {$pos++}
|
||||||
|
If ($vkeycode -eq 36) { $pos = 0 }
|
||||||
|
If ($vkeycode -eq 35) { $pos = $menuItems.length - 1 }
|
||||||
|
If ($press.Character -eq ' ') { $selection = Toggle-Selection $pos $selection }
|
||||||
|
if ($pos -lt 0) {$pos = 0}
|
||||||
|
If ($vkeycode -eq 27) {$pos = $null }
|
||||||
|
if ($pos -ge $menuItems.length) {$pos = $menuItems.length -1}
|
||||||
|
if ($vkeycode -ne 27) {
|
||||||
|
$startPos = [System.Console]::CursorTop - $menuItems.Length
|
||||||
|
[System.Console]::SetCursorPosition(0, $startPos)
|
||||||
|
DrawMenu $menuItems $pos $Multiselect $selection
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
[System.Console]::SetCursorPosition(0, $startPos + $menuItems.Length)
|
||||||
|
[console]::CursorVisible = $true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$pos = $null
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($ReturnIndex -eq $false -and $pos -ne $null) {
|
||||||
|
if ($Multiselect){
|
||||||
|
return $menuItems[$selection]
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return $menuItems[$pos]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ($Multiselect) {
|
||||||
|
return $selection
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return $pos
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#** Profile ********************************************************************
|
||||||
|
#== Profile Dir ================================================================
|
||||||
|
# $HOME = (get-psprovider 'FileSystem').Home
|
||||||
|
$firefoxProfileDirPaths = @(
|
||||||
|
"${HOME}\AppData\Roaming\Mozilla\Firefox",
|
||||||
|
"${HOME}\AppData\Roaming\LibreWolf"
|
||||||
|
)
|
||||||
|
|
||||||
|
function Check-ProfileDir() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Position=0)]
|
||||||
|
[string] $profileDir = ""
|
||||||
|
)
|
||||||
|
|
||||||
|
if ( "${profileDir}" -ne "" ) {
|
||||||
|
$global:firefoxProfileDirPaths = @("${profileDir}")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$global:firefoxProfileDirPaths = Filter-Path $global:firefoxProfileDirPaths "Container"
|
||||||
|
|
||||||
|
if ( $firefoxProfileDirPaths.Length -eq 0 ) {
|
||||||
|
Lepton-ErrorMessage "Unable to find firefox profile dir."
|
||||||
|
}
|
||||||
|
|
||||||
|
Lepton-OKMessage "Profiles dir found"
|
||||||
|
}
|
||||||
|
|
||||||
|
#== Profile Info ===============================================================
|
||||||
|
$PROFILEINFOFILE="profiles.ini"
|
||||||
|
function Check-ProfileIni() {
|
||||||
|
foreach ( $profileDir in $global:firefoxProfileDirPaths ) {
|
||||||
|
if ( -Not (Test-Path -Path "${profileDir}\${PROFILEINFOFILE}" -PathType "Leaf") ) {
|
||||||
|
Lepton-ErrorMessage "Unable to find ${PROFILEINFOFILE} at ${profileDir}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Lepton-OKMessage "Profiles info file found"
|
||||||
|
}
|
||||||
|
|
||||||
|
#== Profile PATH ===============================================================
|
||||||
|
$firefoxProfilePaths = @()
|
||||||
|
function Update-ProfilePaths() {
|
||||||
|
foreach ( $profileDir in $global:firefoxProfileDirPaths ) {
|
||||||
|
$local:iniContent = Get-IniContent "${profileDir}\${PROFILEINFOFILE}"
|
||||||
|
$global:firefoxProfilePaths += $iniContent.Values.Path | ForEach-Object { "${profileDir}\${PSItem}" }
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( $firefoxProfilePaths.Length -ne 0 ) {
|
||||||
|
Lepton-OkMessage "Profile paths updated"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Lepton-ErrorMessage "Doesn't exist profiles"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# TODO: Multi select support
|
||||||
|
function Select-Profile() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Position=0)]
|
||||||
|
[string] $profileName = ""
|
||||||
|
)
|
||||||
|
|
||||||
|
if ( "${profileName}" -ne "" ) {
|
||||||
|
$local:targetPath = ""
|
||||||
|
foreach ( $profilePath in $global:firefoxProfilePaths ) {
|
||||||
|
if ( "${profilePath}" -like "*${profileName}" ) {
|
||||||
|
$targetPath = "${profilePath}"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( "${targetPath}" -ne "" ) {
|
||||||
|
Lepton-OkMessage "Profile, `"${profileName}`" found"
|
||||||
|
$global:firefoxProfilePaths = @("${targetPath}")
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Lepton-ErrorMessage "Unable to find ${profileName}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ( $firefoxProfilePaths.Length -eq 1 ) {
|
||||||
|
Lepton-OkMessage "Auto detected profile"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$global:firefoxProfilePaths = Menu $firefoxProfilePaths
|
||||||
|
|
||||||
|
if ( $firefoxProfilePaths.Length -eq 0 ) {
|
||||||
|
Lepton-ErrorMessage "Please select profiles"
|
||||||
|
}
|
||||||
|
|
||||||
|
Lepton-OkMessage "Selected profile"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#** Lepton Info File ***********************************************************
|
||||||
|
# If you interst RFC, see install.sh
|
||||||
|
|
||||||
|
#== Lepton Info ================================================================
|
||||||
|
$LEPTONINFOFILE ="lepton.ini"
|
||||||
|
function Check-LeptonIni() {
|
||||||
|
foreach ( $profileDir in $global:firefoxProfileDirPaths ) {
|
||||||
|
if ( -Not (Test-Path -Path "${profileDir}\${LEPTONINFOFILE}") ) {
|
||||||
|
Lepton-ErrorMessage "Unable to find ${LEPTONINFOFILE} at ${profileDir}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Lepton-OkMessage "Lepton info file found"
|
||||||
|
}
|
||||||
|
|
||||||
|
#== Create info file ===========================================================
|
||||||
|
# We should always create a new one, as it also takes into account the possibility of setting it manually.
|
||||||
|
# Updates happen infrequently, so the creation overhead is less significant.
|
||||||
|
|
||||||
|
function Get-ProfileDir() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Mandatory=$true, Position=0)]
|
||||||
|
[string] $profilePath
|
||||||
|
)
|
||||||
|
foreach ( $profileDir in $firefoxProfileDirPaths ) {
|
||||||
|
if ( "$profilePath" -like "${profileDir}*" ) {
|
||||||
|
return "$profileDir"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$CHROMEINFOFILE="LEPTON"
|
||||||
|
function Write-LeptonInfo() {
|
||||||
|
# Init info
|
||||||
|
$local:output = @{}
|
||||||
|
$local:prevDir = $firefoxProfileDirPaths[0]
|
||||||
|
$local:latestPath = ( $firefoxProfilePaths | Select-Object -Last 1 )
|
||||||
|
foreach ( $profilePath in $global:firefoxProfilePaths ) {
|
||||||
|
$local:LEPTONINFOPATH = "${profilePath}\chrome\${CHROMEINFOFILE}"
|
||||||
|
$local:LEPTONGITPATH = "${profilePath}\chrome\.git"
|
||||||
|
|
||||||
|
# Profile info
|
||||||
|
$local:Type = ""
|
||||||
|
$local:Ver = ""
|
||||||
|
$local:Branch = ""
|
||||||
|
$local:Path = ""
|
||||||
|
if ( Test-Path -Path "${LEPTONINFOPATH}" ) {
|
||||||
|
if ( Test-Path -Path "${LEPTONGITPATH}" -PathType "Container" ) {
|
||||||
|
$Type = "Git"
|
||||||
|
$Ver = $(git --git-dir "${LEPTONGITPATH}" rev-parse HEAD)
|
||||||
|
$Branch = $(git --git-dir "${LEPTONGITPATH}" rev-parse --abbrev-ref HEAD)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$local:iniContent = Get-IniContent "${LEPTONINFOPATH}"
|
||||||
|
$Type = $iniContent["Info"]["Type"]
|
||||||
|
$Ver = $iniContent["Info"]["Ver"]
|
||||||
|
$Branch = $iniContent["Info"]["Branch"]
|
||||||
|
|
||||||
|
if ( "${Type}" -eq "" ) {
|
||||||
|
$Type = "Local"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$Path = "${profilePath}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Flushing
|
||||||
|
$local:profileDir = Get-ProfileDir "${profilePath}"
|
||||||
|
$local:profileName = Split-Path "${profilePath}" -Leaf
|
||||||
|
if ( "${prevDir}" -ne "${profileDir}" ) {
|
||||||
|
Out-IniFile "${prevDir}\${LEPTONINFOFILE}" $output
|
||||||
|
$output = @{}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Make output contents
|
||||||
|
foreach ( $key in @("Type", "Branch", "Ver", "Path") ) {
|
||||||
|
$local:value = (Get-Variable -Name "${key}").Value
|
||||||
|
if ( "$value" -ne "" ) {
|
||||||
|
$output["${profileName}"] += @{"${key}" = "${value}"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Latest element flushing
|
||||||
|
if ( "${profilePath}" -eq "${latestPath}" ) {
|
||||||
|
Out-IniFile "${profileDir}\${LEPTONINFOFILE}" $output
|
||||||
|
}
|
||||||
|
$prevDir = "${profileDir}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Verify
|
||||||
|
Check-LeptonIni
|
||||||
|
Lepton-OkMessage "Lepton info file created"
|
||||||
|
}
|
||||||
|
|
||||||
|
#** Install ********************************************************************
|
||||||
|
#== Install Types ==============================================================
|
||||||
|
$updateMode = $false
|
||||||
|
$leptonBranch = "master"
|
||||||
|
function Select-Distribution() {
|
||||||
|
while ( $true ) {
|
||||||
|
$local:selected = $false
|
||||||
|
$local:selectedDistribution = Menu @("Original(default)", "Photon-Style", "Proton-Style", "Update")
|
||||||
|
switch ( $selectedDistribution ) {
|
||||||
|
"Original(default)" { $global:leptonBranch = "master" ; $selected = $true }
|
||||||
|
"Photon-Style" { $global:leptonBranch = "photon-style"; $selected = $true }
|
||||||
|
"Proton-Style" { $global:leptonBranch = "proton-style"; $selected = $true }
|
||||||
|
"Update" { $global:updateMode = $true ; $selected = $true }
|
||||||
|
default { Write-Host "Invalid option, reselect please." }
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( $selected -eq $true ) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Lepton-OkMessage "Selected ${selectedDistribution}"
|
||||||
|
}
|
||||||
|
|
||||||
|
$leptonInstallType = "Network" # Other types: Local, Release
|
||||||
|
function Check-InstallType() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Mandatory=$true, Position=0)]
|
||||||
|
[string[]] $targetList,
|
||||||
|
[Parameter(Mandatory=$true, Position=1)]
|
||||||
|
[string] $installType
|
||||||
|
)
|
||||||
|
|
||||||
|
$local:targetCount = $targetList.Length
|
||||||
|
$local:foundCount = (Filter-Path $targetList ).Length
|
||||||
|
|
||||||
|
if ( "${targetCount}" -eq "${foundCount}" ) {
|
||||||
|
$global:leptonInstallType="${installType}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$checkLocalFiles = @(
|
||||||
|
"userChrome.css",
|
||||||
|
"userContent.css",
|
||||||
|
"icons"
|
||||||
|
)
|
||||||
|
$checkReleaseFiles = @(
|
||||||
|
"user.js"
|
||||||
|
"chrome\userChrome.css"
|
||||||
|
"chrome\userContent.css"
|
||||||
|
"chrome\icons"
|
||||||
|
)
|
||||||
|
function Check-InstallTypes() {
|
||||||
|
Check-InstallType $checkLocalFiles "Local"
|
||||||
|
Check-InstallType $checkReleaseFiles "Release"
|
||||||
|
|
||||||
|
Lepton-OkMessage "Checked install type: ${leptonInstallType}"
|
||||||
|
if ( "${leptonInstallType}" -eq "Network" ) {
|
||||||
|
Select-Distribution
|
||||||
|
}
|
||||||
|
if ( "${leptonInstallType}" -eq "Local" ) {
|
||||||
|
if ( Test-Path -Path ".git" -PathType "Container" ) {
|
||||||
|
Select-Distribution
|
||||||
|
git checkout "${leptonBranch}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#== Install Helpers ============================================================
|
||||||
|
$chromeDuplicate = $false
|
||||||
|
function Check-ChromeExist() {
|
||||||
|
if ( (Test-Path -Path "chrome") -and (-Not (Test-Path -Path "chrome\${LEPTONINFOFILE}")) ) {
|
||||||
|
$global:chromeDuplicate = $true
|
||||||
|
Move-Auto "chrome" "chrome.bak"
|
||||||
|
Lepton-OkMessage "Backup files"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Check-ChromeRestore() {
|
||||||
|
if ( "${chromeDuplicate}" -eq $true ) {
|
||||||
|
Restore-Auto "chrome"
|
||||||
|
Lepton-OkMessage "End restore files"
|
||||||
|
}
|
||||||
|
Lepton-OkMessage "End check restore files"
|
||||||
|
}
|
||||||
|
|
||||||
|
function Clean-Lepton() {
|
||||||
|
if ( ($chromeDuplicate -ne $true) -and (Test-Path -Path "chrome") ) {
|
||||||
|
Remove-Item -Path "chrome" -Recurse -Force
|
||||||
|
}
|
||||||
|
Lepton-OkMessage "End clean files"
|
||||||
|
}
|
||||||
|
function Clone-Lepton() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Position=0)]
|
||||||
|
[string] $branch = ""
|
||||||
|
)
|
||||||
|
|
||||||
|
if ( "${branch}" -eq "" ) {
|
||||||
|
$branch = "${leptonBranch}"
|
||||||
|
}
|
||||||
|
|
||||||
|
git clone -b "${branch}" https://github.com/black7375/Firefox-UI-Fix.git chrome
|
||||||
|
if ( -Not (Test-Path -Path "chrome" -PathType "Container") ) {
|
||||||
|
Lepton-ErrorMessage "Unable to find downloaded files"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Copy-Lepton() {
|
||||||
|
Param (
|
||||||
|
[Parameter(Position=0)]
|
||||||
|
[string] $chromeDir = "chrome",
|
||||||
|
[Parameter(Position=0)]
|
||||||
|
[string] $userJSPath = "${chromeDir}\user.js"
|
||||||
|
)
|
||||||
|
|
||||||
|
foreach ( $profilePath in $global:firefoxProfilePaths ) {
|
||||||
|
Copy-Auto "${userJSPath}" "${profilePath}\user.js"
|
||||||
|
Copy-Auto "${chromeDir}" "${profilePath}\chrome"
|
||||||
|
}
|
||||||
|
|
||||||
|
Lepton-OkMessage "End profile copy"
|
||||||
|
}
|
||||||
|
|
||||||
|
#== Each Install ===============================================================
|
||||||
|
function Install-Local() {
|
||||||
|
Copy-Lepton "${currentDir}" "user.js"
|
||||||
|
}
|
||||||
|
|
||||||
|
function Install-Release() {
|
||||||
|
Copy-Lepton "chrome" "user.js"
|
||||||
|
}
|
||||||
|
|
||||||
|
function Install-Network() {
|
||||||
|
Check-ChromeExist
|
||||||
|
Check-Git
|
||||||
|
|
||||||
|
Clone-Lepton
|
||||||
|
Copy-Lepton
|
||||||
|
|
||||||
|
Clean-Lepton
|
||||||
|
Check-ChromeRestore
|
||||||
|
}
|
||||||
|
|
||||||
|
function Install-Profile() {
|
||||||
|
Lepton-OkMessage "Started install"
|
||||||
|
|
||||||
|
switch ( "${leptonInstallType}" ) {
|
||||||
|
"Local" { Install-Local }
|
||||||
|
"Release" { Install-Release }
|
||||||
|
"Network" { Install-Network }
|
||||||
|
}
|
||||||
|
|
||||||
|
Lepton-OkMessage "End install"
|
||||||
|
}
|
||||||
|
|
||||||
|
#** Update *********************************************************************
|
||||||
|
function Update-Profile() {
|
||||||
|
Check-Git
|
||||||
|
foreach ( $profileDir in $global:firefoxProfileDirPaths ) {
|
||||||
|
$local:LEPTONINFOPATH = "${profileDir}\${LEPTONINFOFILE}"
|
||||||
|
$local:LEPTONINFO = Get-IniContent "${LEPTONINFOPATH}"
|
||||||
|
$local:sections = $LEPTONINFO.Keys
|
||||||
|
if ( $sections.Length -ne 0 ) {
|
||||||
|
foreach ( $section in $sections ) {
|
||||||
|
$local:Type = $LEPTONINFO["${section}"]["Type"]
|
||||||
|
$local:Branch = $LEPTONINFO["${section}"]["Branch"]
|
||||||
|
$local:Path = $LEPTONINFO["${section}"]["Path"]
|
||||||
|
|
||||||
|
$local:LEPTONGITPATH="${Path}\chrome\.git"
|
||||||
|
if ( "${Type}" -eq "Git" ){
|
||||||
|
git --git-dir "${LEPTONGITPATH}" checkout "${Branch}"
|
||||||
|
git --git-dir "${LEPTONGITPATH}" pull --no-edit
|
||||||
|
}
|
||||||
|
elseif ( "${Type}" -eq "Local" -or "${Type}" -eq "Release" ) {
|
||||||
|
Check-ChromeExist
|
||||||
|
Clone-Lepton
|
||||||
|
|
||||||
|
$firefoxProfilePaths = @("${Path}")
|
||||||
|
Copy-Lepton
|
||||||
|
|
||||||
|
if ( "${Branch}" -eq $null ) {
|
||||||
|
$Branch = "${leptonBranch}"
|
||||||
|
}
|
||||||
|
git --git-dir "${LEPTONGITPATH}" checkout "${Branch}"
|
||||||
|
|
||||||
|
if ( "${Type}" -eq "Release" ) {
|
||||||
|
$local:Ver=$(git --git-dir "${LEPTONINFOFILE}" describe --tags --abbrev=0)
|
||||||
|
git --git-dir "${LEPTONGITPATH}" checkout "tags/${Ver}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Lepton-ErrorMessage "Unable to find update type, ${Type} at ${section}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Clean-Lepton
|
||||||
|
Check-ChromeRestore
|
||||||
|
}
|
||||||
|
|
||||||
|
#** Main ***********************************************************************
|
||||||
|
function Check-Help {
|
||||||
|
# Cheap and dirty way of getting the same output as '-?' for '-h' and '-Help'
|
||||||
|
if ($help) {
|
||||||
|
Get-Help "$PSCommandPath"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Install-Lepton {
|
||||||
|
Verify-PowerShellVersion # Check installed version meets minimum
|
||||||
|
Check-InstallTypes
|
||||||
|
|
||||||
|
Check-ProfileDir $profileDir
|
||||||
|
Check-ProfileIni
|
||||||
|
Update-ProfilePaths
|
||||||
|
Write-LeptonInfo
|
||||||
|
|
||||||
|
if ( $updateMode ) {
|
||||||
|
Update-Profile
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Select-Profile $profileName
|
||||||
|
Install-Profile
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-LeptonInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
Check-Help
|
||||||
|
Install-Lepton
|
@ -2,6 +2,12 @@
|
|||||||
// userchrome.css usercontent.css activate
|
// userchrome.css usercontent.css activate
|
||||||
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
|
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
|
||||||
|
|
||||||
|
// Proton Enabled #127
|
||||||
|
user_pref("browser.proton.enabled", true);
|
||||||
|
|
||||||
|
// Proton Tooltip
|
||||||
|
user_pref("browser.proton.places-tooltip.enabled", true);
|
||||||
|
|
||||||
// Fill SVG Color
|
// Fill SVG Color
|
||||||
user_pref("svg.context-properties.content.enabled", true);
|
user_pref("svg.context-properties.content.enabled", true);
|
||||||
|
|
||||||
@ -12,8 +18,57 @@ user_pref("layout.css.backdrop-filter.enabled", true);
|
|||||||
user_pref("browser.compactmode.show", true);
|
user_pref("browser.compactmode.show", true);
|
||||||
|
|
||||||
// about:home Search Bar
|
// about:home Search Bar
|
||||||
// user_pref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar", false);
|
user_pref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar", false);
|
||||||
|
|
||||||
// ** Useful Options ***********************************************************
|
// ** Useful Options ***********************************************************
|
||||||
// Integrated calculator at urlbar
|
// Integrated calculator at urlbar
|
||||||
user_pref("browser.urlbar.suggest.calculator", true);
|
user_pref("browser.urlbar.suggest.calculator", true);
|
||||||
|
|
||||||
|
// Integrated unit convertor at urlbar
|
||||||
|
// user_pref("browser.urlbar.unitConversion.enabled", true);
|
||||||
|
|
||||||
|
// ** Scrolling Options ********************************************************
|
||||||
|
// based on natural smooth scrolling v2 by aveyo
|
||||||
|
// this preset will reset couple extra variables for consistency
|
||||||
|
// Pref Value Original
|
||||||
|
user_pref("apz.allow_zooming", true); /// true
|
||||||
|
user_pref("apz.force_disable_desktop_zooming_scrollbars", false); /// false
|
||||||
|
user_pref("apz.paint_skipping.enabled", true); /// true
|
||||||
|
user_pref("apz.windows.use_direct_manipulation", true); /// true
|
||||||
|
user_pref("dom.event.wheel-deltaMode-lines.always-disabled", true); /// false
|
||||||
|
user_pref("general.smoothScroll.currentVelocityWeighting", "0.12"); /// "0.25" <- 1. If scroll too slow, set to "0.15"
|
||||||
|
user_pref("general.smoothScroll.durationToIntervalRatio", 1000); /// 200
|
||||||
|
user_pref("general.smoothScroll.lines.durationMaxMS", 100); /// 150
|
||||||
|
user_pref("general.smoothScroll.lines.durationMinMS", 0); /// 150
|
||||||
|
user_pref("general.smoothScroll.mouseWheel.durationMaxMS", 100); /// 200
|
||||||
|
user_pref("general.smoothScroll.mouseWheel.durationMinMS", 0); /// 50
|
||||||
|
user_pref("general.smoothScroll.mouseWheel.migrationPercent", 100); /// 100
|
||||||
|
user_pref("general.smoothScroll.msdPhysics.continuousMotionMaxDeltaMS", 12); /// 120
|
||||||
|
user_pref("general.smoothScroll.msdPhysics.enabled", true); /// false
|
||||||
|
user_pref("general.smoothScroll.msdPhysics.motionBeginSpringConstant", 200); /// 1250
|
||||||
|
user_pref("general.smoothScroll.msdPhysics.regularSpringConstant", 200); /// 1000
|
||||||
|
user_pref("general.smoothScroll.msdPhysics.slowdownMinDeltaMS", 10); /// 12
|
||||||
|
user_pref("general.smoothScroll.msdPhysics.slowdownMinDeltaRatio", "1.20"); /// "1.3"
|
||||||
|
user_pref("general.smoothScroll.msdPhysics.slowdownSpringConstant", 1000); /// 2000
|
||||||
|
user_pref("general.smoothScroll.other.durationMaxMS", 100); /// 150
|
||||||
|
user_pref("general.smoothScroll.other.durationMinMS", 0); /// 150
|
||||||
|
user_pref("general.smoothScroll.pages.durationMaxMS", 100); /// 150
|
||||||
|
user_pref("general.smoothScroll.pages.durationMinMS", 0); /// 150
|
||||||
|
user_pref("general.smoothScroll.pixels.durationMaxMS", 100); /// 150
|
||||||
|
user_pref("general.smoothScroll.pixels.durationMinMS", 0); /// 150
|
||||||
|
user_pref("general.smoothScroll.scrollbars.durationMaxMS", 100); /// 150
|
||||||
|
user_pref("general.smoothScroll.scrollbars.durationMinMS", 0); /// 150
|
||||||
|
user_pref("general.smoothScroll.stopDecelerationWeighting", "0.6"); /// "0.4"
|
||||||
|
user_pref("layers.async-pan-zoom.enabled", true); /// true
|
||||||
|
user_pref("layout.css.scroll-behavior.spring-constant", "250.0"); /// "250.0"
|
||||||
|
user_pref("mousewheel.acceleration.factor", 3); /// 10
|
||||||
|
user_pref("mousewheel.acceleration.start", -1); /// -1
|
||||||
|
user_pref("mousewheel.default.delta_multiplier_x", 100); /// 100
|
||||||
|
user_pref("mousewheel.default.delta_multiplier_y", 100); /// 100
|
||||||
|
user_pref("mousewheel.default.delta_multiplier_z", 100); /// 100
|
||||||
|
user_pref("mousewheel.min_line_scroll_amount", 0); /// 5
|
||||||
|
user_pref("mousewheel.system_scroll_override.enabled", true); /// true <- 2. If scroll too fast, set to false
|
||||||
|
user_pref("mousewheel.system_scroll_override_on_root_content.enabled", false); /// true
|
||||||
|
user_pref("mousewheel.transaction.timeout", 1500); /// 1500
|
||||||
|
user_pref("toolkit.scrollbox.horizontalScrollDistance", 4); /// 5
|
||||||
|
user_pref("toolkit.scrollbox.verticalScrollDistance", 3); /// 3
|
||||||
|