Skip to content

BrianJr03/Jarngreipr

Repository files navigation

Járngreipr 🧤

Total Downloads Latest Release Downloads Version Android

ko-fi

Designed with dual-screen devices in mind, Jarngreipr is a clean, powerful launcher that lets you decide exactly where your apps open and much more.

Járngreipr is a modern, highly customizable launcher built with Jetpack Compose that combines beautiful aesthetics with powerful functionality. Optimized for devices like the AYN Thor, it excels on bottom screens and dual-screen setups while working perfectly on any Android device.

It is recommended to be used with Mjolnir, an app that transforms your Home button into a powerful dual-screen controller.

Just as Thor needs his iron gloves, Járngreipr 🧤, to safely wield Mjolnir 🔨, this launcher helps you grip control of your device's interface.


✨ Features

🏠 Multiple Home Screen Modes

  • Apps Tab - Traditional grid layout with apps only
  • Apps & Widgets Tab - Combine apps and Android widgets on the same page
  • App Drawer - Full app list with instant search and filtering
  • Multiple Pages - Create unlimited home screen pages with different layouts
  • Page Customization - Set different modes for each page independently

📱 Advanced App Management

  • Folder Support - Organize apps into folders with custom names
  • Free-Positioned Apps - Drag apps anywhere on the screen, not just in grid cells
  • Drag Lock - Lock app positions to prevent accidental moves
  • App Visibility Control - Show/hide specific apps on each page
  • Custom Icons - Set custom icons for individual apps
  • App Display Preferences - Choose between icon only, name only, or both
  • App Size Control - Adjust app icon sizes per your preference
  • Recent Apps - Quick access to recently used applications
  • Quick Delete - Batch uninstall multiple apps at once

🧩 Widget Support

  • Android Widgets - Add resizable Android widgets to any Apps & Widgets page
  • Widget Picker - Browse and add widgets from all installed apps
  • Resize Mode - Dynamically resize widgets to fit your layout
  • Widget Positioning - Place widgets anywhere on compatible pages

🎮 Gamepad & Control Features

  • Full D-Pad Navigation - Complete gamepad support throughout the UI
  • Control Pad Settings - Customize gamepad button mappings
  • Joystick Mode - Configure analog stick sensitivity and behavior
  • Button Mapping - Map specific gamepad buttons to custom actions
  • Focus Management - Intelligent focus handling for seamless navigation
  • On-Screen Keyboard - Built-in keyboard that doesn't overlap your apps
  • Back Button Shortcuts - Configure custom back button actions

🎨 Appearance & Themes

  • 6 Built-in Color Themes

    • Pink & Violet
    • Blue & Yellow
    • Green & Cyan
    • Purple & Orange
    • Red & Blue
    • Magenta & Lime
  • Custom Theme Creator - Design your own themes with custom primary and secondary colors

  • OLED Mode - True black backgrounds for OLED displays to save battery

  • Icon Pack Support - Use any installed icon pack (Lawnicons, Arcticons, etc.)

  • Icon Pack Browser - Preview and switch between icon packs in-app

  • Theme Sharing - Share your current theme with nearby devices via Bluetooth (Ping)

What is Ping?

  • Ping is an open sourced library developed to allow seemless Theme Sharing between two devices running Jarngreipr. It uses bluetooth low energy (BLE) to transfer Themes and Google's Nearby Connections API for transferring Wallpapers. Go to Settings -> Appearance -> Theme Sharing and accept the required permissions to get started. Want to know more about Ping? Here is the GitHub repo!

🖼️ Wallpaper Options

  • System Wallpaper - Use your device's current wallpaper
  • Custom Images - Set any image from your gallery
  • Default Themes - Beautiful gradient backgrounds
  • Live Preview - See changes instantly

⚙️ Layout Customization

  • Grid Settings - Customize rows and columns for each page
  • Unlimited Mode - Disable grid limits for free-form layouts
  • Header Visibility - Show/hide top header bar
  • Power Button - Toggle power button visibility
  • App Names - Show/hide app names under icons
  • Notification Badges - Display notification counts on app icons

Note: Notification Badges will only work if you download Jarngreipr from the Play Store.

🔧 System Features

  • Smart Search - Fast app search across all pages and drawer
  • Auto-Refresh - Automatically updates when apps are installed/uninstalled
  • Auto-Update Checker - Get notified of new launcher versions
  • Crash Logger - Built-in crash reporting and log viewer
  • Performance Monitor - Track app performance metrics
  • Shizuku Integration - Enhanced system-level features with Shizuku

🛠️ Developer & Power User Features

  • Crash Logs Viewer - View and export crash logs for debugging
  • What's New Dialog - See new features after updates
  • FAQ & Help - Built-in help documentation
  • Export Settings - Backup and restore your configuration
  • Debug Mode - Additional diagnostic information

📸 Screenshots

Note: All screenshots were captured from an AYN Thor's bottom screen.

Screenshot 2026-01-28 at 2 03 50 PM Screenshot 2026-01-28 at 2 04 21 PM Screenshot 2026-01-28 at 2 04 11 PM

Quick.Jarngreipr.Walkthrough.mov


📋 Requirements

  • Android 13 (API 33) or higher
  • Recommended: 4GB+ RAM for smooth widget performance
  • Optional: Shizuku for advanced features

🚀 Installation

From Releases (Recommended)

  1. Download the latest APK from the Releases page
  2. Transfer to your device if needed
  3. Enable "Install from Unknown Sources" in Settings → Security
  4. Install the APK
  5. Set Járngreipr as your default launcher when prompted

From Source

# Clone the repository
git clone https://github.com/BrianJr03/Jarngreipr.git
cd Jarngreipr

# Build with Gradle
./gradlew assembleRelease

# Install to connected device
adb install app/build/outputs/apk/release/app-release.apk

Requirements for building:

  • Android Studio Ladybug or higher
  • JDK 11 or higher
  • Android SDK 36

🎯 Usage Guide

Basic Navigation

Touch:

  • Tap to select apps/options
  • Long press for context menus
  • Swipe left/right between pages
  • Pinch to zoom (where supported)

Gamepad/D-Pad:

  • Arrow Keys/D-Pad - Navigate between apps and UI elements
  • Enter/A Button - Launch app or select option
  • Back/B Button - Go back or cancel
  • Menu/Start - Open app options (long press)
  • Triggers - Page navigation (if configured)

Getting Started

  1. First Launch

    • Grant necessary permissions (Accessibility, Usage Stats)
    • Choose your preferred theme
    • Set up your first home screen page
  2. Adding Apps

    • Apps automatically appear on your first page
    • Long press apps to move, hide, or add to folders
    • Use the App Drawer to find and add apps
  3. Creating Folders

    • Long press an app → "Create Folder"
    • Name your folder and add multiple apps
    • Tap folders to open, long press to edit
  4. Adding Widgets

    • Create an "Apps & Widgets" page
    • Tap "+" → Select widget
    • Resize and position as needed

Customization

Themes & Appearance:

  1. Tap ⚙️ Settings icon
  2. Appearance section:
    • Theme Selector - Choose from 6 themes or create custom
    • Icon Pack - Browse and apply icon packs
    • OLED Mode - Enable true black backgrounds
    • Wallpaper - Set custom backgrounds

Layout Configuration:

  1. SettingsLayout section:
    • Grid Settings - Adjust columns/rows per page
    • Unlimited Mode - Enable free-form positioning
    • Header Visibility - Show/hide top bar
    • App Names - Toggle name display

Control Pad (Gamepad):

  1. SettingsExtrasControl Pad
  2. Configure button mappings
  3. Adjust joystick sensitivity
  4. Choose joystick mode (L/R/Both)

Advanced Features

Free Positioning:

  • Enable "Unlimited Mode" in Grid Settings
  • Long press and drag apps anywhere
  • Use "Drag Lock" to prevent accidental moves

App Visibility:

  • Long press background → "App Visibility"
  • Toggle which apps appear on current page
  • Different pages can show different apps

Quick Delete:

  • SettingsExtrasQuick Delete
  • Select multiple apps to uninstall at once
  • Useful for cleaning up after gaming sessions

🎨 Available Themes

Theme Primary Secondary Description
Pink & Violet Blue Violet Hot Pink Vibrant and playful
Blue & Yellow Royal Blue Gold Classic and bold
Green & Cyan Sea Green Dark Cyan Fresh and modern
Purple & Orange Dark Violet Dark Orange Energetic contrast
Red & Blue Royal Blue Crimson Patriotic vibes
Magenta & Lime Magenta Lime Green Maximum pop
Custom Your Choice Your Choice Design your own!

