mirror of
https://github.com/Dr-Blank/Vaani.git
synced 2025-12-07 03:29:29 +00:00
feat: deeplinks for linux (#84)
Some checks failed
Some checks failed
This commit is contained in:
parent
db20682004
commit
4619657f00
3 changed files with 76 additions and 4 deletions
45
docs/linux_build_guide.md
Normal file
45
docs/linux_build_guide.md
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
# Linux Build Guide
|
||||||
|
|
||||||
|
## Determining Package Size
|
||||||
|
To determine the installed size for your Linux package configuration, you can use the following script:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Build the Linux app
|
||||||
|
flutter build linux
|
||||||
|
|
||||||
|
# Get size in KB and add 17% buffer for runtime dependencies
|
||||||
|
SIZE_KB=$(du -sk build/linux/x64/release/bundle | cut -f1)
|
||||||
|
BUFFER_SIZE_KB=$(($SIZE_KB + ($SIZE_KB * 17 / 100)))
|
||||||
|
|
||||||
|
echo "Actual bundle size: $SIZE_KB KB"
|
||||||
|
echo "Recommended installed_size (with 17% buffer): $BUFFER_SIZE_KB KB"
|
||||||
|
```
|
||||||
|
|
||||||
|
Save this as `get_package_size.sh` in your project root and make it executable:
|
||||||
|
```bash
|
||||||
|
chmod +x get_package_size.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
1. Run the script:
|
||||||
|
```bash
|
||||||
|
./get_package_size.sh
|
||||||
|
```
|
||||||
|
2. Use the output value for `installed_size` in your `linux/packaging/deb/make_config.yaml` file:
|
||||||
|
```yaml
|
||||||
|
installed_size: 75700 # Replace with the value from the script
|
||||||
|
```
|
||||||
|
|
||||||
|
### Why add a buffer?
|
||||||
|
The 17% buffer is added to account for:
|
||||||
|
- Runtime dependencies
|
||||||
|
- Future updates
|
||||||
|
- Potential additional assets
|
||||||
|
- Prevent installation issues on systems with limited space
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
- The installed size should be specified in kilobytes (KB)
|
||||||
|
- Always round up the buffer size to be safe
|
||||||
|
- Re-run this script after significant changes to your app (new assets, dependencies, etc.)
|
||||||
|
|
@ -17,6 +17,14 @@ G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)
|
||||||
// Implements GApplication::activate.
|
// Implements GApplication::activate.
|
||||||
static void my_application_activate(GApplication* application) {
|
static void my_application_activate(GApplication* application) {
|
||||||
MyApplication* self = MY_APPLICATION(application);
|
MyApplication* self = MY_APPLICATION(application);
|
||||||
|
|
||||||
|
GList *windows = gtk_application_get_windows(GTK_APPLICATION(application));
|
||||||
|
if (windows)
|
||||||
|
{
|
||||||
|
gtk_window_present(GTK_WINDOW(windows->data));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
GtkWindow* window =
|
GtkWindow* window =
|
||||||
GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
|
GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
|
||||||
|
|
||||||
|
|
@ -78,7 +86,7 @@ static gboolean my_application_local_command_line(GApplication* application, gch
|
||||||
g_application_activate(application);
|
g_application_activate(application);
|
||||||
*exit_status = 0;
|
*exit_status = 0;
|
||||||
|
|
||||||
return TRUE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implements GApplication::startup.
|
// Implements GApplication::startup.
|
||||||
|
|
@ -119,6 +127,6 @@ static void my_application_init(MyApplication* self) {}
|
||||||
MyApplication* my_application_new() {
|
MyApplication* my_application_new() {
|
||||||
return MY_APPLICATION(g_object_new(my_application_get_type(),
|
return MY_APPLICATION(g_object_new(my_application_get_type(),
|
||||||
"application-id", APPLICATION_ID,
|
"application-id", APPLICATION_ID,
|
||||||
"flags", G_APPLICATION_NON_UNIQUE,
|
"flags", G_APPLICATION_HANDLES_COMMAND_LINE | G_APPLICATION_HANDLES_OPEN,
|
||||||
nullptr));
|
nullptr));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,20 @@ essential: false
|
||||||
|
|
||||||
icon: assets/icon/logo.png
|
icon: assets/icon/logo.png
|
||||||
|
|
||||||
|
description:
|
||||||
|
short: Beautiful, Fast and Functional Audiobook Player for your Audiobookshelf server.
|
||||||
|
long: |
|
||||||
|
Vaani is a client for your (self-hosted) Audiobookshelf server.
|
||||||
|
|
||||||
|
Features:
|
||||||
|
- Functional Player: Speed Control, Sleep Timer, Shake to Control Player
|
||||||
|
- Save data with Offline listening and caching
|
||||||
|
- Material Design
|
||||||
|
- Extensive Settings to customize every tiny detail
|
||||||
|
|
||||||
|
Note: you need an Audiobookshelf server setup for this app to work.
|
||||||
|
Please see https://www.audiobookshelf.org/ on how to setup one if not already.
|
||||||
|
|
||||||
postuninstall_scripts:
|
postuninstall_scripts:
|
||||||
- echo "Sorry to see you go."
|
- echo "Sorry to see you go."
|
||||||
|
|
||||||
|
|
@ -26,7 +40,12 @@ keywords:
|
||||||
generic_name: Audiobook Player
|
generic_name: Audiobook Player
|
||||||
|
|
||||||
categories:
|
categories:
|
||||||
- Media
|
- AudioVideo
|
||||||
- Utility
|
- Audio
|
||||||
|
- Player
|
||||||
|
|
||||||
startup_notify: true
|
startup_notify: true
|
||||||
|
|
||||||
|
# https://github.com/llfbandit/app_links/blob/051f53fa6039cbfaef0fcde73df20fef9e248cab/doc/README_linux.md
|
||||||
|
supported_mime_type:
|
||||||
|
- x-scheme-handler/vaani
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue