Update part 1

This commit is contained in:
RealStickman 2021-10-07 16:32:19 +02:00
parent df040be048
commit 0ff2c83121
29 changed files with 2006 additions and 14 deletions

View File

@ -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.

View File

@ -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 youre on the latest version.
- Try older versions.
- Try switching up dependency versions.
- **Search:** Search the projects [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/)

View 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

View File

@ -0,0 +1,3 @@
[Info]
Ver=v4.2.0
Branch=proton-style

View 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.

View 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]]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,7 +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 data-name="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<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 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"/>
<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 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="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>

Before

Width:  |  Height:  |  Size: 796 B

After

Width:  |  Height:  |  Size: 763 B

View File

@ -1,6 +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" viewBox="0 0 16 16">
<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"/>
</svg>
<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="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>

Before

Width:  |  Height:  |  Size: 837 B

After

Width:  |  Height:  |  Size: 862 B

View File

@ -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

View File

@ -1,7 +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 xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
<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 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"/>
</svg>
<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 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 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>

Before

Width:  |  Height:  |  Size: 850 B

After

Width:  |  Height:  |  Size: 675 B

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,6 +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" viewBox="0 0 16 16">
<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"/>
</svg>
<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="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>

Before

Width:  |  Height:  |  Size: 883 B

After

Width:  |  Height:  |  Size: 907 B

View 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

View File

@ -2,6 +2,12 @@
// userchrome.css usercontent.css activate
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
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);
// about:home Search Bar
// user_pref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar", false);
user_pref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar", false);
// ** Useful Options ***********************************************************
// Integrated calculator at urlbar
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