🔌 Shizuku Integration

Járngreipr supports Shizuku for enhanced system features:

  1. Install Shizuku from Play Store or GitHub
  2. Grant Shizuku ADB permissions or root access
  3. Launch Járngreipr - it will detect Shizuku automatically
  4. Enjoy enhanced features like advanced app management

📡 Theme Sharing (Ping)

Járngreipr supports sharing themes and wallpapers wirelessly with nearby devices using the Ping library (Bluetooth LE) and the Nearby Connections API.

Theme Sharing via Bluetooth (Ping)

Broadcasts your current theme to nearby Járngreipr devices over BLE so others can receive and apply it instantly.

Setup:

  1. Navigate to SettingsTheme Share
  2. Grant Bluetooth permissions when prompted
  3. Grant battery optimization exemption for reliable background operation
  4. Tap Start Sharing in the Theme Sharing section to begin broadcasting

Auto-Start: Enable auto-start in Theme Share Settings to begin broadcasting automatically every time the launcher opens.

Quick Settings Tile: A system Quick Settings tile is available for toggling theme sharing without opening the app.

Wallpaper Sharing via Nearby Connections

Discovers and receives wallpapers from nearby devices using the Nearby Connections API over Wi-Fi/Bluetooth.

Setup:

  1. Navigate to SettingsTheme Share
  2. Grant Nearby/Wi-Fi permissions when prompted
  3. Toggle Nearby Wallpaper to start discovering

Received wallpapers are saved and accessible in the Received Wallpapers list on the same screen.

Received Themes & Wallpapers

Both received themes and wallpapers are stored locally and shown in the Theme Share screen, where you can apply or delete them.

Required Permissions

Permission Purpose
BLUETOOTH_SCAN / BLUETOOTH_ADVERTISE / BLUETOOTH_CONNECT BLE theme broadcasting
FOREGROUND_SERVICE / FOREGROUND_SERVICE_CONNECTED_DEVICE Background sharing
ACCESS_FINE_LOCATION / ACCESS_WIFI_STATE / CHANGE_WIFI_STATE Nearby wallpaper discovery
NEARBY_WIFI_DEVICES (API 33+) Nearby Connections

🤝 Contributing

Contributions are welcome! Whether it's bug fixes, new features, or documentation improvements.

How to contribute:

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Code Quality:

  • The project uses Jetpack Compose and modern Android architecture (MVVM + Hilt)
  • Comprehensive test suite with 472+ tests
  • Clean code principles and consistent patterns
  • All PRs should maintain or improve test coverage

🐛 Bug Reports & Feature Requests

Found a bug or have an idea? Open an issue with:

  • Bug Reports: Device model, Android version, steps to reproduce
  • Feature Requests: Use case description and expected behavior
  • Questions: Check FAQ first, then ask away!

📝 License

This project is open source and available under the MIT License.


💖 Support the Project

If you enjoy using Járngreipr, consider supporting development:

Buy Me a Coffee

Your support helps maintain and improve the launcher with new features, bug fixes, and updates!


🏗️ Architecture & Tech Stack

Built with modern Android development practices:

  • UI: 100% Jetpack Compose
  • Architecture: MVVM with Clean Architecture
  • DI: Hilt/Dagger
  • Async: Kotlin Coroutines & Flow
  • Persistence: DataStore Preferences
  • Testing: JUnit, Turbine, MockK (472+ tests)
  • Material Design 3 with custom theming
  • Minimum SDK: 33 (Android 13)
  • Target SDK: 36 (Android 14+)

📚 Documentation


🙏 Acknowledgments


🗺️ Roadmap

Completed ✅

  • Full widget support
  • Folder management
  • Free positioning mode
  • Custom theme creator
  • Control pad configuration
  • OLED mode
  • Icon pack support
  • Quick delete feature
  • Auto-update checker
  • Theme sharing via Bluetooth (Ping)
  • Wallpaper sharing via Nearby Connections

Coming Soon 🚀

  • Gesture customization
  • App groups/categories
  • Smart app suggestions
  • Backup/restore to cloud
  • Tablet-optimized layouts
  • Additional animation options
  • Plugin system for extensions

Made with ❤️ by BrianJr03

Wield your launcher like Thor wields Mjolnir 🔨

About

A modern, customizable Android launcher designed for the AYN Thor (and other dual screen devices).

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages