Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2976 commits
Select commit Hold shift + click to select a range
7a12ab1
build: Snapshot 9 (Draft)
validcube Nov 18, 2025
d2198f5
Revert "chore: Remove reference to searchuilib"
validcube Nov 20, 2025
e76ec76
docs: Re-add searchuilib
validcube Nov 20, 2025
7e31ad7
feat: Update searchuilib to Android U
validcube Nov 20, 2025
6b01590
build: Just disable the disabled variant of compose
validcube Nov 20, 2025
e7cd36e
feat: Update Submodule
validcube Nov 20, 2025
538bb7e
fix: A lot of stuff
validcube Nov 20, 2025
d4b04d8
docs: Snapshot 9
validcube Nov 20, 2025
b080377
docs: Snapshot 10
validcube Nov 20, 2025
ead49df
build: Snapshot 10 (Draft)
validcube Nov 21, 2025
d0e4e0a
chore: Spotlessified
validcube Nov 21, 2025
1383a76
docs: Update screenshot (#6090)
validcube Nov 22, 2025
433f2e2
Merge branch '16-dev' into 16-dev-qpr1
validcube Nov 22, 2025
7fb6d1c
fix: Conflict incoming changes from 15-dev
validcube Nov 22, 2025
908740e
fix: Broken left/right arrow of folder (TODO)
validcube Nov 22, 2025
114627c
feat: Folder expansion expressive flag
validcube Nov 22, 2025
113b137
docs: Snapshot 10 (Draft)
validcube Nov 22, 2025
275c9b1
fix: Conflict incoming changes from 15-dev
validcube Nov 22, 2025
c9b3e05
Merge remote-tracking branch 'origin/15-dev' into 16-dev
validcube Nov 22, 2025
c6e7e31
Copybara! Merge 16-dev from forgejo instance into 16-dev github
validcube Nov 22, 2025
5c6611d
Merge branch '16-dev' into 16-dev-qpr1
validcube Nov 22, 2025
25657d2
feat: Google Sans Flex
validcube Nov 22, 2025
730d1ee
feat: Better font scaling
validcube Nov 22, 2025
dcffa3c
chore: Update dependencies
validcube Nov 22, 2025
a56d5e5
feat: Tonal topbar button
validcube Nov 22, 2025
d7bba9c
feat: Better At-a-Glance perceptive wallpaper colour luminance detection
validcube Nov 22, 2025
3caaccf
feat: (Tried) to deal with variable font
validcube Nov 22, 2025
f6635a0
fix: Properly fix folder navigation
validcube Nov 22, 2025
cd88691
fix: Dynamically get app widget popup icon
validcube Nov 22, 2025
6ff6659
feat: Foldable support
validcube Nov 22, 2025
b97e170
fix: Android 14/15 crash
validcube Nov 22, 2025
d6961f1
fix: Android 12.0/12.1/13 crash
validcube Nov 22, 2025
a69e9f2
docs: Change from Snapshot 10 to Development 4
validcube Nov 22, 2025
08679a3
chore: Spotless-ified
validcube Nov 22, 2025
021236e
fix: At-a-Glance can't launch activity due to background startup rest…
validcube Nov 23, 2025
e8a603a
fix: Checkout CompatTier2
validcube Nov 23, 2025
cccf95a
fix: Checkout CompatTier2
validcube Nov 23, 2025
2043c7d
docs: At-a-Glance can't launch activity due to background startup res…
validcube Nov 23, 2025
b8af1ea
feat: Update submodule
validcube Nov 23, 2025
a287c75
chore: Spotless-ified
validcube Nov 23, 2025
c019716
chore: Spotless-ified
validcube Nov 23, 2025
77078bd
Merge remote-tracking branch 'origin/15-dev' into 16-dev-qpr1
validcube Nov 23, 2025
1b797c6
feat: Reactive icon && Update icons to filled variant
validcube Nov 23, 2025
e0cd8cb
fix: Use Lawnchair theming colour for allapps
validcube Nov 23, 2025
85ddece
fix: conflict with prebuilts aidl, make Release build work again
validcube Nov 23, 2025
f867c16
fix: Correct deviceHasLargeScreen check for Baklava
validcube Nov 23, 2025
843b728
fix: Make search layout changes work
validcube Nov 23, 2025
e36eb5b
fix: Allow disabling the smartspace feature
validcube Nov 23, 2025
e9bb791
feat: Update Google Fonts listing to 25112025
validcube Nov 25, 2025
fe7ae17
Merge remote-tracking branch 'origin/15-dev' into 16-dev
validcube Nov 28, 2025
09c768a
chore: Update submodule for merge commit
validcube Nov 28, 2025
257ee11
Merge branch '16-dev' into 16-dev-qpr1
validcube Nov 28, 2025
b294abb
fix: Disable material expressive folder expansion animations
validcube Nov 28, 2025
3e6c946
Merge branch '16-dev-qpr1' of https://github.com/BoringExperiments/la…
validcube Nov 28, 2025
cad2bc2
fix: Widget preview crash for no reason at all on compatible Android …
validcube Nov 28, 2025
360d8bf
chore: Add me to the AboutViewModel.kt
validcube Nov 30, 2025
7825b5b
feat: Update Google Sans Flex variable
validcube Dec 1, 2025
74a6014
feat: Enable bulk app loading by default
validcube Dec 1, 2025
367edb4
feat: Tablet support (ish)
validcube Dec 1, 2025
86ecafb
docs: Document changes
validcube Dec 1, 2025
4c2dc12
fix: Switch back to DPO to set grid for now
validcube Dec 3, 2025
0052a03
feat: Update paddings for 6x5 configuration to match Pixel Launcher 2025
validcube Dec 3, 2025
5f183f4
Merge tag 'android-16.0.0_r4' into 16-dev-qpr2
validcube Dec 3, 2025
fa2e02b
docs: Draft checkout changelog
validcube Dec 3, 2025
15d78e7
feat: Update prebuilt jars to 16r4
validcube Dec 3, 2025
5663379
feat: Update prebuilt jars to 16r4
validcube Dec 3, 2025
8473070
feat: Launcher3 Flags 16r4
validcube Dec 3, 2025
53d06a3
feat: SystemUI Flags 16r4
validcube Dec 3, 2025
019a893
feat: SystemUI Shared Flags 16r4
validcube Dec 3, 2025
7eaa6bd
feat: Window.flags2 Flags 16r4
validcube Dec 3, 2025
951ddeb
feat: Window.flags2 Flags 16r4
validcube Dec 3, 2025
48bf459
feat: WM Shell Flags 16r4
validcube Dec 3, 2025
308dc04
feat: Update Flags to 16r4
validcube Dec 3, 2025
3f92c4e
docs: Update tags information
validcube Dec 3, 2025
8f3ff37
feat: Update submodule to qpr2
validcube Dec 3, 2025
bb53105
build: Move concurrent to modules
validcube Dec 3, 2025
fe00d28
refactor: Remove test from mechanics entirely
validcube Dec 3, 2025
b8959bd
refactor: Remove tracing in displaylib
validcube Dec 3, 2025
af286d6
fix: Remove more tracing and correct usage in displaylib
validcube Dec 3, 2025
5625178
fix: Remove missing feature flags from manifest
validcube Dec 3, 2025
e79d063
fix: Bring back protobuf in viewcapturelib
validcube Dec 3, 2025
b871ff3
fix: Duplicated file in Iconloaderlib (TODO)
validcube Dec 3, 2025
d1aec3a
feat: wmshell 16r4
validcube Dec 3, 2025
6dc57bd
fix: aidl in wmshell
validcube Dec 3, 2025
6fa952b
fix: Remove missing feature flags in manifest in wmshell
validcube Dec 3, 2025
e6cb3e6
fix: missing res and dependency on wmshell
validcube Dec 3, 2025
16881f9
refactor: Seperate WMShell and WMShell Shared project
validcube Dec 3, 2025
d51c121
refactor: Seperate WMShell and WMShell Shared project
validcube Dec 3, 2025
95fe79b
fix: Android Private colour in wmshell assets
validcube Dec 3, 2025
1d12ae5
build: Import wmshell.shared into wmshell
validcube Dec 3, 2025
13dea1e
fix: Duplicated prefix in assets of wmshell
validcube Dec 3, 2025
fac6f6a
build: Import msdl into wmshell
validcube Dec 3, 2025
dc7e550
feat: SystemUI animation 16r4
validcube Dec 3, 2025
4925b3a
feat: SystemUI common 16r4
validcube Dec 3, 2025
395ef4a
feat: SystemUI log 16r4
validcube Dec 3, 2025
4603189
feat: SystemUI plugin 16r4
validcube Dec 3, 2025
e4b0d28
feat: SystemUI plugin_core 16r4
validcube Dec 3, 2025
a0209b2
feat: SystemUI shared 16r4
validcube Dec 3, 2025
4687aaa
fix: a lot of stuff
validcube Dec 3, 2025
07e9cf2
Merge remote-tracking branch 'origin/15-dev' into 16-dev
validcube Dec 3, 2025
86804c6
fix: Just make submodule stay the same please intellj
validcube Dec 3, 2025
ad97a5e
Merge remote-tracking branch 'origin/16-dev' into 16-dev-qpr2
validcube Dec 3, 2025
717a460
fix: Remove duplicated classes and tracing from wmshell
validcube Dec 4, 2025
c2f1bd1
fix: Remove more tracing
validcube Dec 4, 2025
148c066
feat: Add AM flags 16r4
validcube Dec 4, 2025
0b87981
docs: Add info to AM flags
validcube Dec 4, 2025
028ce48
refactor: Remove LegacyTransitionTracer.java entirely because no usag…
validcube Dec 4, 2025
143b5ce
chore: Remove duplicated
validcube Dec 4, 2025
4d1fc40
chore: Remove duplicated
validcube Dec 4, 2025
f22e380
chore: Remove missing import from wmshell
validcube Dec 4, 2025
bad488f
build: Import needed dependencies for wmshell
validcube Dec 4, 2025
5d8ded2
feat: SystemUI Pods (fixme)
validcube Dec 4, 2025
f848280
fix: lots of issues
validcube Dec 4, 2025
a2e148e
docs: Snapshot 11
validcube Dec 4, 2025
86215ba
fix: A lot of stuff
validcube Dec 5, 2025
ef1fbe0
fix: A lot of stuff
validcube Dec 5, 2025
b754550
build: Include Quickstep compose folder
validcube Dec 6, 2025
3c80cbf
build: Exclude Quickstep compose disabled folder
validcube Dec 6, 2025
80c0f0a
fix: A lot more stuff
validcube Dec 6, 2025
e1e03c8
fix: Race conditions when deciding whether to enable Taskbar
validcube Dec 7, 2025
27d0792
fix: Always assume production Android build regarding of actual variant
validcube Dec 7, 2025
c57a7d8
fix: Preload recents activity with reflections
validcube Dec 7, 2025
603a245
fix: Display Context not found when deciding ID in desktop
validcube Dec 7, 2025
727b34d
feat: Switch compatlib framework to 16
validcube Dec 7, 2025
db2f97a
fix: Temporarily lazy load idp in DPO
validcube Dec 7, 2025
fe16dc7
chore: Add investigate mark to LPI/QPI
validcube Dec 7, 2025
b4d206a
chore: Spotlessified
validcube Dec 7, 2025
41c35bf
docs: 🥞 SNAPSHOT 12
validcube Dec 7, 2025
0cf3b80
docs: Continued interest in QPR1 branch
validcube Dec 7, 2025
872a676
chore: Switch back to frameworks 15
validcube Dec 7, 2025
46fe575
Merge branch '15-dev' into 16-dev
validcube Dec 7, 2025
45b22c0
fix: Widget preview crash for no reason at all on compatible Android …
validcube Nov 28, 2025
5573389
feat: Update Google Sans Flex variable
validcube Dec 1, 2025
67ff7e3
feat: Enable bulk app loading by default
validcube Dec 1, 2025
ed3838e
feat: Tablet support (ish)
validcube Dec 1, 2025
2b065bd
docs: Document changes
validcube Dec 1, 2025
6baae46
feat: Update paddings for 6x5 configuration to match Pixel Launcher 2025
validcube Dec 3, 2025
54bde38
feat: Google Sans Flex
validcube Nov 22, 2025
c22746f
feat: Tonal topbar button
validcube Nov 22, 2025
b9e6f3e
feat: Better At-a-Glance perceptive wallpaper colour luminance detection
validcube Nov 22, 2025
310c646
feat: Reactive icon && Update icons to filled variant
validcube Nov 23, 2025
ad1b635
fix: conflict with prebuilts aidl, make Release build work again
validcube Nov 23, 2025
27930c7
fix: Correct deviceHasLargeScreen check for Baklava
validcube Dec 7, 2025
1a543a3
feat: QPR1/QPR2 rounded icons
validcube Dec 7, 2025
30d61de
fix: Search widget can't launch Google due to background restrctions …
validcube Nov 30, 2025
82acc4b
feat: ATLEAST_BAKLAVA_1 check
validcube Dec 7, 2025
d8b86e5
chore: Update all dependencies
validcube Dec 7, 2025
326f916
fix: Temporarily amend baklava_1
validcube Dec 7, 2025
d248cd2
feat: Popup expressive
validcube Dec 7, 2025
425612f
docs: Update changelog
validcube Dec 7, 2025
c507162
feat: Foldable support
validcube Nov 22, 2025
4acb388
feat: Warns when upgrading to next major version
validcube Dec 7, 2025
94e5a9b
feat: Warn when upgrading to next major version
validcube Dec 7, 2025
a9482bd
refactor: Move getApkVersion to LawnchairUtils.kt
validcube Dec 7, 2025
12bd509
feat: Track lawnchair major version in preference
validcube Dec 7, 2025
1b91b43
chore: Remove missing import
validcube Dec 7, 2025
48bb72c
chore: Don't recreate launcher on major changes
validcube Dec 7, 2025
168a164
refactor: Replace Solar Hijri library with native Android format
validcube Dec 7, 2025
2e8a729
refactor: Replace Solar Hijri library with native Android format
validcube Dec 7, 2025
4318504
feat: Add Chinese calendar to smartspace
validcube Dec 7, 2025
b037088
feat: Promote smartspace calendar to stable
validcube Dec 7, 2025
1384b78
fix: Positioning of first folder during Lawnchair setup
validcube Dec 7, 2025
6210a2c
feat: AllApps Opacity change
validcube Dec 7, 2025
3e7553f
docs: Update changelog
validcube Dec 7, 2025
e41255b
feat: Change OverviewScrim colour
validcube Dec 7, 2025
e366926
fix: RTL Smartspace mode
validcube Dec 7, 2025
4c56963
fix: Compose Preview // Inspection on isAutoThemeDark
validcube Dec 7, 2025
8127886
fix: Align slider with preference text
validcube Dec 7, 2025
a128e27
feat: At a Glance expressive redesign Phase 1
validcube Dec 7, 2025
97fb34c
docs: Update changelog
validcube Dec 7, 2025
aa8143e
feat: Expressive corner
validcube Dec 7, 2025
67fffb8
feat: Expressive corner
validcube Dec 7, 2025
8f414ba
feat: Set GestureNavContract on by default on Google device
validcube Dec 7, 2025
2c51313
chore: Remove TODO
validcube Dec 7, 2025
ed0c3f2
docs: Update D3R3 note
validcube Dec 7, 2025
8fb4256
chore: Spotlessified
validcube Dec 7, 2025
9631043
fix: Allow disabling the smartspace feature
validcube Nov 23, 2025
c7ba414
fix: Merge correctly
validcube Dec 8, 2025
48dd48e
build: Remove outdated todos
validcube Dec 8, 2025
b913977
feat: Add Nothing phone to GNC on default, improve Pixel detection
validcube Dec 8, 2025
658cbd9
feat: Add Nothing phone to GNC on default, improve Pixel detection
validcube Dec 8, 2025
e3e08b3
feat: Don't show warning on known compatible device
validcube Dec 8, 2025
a2cfa3b
fix: Set animations to instant
validcube Dec 8, 2025
518b4cc
chore: Remove previously not used code
validcube Dec 10, 2025
0e62e52
fix: Add missing material expressive animations
validcube Dec 10, 2025
9c9a56c
fix: Settings sit too close to each other
validcube Dec 10, 2025
d531a49
build: Migrate DSL properties from lintOptions to lint
validcube Dec 12, 2025
bd06377
chore: Bump submodule
validcube Dec 12, 2025
cf7da51
Merge remote-tracking branch 'origin/15-dev' into 16-dev
validcube Dec 12, 2025
5b6f4cd
build: Initial upgrade to AGP 9.0.0-beta04
validcube Dec 12, 2025
6ceefbb
chore: Remove unused flags
validcube Dec 12, 2025
c8e32d7
chore: Fully migrate to AGP 9.0.0-beta04
validcube Dec 12, 2025
71188c2
build: Use compileOnly instead for referencing submodules
validcube Dec 12, 2025
b8e481f
refactor: Bump reorderable to 3.0.0
validcube Dec 12, 2025
d9998fa
refactor: Handle visible animations
validcube Dec 13, 2025
585f083
refactor: Handle visible animations
validcube Dec 13, 2025
16e3f96
refactor: Use visible animations
validcube Dec 13, 2025
ce1d3fd
refactor: Replace old PreferenceGroup
validcube Dec 13, 2025
47ea849
refactor: Use animated visibility
validcube Dec 13, 2025
52e1c79
fix: Crash with isInPreviewMode()
validcube Dec 13, 2025
52e8219
refactor: Migrate lots of old styling
validcube Dec 13, 2025
86d5d8b
Merge remote-tracking branch 'origin/15-dev' into 16-dev
validcube Dec 13, 2025
ed6abdf
fix: Broken warning animations
validcube Dec 13, 2025
64d5303
refactor: Use more sane format of preference group item
validcube Dec 13, 2025
44ccf8f
fix: Broken animations everywhere
validcube Dec 13, 2025
499a2d7
Build: Update AGP to 9.0.0-beta05
validcube Dec 13, 2025
1a7f6e4
feat: Haptic on dismiss announcement
validcube Dec 13, 2025
2e09487
chore: Remove Inter v3 font
validcube Dec 13, 2025
e22929b
feat: Add Google Sans as fallback font
validcube Dec 13, 2025
974765b
docs: Update release note
validcube Dec 13, 2025
41db1c8
chore: Spotlessified
validcube Dec 13, 2025
6d17991
fix: Build failures on Item
validcube Dec 13, 2025
cb01148
feat: Normal style of Google Sans
validcube Dec 13, 2025
430bedf
chore: MORE spotlessified
validcube Dec 13, 2025
470e0eb
feat: Update warning icon to rounded variant
validcube Dec 13, 2025
6bb96b6
feat: Update more icons
validcube Dec 13, 2025
a096354
Merge remote-tracking branch 'origin/15-dev' into 16-dev
validcube Dec 14, 2025
ed9c24c
refactor: Use lunar calendar wording instead
validcube Dec 14, 2025
b3a02a1
fix: Offer a toggle to disable/enable suggestions instead of linking …
validcube Dec 14, 2025
b21cccb
feat: Improve Google/Samsung device compatibility check
validcube Dec 14, 2025
4874d8b
feat: Improve Samsung device compatibility check
validcube Dec 14, 2025
6c05c25
feat: Update Google Fonts listing to 14122025
validcube Dec 14, 2025
257c518
Merge remote-tracking branch 'origin/15-dev' into 16-dev
validcube Dec 19, 2025
b1b2000
chore: Cleanup
validcube Dec 20, 2025
abf6303
Milestone D3R3, continue to D4R1
validcube Dec 20, 2025
7aa7f1c
Milestone D3R3, continue to D4R1
validcube Dec 20, 2025
d6dfed6
Milestone D3R3, continue to D4R1
validcube Dec 20, 2025
6a24aff
fix merge from 16-dev to qpr1 problem
validcube Dec 20, 2025
0729b91
fix: Android Studio Panda 1 support
validcube Dec 21, 2025
c994a6a
chore: Cleanup baselineprofile
validcube Dec 21, 2025
8dab88d
docs: Cleanup
validcube Dec 21, 2025
da2fc1e
Merge branch '15-dev' into 16-dev-qpr1
validcube Dec 21, 2025
8329e7c
fix: Adapt clean workspace to 16-dev-qpr1
validcube Dec 21, 2025
b902732
docs: Update
validcube Dec 21, 2025
6d3c021
chore: Remove ScrimOverBlur
validcube Dec 21, 2025
73bd7ef
fix: Migrate over to ApplicationInfoWrapper for PkgMngerHelper
validcube Dec 24, 2025
29e9e78
chore: Spotlessified
validcube Dec 24, 2025
260713f
fix: Correct fallback (blur unsupported) allapps colour
validcube Dec 24, 2025
17af68f
chore: Prepare changelog
validcube Dec 24, 2025
e4b9cca
Merge remote-tracking branch 'origin/15-dev' into 16-dev-qpr1
validcube Dec 24, 2025
4381306
chore: Migrate upstream to reorderable 3.0.0
validcube Dec 24, 2025
57cc4b9
docs: 🥞 Development 4 Release 1
validcube Dec 24, 2025
27deb38
build: Update git submodule target information
validcube Dec 24, 2025
05024e7
chore: Remove outdated information
validcube Dec 24, 2025
81c1351
chore: Remove deleted file
validcube Dec 24, 2025
038cda7
Merge branch '16-dev' into 16-dev-qpr2
validcube Dec 24, 2025
de01543
fix: Adapt upstream changes
validcube Dec 24, 2025
e852532
fix: Missing import
validcube Dec 24, 2025
eadb38e
fix: Missing dependency
validcube Dec 24, 2025
275331b
fix: BlurUtils crash
validcube Dec 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
32 changes: 32 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
root = true

[*]
charset = utf-8
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.java]
# Don't trim spaces in AOSP code.
trim_trailing_whitespace = false

[*.{kt,kts}]
ij_kotlin_imports_layout = *
ij_kotlin_allow_trailing_comma = true
ij_kotlin_allow_trailing_comma_on_call_site = true
ij_kotlin_name_count_to_use_star_import = 999
ij_kotlin_name_count_to_use_star_import_for_members = 999
ij_kotlin_packages_to_use_import_on_demand = unset
ktlint_code_style = intellij_idea
ktlint_function_naming_ignore_when_annotated_with = Composable
ktlint_standard_discouraged-comment-location = disabled
ktlint_standard_function-expression-body = disabled
ktlint_standard_mixed-condition-operators = disabled
ktlint_compose_lambda-param-event-trailing = disabled

[*.md]
trim_trailing_whitespace = false

[*.{yml,yaml}]
indent_size = 2
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* text=auto eol=lf

*.bat text eol=crlf
*.jar binary
2 changes: 2 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
open_collective: lawnchair
github: LawnchairLauncher
91 changes: 91 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Bug report
description: Create a report to help us address issues you are facing with the app.
title: "[BUG] "
labels: [bug, 'status: needs triage']
type: Bug
body:
- type: markdown
attributes:
value: |
> [!IMPORTANT]
> Lawnchair's issue tracker is maintained on a best-effort basis — due to limited resources, we do not guarantee that all issues will be triaged or checked by the developers.
> If you wish to help triage Lawnchair's issues, visit [#4232](https://github.com/LawnchairLauncher/lawnchair/issues/4232) for more information.

