diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 76222fbadb..1d4a064a32 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -106,7 +106,7 @@ 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
+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
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000000..cc6d1dddb7
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,99 @@
+# Lawnchair Contributing Guidelines
+
+
+
+
+
+
+
+First and foremost, welcome to the **Lawnchair** Contributing Guidelines!
+
+### đ« Bug reports & feature requests
+
+For bug reports, please describe the bug in detail to the best of your ability
+and steps on how to reproduce it. If applicable, attach log files.
+
+For feature requests, please describe the feature you'd like to see added to Lawnchair.
+If applicable, attach log files.
+
+Please make sure to be civil during discussion of your contribution (refer to the [Code of Conduct](CODE_OF_CONDUCT.md))
+
+### đ Translation
+
+For translation, visit [Lawnchair on Crowdin](https://lawnchair.crowdin.com) and follow these tips:
+
+- When using quotation marks, insert the symbols specific to the target language, as listed in this [this summary table](https://en.wikipedia.org/wiki/Quotation_mark#Summary_table);
+- Lawnchair uses title case for some English UI text while other languages do not use title case; opt for sentence case instead;
+- Some English terminology may have not have commonly-used equivalents in other languages. In such cases, use short descriptive phrasesâfor example, the equivalent of _bottom row_ for _dock_;
+- Some languages (e.g. French) have variations of words depending if it's masculine or feminine (gender-specific); we recommend opting for gender-neutral words instead.
+
+### đ§âđ» Code
+
+> [!NOTE]
+> For Lawnchair 9 to 13, see the branches with the `9-` to `13-` prefixes respectively.
+
+For code, it's highly recommended that you use [Android Studio](https://developer.android.com/studio),
+know [Java](https://www.java.com) or preferably [Kotlin](https://kotlinlang.org/), and [Git](https://git-scm.com/).
+
+> [!IMPORTANT]
+> You can use Git to clone the repository; ensure that you include the projectâs submodules using the `recursive` flag:
+>
+> ```
+> git clone --recursive https://github.com/LawnchairLauncher/lawnchair.git
+> ```
+
+To build **Lawnchair**, select the `lawnWithQuickstepGithubDebug` build type.
+Should you face errors relating to the `iconloaderlib` and `searchuilib` projects,
+run `git submodule update --init --recursive`.
+
+Here are some contribution tips to help you get started:
+
+- Always make sure that you're up-to-date with **Lawnchair** by setting your base branch to `14-dev`.
+- Make sure your code is logical and well-formatted. If using Kotlin, see [âCoding conventionsâ in the Kotlin documentation](https://kotlinlang.org/docs/coding-conventions.html);
+- [The `lawnchair` package](https://github.com/LawnchairLauncher/lawnchair/tree/14-dev/lawnchair) houses Lawnchairâs own code, whereas [the `src` package](https://github.com/LawnchairLauncher/lawnchair/tree/14-dev/src) includes a clone of the Launcher3 codebase with modifications. Generally, place new files in the former, keeping changes to the latter to a minimum.
+
+#### Additional documentation
+
+- Lawnchair Quickstep Compat Lib ([README.md](compatLib/README.md))
+- Lawnchair Preferences Components ([README.md](lawnchair/src/app/lawnchair/ui/preferences/components/README.md))
+- SystemUI ViewCapture ([README.md](systemUIViewCapture/README.md))
+- SystemUI Common ([README.md](systemUICommon/README.md))
+- Prebuilt Library ([README.md](prebuilts/libs/README.md))
+
+#### Versioning scheme
+
+As of [#4361](https://github.com/LawnchairLauncher/lawnchair/pull/4361),
+Lawnchairâs version code is separated by four parts:
+
+
+
+
+
+
+
+
+
+1. Android's major version
+2. Android's minor version
+3. Lawnchair's development status
+4. Lawnchair's development version
+
+##### Android's major & minor versions
+
+These make up the first two parts of the version code.
+For example: Android 11 will be `11_00_XX_XX` while Android 12.1 will be `12_01_XX_XX`.
+
+##### Development status & version
+
+The third part of the version code indicates Lawnchair's stability status, while the fourth part indicates the version number.
+
+For example, Alpha 4's version code will be `XX_XX_01_04`.
+
+See the table below detailing the release type:
+
+| Status | Stage |
+| ----------------- | ----- |
+| Alpha | 01 |
+| Beta | 02 |
+| Release Candidate | 03 |
+| Release | 04 |
diff --git a/README.md b/README.md
index f5ca983368..168f831756 100644
--- a/README.md
+++ b/README.md
@@ -6,48 +6,40 @@
[](https://t.me/lccommunity)
[](https://discord.gg/3x8qNWxgGZ)
-
+
+
+
+
+
+
+
Lawnchair is a free, open-source home app for Android. Taking Launcher3 â Androidâs default home app â as a starting point, it ports Pixel Launcher features and introduces rich options for customization.
-This branch houses the codebase of Lawnchair 14, currently in development and based on Launcher3 from Android 14. For Lawnchair 9 to 13, see the branches with the `9-` to `13-` prefixes, respectively.
+This branch houses the codebase of Lawnchair 14, which is currently in beta and is based on Launcher3 from Android 14. For Lawnchair 9 to 13, see the branches with the `9-` to `13-` prefixes, respectively.
-## Contribute code
+## Features
-Whether youâve fixed a bug or introduced a new feature, we welcome pull requests! (If youâd like to make a larger change and check with us first, you can do so via [Lawnchairâs Telegram group chat](https://t.me/lawnchairci).) To help translate Lawnchair 14 instead, please see â[Translate](#translate).â
+- Pixel Launcher-like UI with Material You design
+- At a Glance widget with Smartspacer support
+- QuickSwitch support
+- Global Search support
+- Icons, fonts, and colors customization
+- And more!
-You can use Git to clone this repository:
+## Download
-```
-git clone --recursive https://github.com/LawnchairLauncher/lawnchair.git
-```
+See the [Releases](https://github.com/LawnchairLauncher/lawnchair/releases) section for the latest
+beta build. For development builds with new icons, use the nightly builds.
-To build the app, select the `lawnWithQuickstepDebug` build type. Should you face errors relating to the `iconloaderlib` and `searchuilib` projects, run `git submodule update --init --recursive`.
+## Contributing
-Here are a few contribution tips:
-
-- [The `lawnchair` package](https://github.com/LawnchairLauncher/lawnchair/tree/14-dev/lawnchair) houses Lawnchairâs own code, whereas [the `src` package](https://github.com/LawnchairLauncher/lawnchair/tree/14-dev/src) includes a clone of the Launcher3 codebase with modifications. Generally, place new files in the former, keeping changes to the latter to a minimum.
-
-- You can use either Java or, preferably, Kotlin.
-
-- Make sure your code is logical and well formatted. If using Kotlin, see [âCoding conventionsâ in the Kotlin documentation](https://kotlinlang.org/docs/coding-conventions.html).
-
-- Set `14-dev` as the base branch for pull requests.
-
-## Translate
-
-You can help translate Lawnchair 14 [on Crowdin](https://lawnchair.crowdin.com/lawnchair). Here are a few tips:
-
-- When using quotation marks, insert the symbols specific to the target language, as listed in [this table](https://en.wikipedia.org/wiki/Quotation_mark#Summary_table).
-
-- Lawnchair uses title case for some English UI text. Title case isnât used in other languages; opt for sentence case instead.
-
-- Some English terminology may have no commonly used equivalents in other languages. In such cases, use short descriptive phrasesâfor example, the equivalent of _bottom row_ for _dock_.
+Please visit the [Lawnchair Contributing Guidelines](CONTRIBUTING.md) for information and tips on contributing to Lawnchair.
## Quick links
-- [News](https://t.me/lawnchairci)
-- [Lawnchair on Twitter](https://twitter.com/lawnchairapp)
-- [Website](https://lawnchair.app)
-- [_XDA_ thread](https://forum.xda-developers.com/t/lawnchair-customizable-pixel-launcher.3627137/)
+- [News](https://t.me/lawnchairci)
+- [Lawnchair on Twitter](https://twitter.com/lawnchairapp)
+- [Website](https://lawnchair.app)
+- [_XDA_ thread](https://forum.xda-developers.com/t/lawnchair-customizable-pixel-launcher.3627137/)
-You can view all our links [in the Lawnchair Wiki](https://github.com/LawnchairLauncher/lawnchair/wiki).
+You can view all our links in the [Lawnchair Wiki](https://github.com/LawnchairLauncher/lawnchair/wiki).
diff --git a/SECURITY.md b/SECURITY.md
index 7d8f728d1d..73bfef146a 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -1,23 +1,29 @@
# Security Policy
## Supported Versions
-> [!NOTE]
-> Lawnchair v2 (Play Store version) is **unsupported**. Use the newer alphas instead. See [this FAQ page](https://lawnchair.app/faq#do-you-still-support-the-play-store-version) for additional information.
+
+> [!WARNING]
+> Lawnchair v2 (Play Store version) is **unsupported**. Use the newer alphas instead.
+> See [this FAQ page](https://lawnchair.app/faq#do-you-still-support-the-play-store-version) for additional information.
The latest version of Lawnchair is the only supported version.
-| Version | Supported |
-| ------- | ------------------ |
-| 14 | :white_check_mark: |
-| 13 | :x: |
-| 12.1 | :x: |
-| 12 | :x: |
-| 11 | :x: |
-| v2 | :x: |
-| v1 | :x: |
+
+| Version | Supported |
+| -------------- | ------------------ |
+| 14 | :white_check_mark: |
+| 13 | :x: |
+| 12.1 | :x: |
+| 12 | :x: |
+| 11 | :x: |
+| Older (legacy) | :x: |
## Reporting Security issues
-We appreciate your efforts to responsibly disclose your findings and will make every effort to acknowledge your contributions.
-To report an issue, please contact a developer (can be found in the about page of the app) in Telegram or Discord and state your security vulnerability starting with the words "SECURITY".
+We appreciate your efforts to responsibly disclose your findings and will make every effort to
+acknowledge your contributions.
+
+To report an issue, please file a [security advisory](https://github.com/LawnchairLauncher/lawnchair/security/advisories/new)
+or contact a developer (can be found in the about page of the app) in Telegram or Discord and
+state your security vulnerability starting with the words "**SECURITY**".
We'll endeavour to respond quickly, and will keep you updated throughout the process.
diff --git a/build.gradle b/build.gradle
index 4b208faaf5..3b55c24b19 100644
--- a/build.gradle
+++ b/build.gradle
@@ -136,7 +136,7 @@ android {
namespace "com.android.launcher3"
defaultConfig {
// Lawnchair Launcher 14.0 Beta 2
- // Android 14, Minor 0, Lawnchair Stage 2 (Beta), Update No 2
+ // See CONTRIBUTING.md#versioning-scheme
versionCode 14_00_02_02
versionName "${versionDisplayName}"
buildConfigField "String", "VERSION_DISPLAY_NAME", "\"${versionDisplayName}\""
diff --git a/compatLib/README.md b/compatLib/README.md
index d282b8c088..d7e55b3a3b 100644
--- a/compatLib/README.md
+++ b/compatLib/README.md
@@ -1 +1,14 @@
-# Lawnchair Quickstep Compat Lib
\ No newline at end of file
+# Lawnchair Quickstep Compat Library
+
+The `compatLib` library helps integrate Lawnchair with QuickSwitch while ensuring backward-compatibility with older Android versions.
+
+Each subdirectory of the `compatLib`, denoted by a letter (e.g., `compatLibVQ` for Android 10),
+refers to the compatibility code for that specific Android version.
+
+| Library | Android version |
+|-------------|-----------------|
+| compatLibVQ | 10 |
+| compatLibVR | 11 |
+| compatLibVS | 12 |
+| compatLibVT | 13 |
+| compatLibVU | 14 |
diff --git a/docs/device-frame.png b/docs/device-frame.png
new file mode 100644
index 0000000000..4324eb6865
Binary files /dev/null and b/docs/device-frame.png differ
diff --git a/docs/lawnchair-round.webp b/docs/lawnchair-round.webp
new file mode 100644
index 0000000000..2257bb22b4
Binary files /dev/null and b/docs/lawnchair-round.webp differ
diff --git a/docs/version-dark.svg b/docs/version-dark.svg
new file mode 100644
index 0000000000..caa99a1f06
--- /dev/null
+++ b/docs/version-dark.svg
@@ -0,0 +1,25 @@
+
diff --git a/docs/version-light.svg b/docs/version-light.svg
new file mode 100644
index 0000000000..04fe9aa948
--- /dev/null
+++ b/docs/version-light.svg
@@ -0,0 +1,25 @@
+
diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/README.md b/lawnchair/src/app/lawnchair/ui/preferences/components/README.md
index 503c339373..96ff6d52e4 100644
--- a/lawnchair/src/app/lawnchair/ui/preferences/components/README.md
+++ b/lawnchair/src/app/lawnchair/ui/preferences/components/README.md
@@ -1,4 +1,5 @@
-# About the `components` directory
+# About
+
The `components` directory should be organized into the following:
* For components for a specific UI that require many files, add it in a subdirectory. Example: `colorpreference`
diff --git a/prebuilts/libs/README.md b/prebuilts/libs/README.md
index 4a33203515..c521dd04ee 100644
--- a/prebuilts/libs/README.md
+++ b/prebuilts/libs/README.md
@@ -1,10 +1,19 @@
-# Lawnchair prebuilt JARs
+# Lawnchair Prebuilt JARs
-Launcher3 has some dependencies on internal AOSP modules. To build Lawnchair, you have to build AOSP and obtain these JARs.
+Launcher3 has some dependencies on internal AOSP modules.
+To build Lawnchair, you have to build AOSP and obtain these JARs.
-| File | Path |
-|------|------|
-| framework-14.jar | ./soong/.intermediates/frameworks/base/framework/android_common/turbine-combined/framework.jar |
-| framework-statsd.jar | ./soong/.intermediates/packages/modules/StatsD/framework/framework-statsd/android_common_apex30/javac/framework-statsd.jar |
-| SystemUI-statsd.jar | ./soong/.intermediates/frameworks/base/packages/SystemUI/shared/SystemUI-statsd/android_common/javac/SystemUI-statsd.jar |
-| WindowManager-Shell.jar | ./soong/.intermediates/frameworks/base/libs/WindowManager/Shell/WindowManager-Shell/android_common/javac/WindowManager-Shell.jar
+| File | Path |
+|-------------------------|----------------------------------------------------------------------------------------------------------------------------------|
+| framework-14.jar | ./soong/.intermediates/frameworks/base/framework/android_common/turbine-combined/framework.jar |
+| framework-statsd.jar | ./soong/.intermediates/packages/modules/StatsD/framework/framework-statsd/android_common_apex30/javac/framework-statsd.jar |
+| SystemUI-statsd.jar | ./soong/.intermediates/frameworks/base/packages/SystemUI/shared/SystemUI-statsd/android_common/javac/SystemUI-statsd.jar |
+| WindowManager-Shell.jar | ./soong/.intermediates/frameworks/base/libs/WindowManager/Shell/WindowManager-Shell/android_common/javac/WindowManager-Shell.jar |
+
+
+
+
diff --git a/systemUICommon/README.md b/systemUICommon/README.md
index 1cc5277aa8..e825ce7bf1 100644
--- a/systemUICommon/README.md
+++ b/systemUICommon/README.md
@@ -1,5 +1,9 @@
# SystemUICommon
-`SystemUICommon` is a module within SystemUI that hosts standalone helper libraries. It is intended to be used by other modules, and therefore should not have other SystemUI dependencies to avoid circular dependencies.
+`SystemUICommon` is a module within SystemUI that hosts standalone helper libraries.
+It is intended to be used by other modules, and therefore should not have other SystemUI dependencies
+to avoid circular dependencies.
-To maintain the structure of this module, please refrain from adding components at the top level. Instead, add them to specific sub-packages, such as `systemui/common/buffer/`. This will help to keep the module organized and easy to navigate.
+To maintain the structure of this module, please refrain from adding components at the top level.
+Instead, add them to specific sub-packages, such as `systemui/common/buffer/`.
+This will help to keep the module organized and easy to navigate.
diff --git a/systemUIViewCapture/README.md b/systemUIViewCapture/README.md
index 4a6993f30d..e2834cb22b 100644
--- a/systemUIViewCapture/README.md
+++ b/systemUIViewCapture/README.md
@@ -1,11 +1,11 @@
-###ViewCapture Library Readme
+# ViewCapture Library
-ViewCapture.java is extremely performance sensitive. Any changes should be carried out with great caution not to hurt performance.
+> [!CAUTION]
+> `ViewCapture.java` is **extremely performance sensitive**.
+> **Any changes should be carried out with great caution** not to hurt performance.
The following measurements should serve as a performance baseline (as of 02.10.2022):
-
The onDraw() function invocation time in WindowListener within ViewCapture is measured with System.nanoTime(). The following scenario was measured:
1. Capturing the notification shade window root view on a freshly rebooted bluejay device (2 notifications present) -> avg. time = 204237ns (0.2ms)
-