Everything you need in a launcher
A fully-featured, production-ready launcher with powerful canvas interactions and intelligent app organization.
Infinite Canvas
One-finger pan, two-finger pinch-to-zoom, world/screen coordinate transforms with viewport culling and minimap overlay.
Drag & Drop Apps
Long-press to drag apps anywhere on the canvas. Positions are persisted in world coordinates for seamless organization.
Smart Search
Full-text search with ranked matches and quick launch. Fallback to web search directly from the launcher.
Edit Mode
Add brush strokes, sticky notes, text objects, and frames. Move, resize, delete with multi-select support.
Smart Layouts
Choose from Spiral, Rectangle, Circle, Oval, Smart Auto, or Icon Color grouping with auto-generated labeled frames.
Semantic Grouping
Auto-categorize apps by type: communication, social, media, games, work, finance, and more.
Customizable Themes
System, light, or dark mode with 4 light and 4 dark palettes. Full Material 3 design language.
Multilingual
Available in English, Russian, Spanish, German, French, and Portuguese. Follows system language by default.
Built with modern Android tech
A clean, modular architecture using the latest Android development best practices.
Clean Multi-Module Architecture
- Activities & Navigation
- Settings & i18n
- Launcher/Default Flow
- :feature:launcher
- :feature:canvas
- :feature:apps
- database, packages, settings
- model, ui, common
- performance
Feature Roadmap
Canvas Launcher is actively developed with a clear vision for the future.
Implemented
- Infinite canvas launcher base
- Smart semantic layout presets
- Icon-color clustering presets
- Editable canvas objects (brush/notes/text/frames)
- Multi-select edit operations
- App dragging with persisted coordinates
- Search and quick launch
- 6 languages + system locale
Planned
- Widgets on canvas
- Folders and advanced icon customization
- Backup/export-import of canvas state
- Performance benchmark automation
- Optional cloud sync
Module Overview
:appActivities, launcher flow, settings, i18n:domainUse cases, contracts, layout strategies:feature:launcherMain UI state, tools, edit orchestration:feature:canvasCanvas rendering, gestures, drag interaction:feature:appsRoom-backed app store implementation:core:databaseRoom DB, DAO, entities, migrations:core:packagesPackageManager, icon cache, event bus:core:performanceTransforms, culling, minimap projection:core:settingsDataStore preferences and mappers:core:modelShared domain models:core:uiTheme and design primitives:core:commonResult/coroutines primitivesGet started in minutes
Clone the repo, build, and install. Set Canvas Launcher as your default home app.
1. Clone & Build
$ git clone github.com/khnychenkoav/CanvasLauncher
$ ./gradlew :app:assembleDebug2. Install APK
Install the debug APK on your device or emulator. Requires Android SDK 26+ (Android 8.0).
3. Set as Home
Open Canvas Launcher and follow the onboarding to set it as your default home app.