TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
Swipe Search Launcher for Android
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Android app that lets you search everything on your phone and on the web, and opens what you find in its own ad-blocking browser.
Get it on Google Play. APKs are also on GitHub Releases.查看完整 README ↗Android app that lets you search everything on your phone and on the web, and opens what you find in its own ad-blocking browser.
Get it on Google Play. APKs are also on GitHub Releases: choose app-play.apk for the same signing identity as Google Play. The older app-release.apk is only for legacy GitHub/F-Droid installs.
Website: searchlauncher.eu (source in website/)
The integrated browser now uses GeckoView, the Firefox engine, with SurfaceView rendering. Supported websites can be installed from Browser menu → Install app and launched from favorites without the browser bar. Long-press the favorite to open in a normal tab or remove app mode. Sites requesting standalone mode keep Android's system bars; fullscreen apps hide them.
Favorites, bookmarks and launcher settings stay in place when updating the production app. WebView cookies, open-page sessions and website storage are not transferred to Gecko, so you may need to sign in again. The separate SearchLauncher Gecko testing app remains a separate install; use export/import to transfer its launcher data if needed.
Website notifications work while Gecko is running. Remote Web Push after the browser process closes is not configured. Passkey support depends on the credential provider's browser policy; per-site storage totals and private popup windows remain unsupported.
git clone https://github.com/ontola/searchlauncher.git
cd searchlauncher
# Format code
./gradlew spotlessApply
# Install to connected device over ADB
./gradlew installDebug
# Run tests
./gradlew test
# Build an optimized test APK that can coexist with Google Play
./gradlew assembleGecko
# Install it as SearchLauncher (Debug Gecko), package com.searchlauncher.app.gecko
./gradlew installGecko
Debug builds always use separate application IDs and names containing Debug.
PR/main CI builds also produce a separate Debug Preview APK, never a production-package APK.
The optimized Gecko test build keeps its existing .gecko ID so it upgrades older experimental
installs without erasing their data. It uses the same Gecko engine as production.
For a production APK that can receive Google Play updates, use app-play.apk from GitHub
Releases. Do not use the legacy app-release.apk: its signing key differs from Google's Play key. The conflict also applies
when the old copy remains in a work profile, Xiaomi Second Space, or another Android user.
See installation conflicts and recovery.
Search shortcuts (y cats searches YouTube) are listed in
app/src/main/resources/search_shortcuts.json.
To add a site or app, add an entry there:
{
"id": "etsy",
"aliases": ["et", "etsy"],
"description": "Etsy Search",
"shortLabel": "Etsy",
"urlTemplate": "https://www.etsy.com/search?q=%s",
"apps": ["com.etsy.android"],
"color": "#F1641E",
"onlyWhenInstalled": true
}
urlTemplate gets the query in place of %s. Web addresses work best: they open in the app when it claims the link, and in the built-in browser otherwise.apps are the Android package names of the app. Its icon replaces the letter tile.onlyWhenInstalled keeps the shortcut hidden until one of those apps is installed, so regional and niche apps are welcome. Leave it out only for shortcuts everyone should get.aliases are the keys to try, shortest first. When the app is installed, the shortcut gets the first key nobody else uses and keeps it. End with one that only this shortcut lists, such as its name. Skip words that start ordinary queries, like a or i../gradlew test checks the file for duplicate ids, a missing last-resort key, missing %s and bad colours.
versionCode and versionName are plain literals in app/build.gradle.kts because F-Droid
parses them straight out of that file. Bump both, add a changelog under
fastlane/metadata/android/en-US/changelogs/<versionCode>.txt, then tag. See
DISTRIBUTION.md.
The marketing site lives in website/ and deploys to
searchlauncher.eu via
.github/workflows/deploy-website.yml
on pushes to main that touch website/.
Setup notes (Pages source + Openprovider DNS records): website/README.md.
This project is open source. See LICENSE file for details.