Before: ```shell warn: removing resource app.lawnchair:string/action_upload without required default value. warn: removing resource app.lawnchair:string/adaptive_icons without required default value. warn: removing resource app.lawnchair:string/allow_empty_pages_label without required default value. warn: removing resource app.lawnchair:string/app_title_label without required default value. warn: removing resource app.lawnchair:string/back_gesture_feedback_cancelled_left_edge without required default value. warn: removing resource app.lawnchair:string/back_gesture_feedback_cancelled_right_edge without required default value. warn: removing resource app.lawnchair:string/back_gesture_feedback_complete without required default value. warn: removing resource app.lawnchair:string/back_gesture_feedback_complete_left_edge without required default value. warn: removing resource app.lawnchair:string/back_gesture_feedback_swipe_too_far_from_left_edge without required default value. warn: removing resource app.lawnchair:string/back_gesture_feedback_swipe_too_far_from_right_edge without required default value. warn: removing resource app.lawnchair:string/clear_all_as_action_label without required default value. warn: removing resource app.lawnchair:string/done without required default value. warn: removing resource app.lawnchair:string/gesture_tutorial_action_button_label_done without required default value. warn: removing resource app.lawnchair:string/gesture_tutorial_action_button_label_next without required default value. warn: removing resource app.lawnchair:string/home_gesture_feedback_complete without required default value. warn: removing resource app.lawnchair:string/home_screen_columns without required default value. warn: removing resource app.lawnchair:string/home_screen_rows without required default value. warn: removing resource app.lawnchair:string/hotseat_qsb_label without required default value. warn: removing resource app.lawnchair:string/kshitij_description without required default value. warn: removing resource app.lawnchair:string/overview_gesture_feedback_complete without required default value. warn: removing resource app.lawnchair:string/patryk_description without required default value. warn: removing resource app.lawnchair:string/smart_space_enable without required default value. warn: removing resource app.lawnchair:string/workspace_dt2s without required default value. ``` After: ```shell warn: removing resource app.lawnchair:string/back_gesture_feedback_cancelled_left_edge without required default value. warn: removing resource app.lawnchair:string/back_gesture_feedback_cancelled_right_edge without required default value. warn: removing resource app.lawnchair:string/back_gesture_feedback_complete without required default value. warn: removing resource app.lawnchair:string/back_gesture_feedback_complete_left_edge without required default value. warn: removing resource app.lawnchair:string/back_gesture_feedback_swipe_too_far_from_left_edge without required default value. warn: removing resource app.lawnchair:string/back_gesture_feedback_swipe_too_far_from_right_edge without required default value. warn: removing resource app.lawnchair:string/gesture_tutorial_action_button_label_done without required default value. warn: removing resource app.lawnchair:string/gesture_tutorial_action_button_label_next without required default value. warn: removing resource app.lawnchair:string/home_gesture_feedback_complete without required default value. warn: removing resource app.lawnchair:string/overview_gesture_feedback_complete without required default value. ```
99d4712ddb am: 1b3d656a39 am: 81283cc8be
Lawnchair 12.1
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 12.1, currently in alpha and based on Launcher3 from Android 12.1. For Lawnchair 9, 10, 11, and 12, see the branches with the 9-, 10-, 11-, and 12- prefixes, respectively.
Contribute code
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.) To help translate Lawnchair 12.1 instead, please see “Translate.”
You can use Git to clone this repository:
git clone --recursive https://github.com/LawnchairLauncher/lawnchair.git
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.
Here are a few contribution tips:
-
The
lawnchairpackage houses Lawnchair’s own code, whereas thesrcpackage 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.
-
Set
12.1-devas the base branch for pull requests.
Translate
You can help translate Lawnchair 12.1 on Crowdin. Here are a few tips:
-
When using quotation marks, insert the symbols specific to the target language, as listed in this 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.
Quick links
You can view all our links in the Lawnchair Wiki.