Thanks for taking the time to file this issue! Here are a few things to do before submitting:
1. Use the [**latest nightly version**](https://github.com/LawnchairLauncher/lawnchair#development-builds) when reporting bugs.
2. [**Read the FAQ**](https://lawnchair.app/faq/#common-issues) for common issues; if it is, please don't create an issue about it.
3. Search **both [open and closed issues](https://github.com/LawnchairLauncher/lawnchair/issues?q=is%3Aissue+sort%3Aupdated-desc+)** for your bug.

- type: textarea
id: bug-description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true

- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to reproduce
description: Steps to reproduce the bug. **Be specific** on what steps you need to do to encounter this bug.
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '...'
4. See error
validations:
required: true

- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true

- type: textarea
id: screenshots
attributes:
label: Screenshots
description: If applicable, add screenshots to help explain your problem.
validations:
required: false

- type: textarea
id: device-info
attributes:
label: Device information
description: Provide details about your device, OS, app version, etc.
placeholder: |
- Device: Google Pixel 9
- OS: stock Android 12.0
validations:
required: true

- type: input
id: app-version
attributes:
label: App version
description: |
Open Lawnchair settings > About to view the app version.

On nightly builds, **long-press** the version name and paste the GitHub link here.
placeholder: |
15 Beta 1
validations:
required: true

- type: textarea
id: additional-context
attributes:
label: Additional context
description: |
Add any other context about the problem here.

If this is a crash report, paste or link the crash message here.
placeholder: |
Crash log: https://katb.in/examplelink
validations:
required: false
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: GitHub Discussions
url: https://github.com/LawnchairLauncher/lawnchair/discussions
about: Discuss anything related to Lawnchair, or ask and answer questions here.
- name: Telegram support group
url: https://t.me/lccommunity
about: We recommend to go to this place if you wish to ask a question and want a quicker reply.
- name: Discord server
url: https://discord.com/invite/3x8qNWxgGZ
about: You can also ask questions here if you use Discord instead of Telegram.
65 changes: 65 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Feature request
description: Suggest features you want the developers (or contributors) to make for the launcher.
title: "[FEATURE] "
labels: [feature-request, 'status: needs triage']
type: Feature
body:
- type: markdown
attributes:
value: |
> [!IMPORTANT]
> Lawnchair's issue tracker is maintained on a best-effort basis — due to limited resources, we do not guarantee that all issues will be triaged or checked by the developers.
> If you wish to help triage Lawnchair's issues, visit [#4232](https://github.com/LawnchairLauncher/lawnchair/issues/4232) for more information.

Thanks for taking the time to file this issue! Here are a few things to do before submitting:
1. Use the [**latest nightly version**](https://github.com/LawnchairLauncher/lawnchair#development-builds) when requesting.
2. [**Read the FAQ**](https://lawnchair.app/faq) to check if your request is already planned by the developers.
3. Search **both [open and closed issues](https://github.com/LawnchairLauncher/lawnchair/issues?q=is%3Aissue+sort%3Aupdated-desc+)** for your feature request.

Please keep in mind that **we may not always implement this feature request**.

- type: textarea
id: feature-description
attributes:
label: Describe the feature
description: A clear and concise description of what the feature is.
validations:
required: true

- type: textarea
id: feature-usefulness
attributes:
label: Why would it be useful to add?
description: Explain why this feature would be useful to you
validations:
required: true

- type: dropdown
id: feature-in-version-two
attributes:
label: Did the feature exist in Lawnchair Legacy?
description: |
See [this FAQ page](https://lawnchair.app/faq/#what-happened-to-lawnchair-legacy) for more info about Lawnchair Legacy, previously
known as Lawnchair 2.

options:
- "Yes"
- "No"
validations:
required: true

- type: textarea
id: feature-examples
attributes:
label: Example(s)
description: Post screenshots/drawings/links/etc of the feature request, or proof-of-concept images about the feature.
validations:
required: true

- type: textarea
id: additional-context
attributes:
label: Additional context
description: Add any other context about the feature here.
validations:
required: false
8 changes: 8 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
housekeeping:
- "*.md"
- .github/PULL_REQUEST_TEMPLATE/*.md
- .github/pull_request_template.md
- docs/**

outdated:
- base-branch: '!16-dev'
41 changes: 41 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!--
Thanks for your contribution! A clear description and a test plan are the best way to get your PR reviewed and merged quickly.
For simple `Style` or `Chore` changes, a detailed description is optional.
-->

### Description

<!-- A clear and concise one-paragraph summary of what this PR does. -->

Fixes #(issue) <!-- optional -->

### Reasoning

<!--
(Optional - for major changes)
A more detailed explanation of the "why."
- Why was this change necessary? (e.g., technical debt, user feedback, architectural improvement)
- What are the core principles of the new solution?
-->


### Testing

<!--
(Optional - but highly encouraged for any functional change)
A step-by-step script for how to test these changes.
-->


### Type of change

<!-- Please replace the :x: with a :white_check_mark: for the ONE line that best describes your change. -->

:x: **Bug fix** (A non-breaking change that fixes an issue)
:x: **New feature** (A non-breaking change that adds functionality)
:x: **Breaking change** (A fix or feature that would cause existing functionality to not work as expected)
:x: **Refactor** (A code change that neither fixes a bug nor adds a feature)
:x: **Performance** (A code change that improves performance)
:x: **Style** (Code style changes)
:x: **Docs** (Changes to documentation)
:x: **Chore** (Changes to the build process or other tooling)
20 changes: 20 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
changelog:
exclude:
labels:
- bot
authors:
- renovate[bot]
- lawnchair-bot
- crowdin-bot
categories:
- title: 🪄 Features & 🐛 Bugfixes
labels:
- '*'
exclude:
labels:
- dependencies
- github_actions
- housekeeping
- title: 🧹 Housekeeping
labels:
- housekeeping
22 changes: 22 additions & 0 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
extends: [
'config:recommended',
],
labels: [
'dependencies',
],
packageRules: [
// Enable auto-merge for minor/patch updates.
{
matchUpdateTypes: [
'minor',
'patch',
],
automerge: true,
matchPackageNames: [
'/.*/',
],
},
],
}
38 changes: 38 additions & 0 deletions .github/workflows/build_release_apk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Build release APK

on:
workflow_dispatch:

jobs:
build-release-apk:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 21
- uses: gradle/actions/setup-gradle@v5
with:
cache-encryption-key: Da25KUVSE5jbGds2zXmfXw==
- name: Write sign info
if: github.repository_owner == 'LawnchairLauncher'
run: |
if [ ! -z "${{ secrets.KEYSTORE }}" ]; then
echo storePassword='${{ secrets.KEYSTORE_PASSWORD }}' >> keystore.properties
echo keyAlias='${{ secrets.KEY_ALIAS }}' >> keystore.properties
echo keyPassword='${{ secrets.KEY_PASSWORD }}' >> keystore.properties
echo storeFile='${{ github.workspace }}/key.jks' >> keystore.properties
echo ${{ secrets.KEYSTORE }} | base64 --decode > ${{ github.workspace }}/key.jks
fi
- name: Build release APK
run: ./gradlew assembleLawnWithQuickstepGithubRelease bundleLawnWithQuickstepPlayRelease
- name: Upload artifact
uses: actions/upload-artifact@v6
with:
name: Release APK
path: build/outputs/*

Loading
Loading