Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
d7883e8
chore(tauri): add initial setup
hazre Mar 5, 2026
06d3c79
feat(tauri): disable web push notifications
hazre Mar 5, 2026
e01c01c
feat(tauri): use deep link for sso authentication
hazre Mar 5, 2026
6932dcb
feat(tauri): custom windows titlebar
hazre Mar 5, 2026
2e10f73
feat(tauri): add desktop system tray and option to close to tray
hazre Mar 5, 2026
9e4a814
fix(tauri): ignore formatting on generated tauri bindings
hazre Mar 6, 2026
5823d23
fix(tauri): deep linking breaking due to specta export
hazre Mar 6, 2026
80dce7a
feat(tauri): add sso callback page
hazre Mar 6, 2026
84e71cf
feat(tauri): keep track of window state and position
hazre Mar 6, 2026
535ded2
chore: add tauri.conf.json to knope.toml
hazre Mar 6, 2026
55da9f1
style: fix formatting of Router.tsx
hazre Mar 7, 2026
b709f38
feat(tauri): add android support and splash screen tauri plugin (WIP)
hazre Mar 7, 2026
782626a
chore: add crates to knip ignore list
hazre Mar 7, 2026
46e5650
fix: broken Router and linting issues
hazre Mar 7, 2026
880efc4
chore: ignore false positive for tauri-plugin-splashscreen-api in knip
hazre Mar 8, 2026
fd3f341
fix: merge conflicts in package-lock.json
hazre Mar 8, 2026
cb0413c
chore: remove accidentally committed build files and adjusted .gitignore
TastelessVoid Mar 9, 2026
f0a9f4f
fix: bypass service worker for media authentication on Android
TastelessVoid Mar 9, 2026
751c2fc
fix(build): allow PWA build with large wasm assets and split vendor c…
hazre Mar 8, 2026
46092a8
feat: Add UnifiedPush for Fairphones or phones that have been "de-goo…
TastelessVoid Mar 9, 2026
f5d90c0
feat: Add build.gradle.kts to specify a higher kotlin version and upd…
TastelessVoid Mar 9, 2026
0aa9cf8
fix: Commit the gen folder as the nested .gitignore should keep the r…
TastelessVoid Mar 9, 2026
f9f37a1
fix: Adjusted .gitignore and tracked files
TastelessVoid Mar 9, 2026
daeec60
feat(tauri): Implement media caching and notification enhancements
TastelessVoid Mar 10, 2026
ade84fa
feat(tauri): Addressed review, updated package
TastelessVoid Mar 10, 2026
c064680
feat(tauri): Fixed dynamical import warning, removed local crate due …
TastelessVoid Mar 10, 2026
2d8609b
fix(tauri): Fixed avatars in the notification not showing
TastelessVoid Mar 11, 2026
9c84d92
Merge branch 'dev' into feat/tauri-integration
TastelessVoid Mar 11, 2026
93bca4b
chore(tauri): Merge dev into feat/tauri-integration and resolved conf…
TastelessVoid Mar 11, 2026
0b97f55
Merge pull request #139 from TastelessVoid/feat/tauri-integration
hazre Mar 12, 2026
65e83ed
fix: make android actually build
hazre Mar 12, 2026
8667938
chore: merge dev into feat/tauri-integration
hazre Mar 12, 2026
abfaab5
chore: make quality checks happy
hazre Mar 12, 2026
fd6a135
chore: remove binary files
hazre Mar 12, 2026
bf36d2b
fix: sso login on mobile
hazre Mar 12, 2026
01d5cdc
chore: add nix devshell flake (android not tested)
hazre Mar 14, 2026
e867034
feat: add cef support and switch to tauri-typegen for bindings (wip)
hazre Mar 14, 2026
4795fb3
fix: move window creation into rust side for easier control
hazre Mar 14, 2026
187c592
chore: merge dev into feat/tauri-integration
hazre Mar 14, 2026
9c89e18
chore: merge dev into feat/tauri-integration
hazre Mar 25, 2026
3b63e35
refactor(tauri): remove splashscreen plugin integration
hazre Mar 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,30 @@ build.sh

# the following line was added with the "git ignore" tool by itsrye.dev, version 0.1.0
.lh

# the following line was added with the "git ignore" tool by itsrye.dev, version 0.1.0
.lh

# Tauri
/build
/target/
/gen/schemas
dist-js

# Gradle / Android build artifacts
**/android/build/
**/android/.tauri/
**/android/.gradle/
**/.gradle/

# Rust build artifacts
src-tauri/target/
# Tauri Android build outputs
src-tauri/gen/android/app/build/


# Rust build artifacts in subcrates
crates/**/target/

# Worktrees
.worktrees
5 changes: 4 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,7 @@ pnpm-lock.yaml
LICENSE
README.md
CHANGELOG.md
./changeset
./changeset
src/app/generated
crates/
src-tauri/
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,8 @@
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer"
}
}
3 changes: 2 additions & 1 deletion config.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
"pushNotificationDetails": {
"pushNotifyUrl": "https://sygnal.sable.moe/_matrix/push/v1/notify",
"vapidPublicKey": "BCnS4SbHjeOaqVFW4wjt5xDt_pYIL62qMzKePfYF9fl9PQU14RieIaObh7nLR_9dQf4sykZa-CTrcjkgMIE1mcg",
"webPushAppID": "moe.sable.app.sygnal"
"webPushAppID": "moe.sable.app.sygnal",
"unifiedPushAppID": "moe.sable.up"
},

"slidingSync": {
Expand Down
187 changes: 187 additions & 0 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

136 changes: 136 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
# https://github.com/PleahMaCaka/svelte-tauri-template/blob/a598c33a34489b07680e14bb0d82ac01b0a9a4be/flake.nix
{
description = "sable dev environment";

inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
rust-overlay.url = "github:oxalica/rust-overlay";
android-nixpkgs.url = "github:tadfisher/android-nixpkgs";
};

nixConfig = {
bash-prompt = "\\[\\e[1;35m\\]sable\\[\\e[0m\\]"; # bold magenta
bash-prompt-suffix = " \\[\\e[0;36m\\]>\\[\\e[0m\\] "; # cyan >
};

outputs =
{
nixpkgs,
flake-utils,
rust-overlay,
android-nixpkgs,
...
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ rust-overlay.overlays.default ];
config = {
android_sdk.accept_license = true;
allowUnfree = true;
};
};

rust = pkgs.rust-bin.stable.latest.default.override {
targets = [
"aarch64-linux-android"
"armv7-linux-androideabi"
"i686-linux-android"
"x86_64-linux-android"
];
};

androidSdk = android-nixpkgs.sdk.${system} (
sdkPkgs: with sdkPkgs; [
build-tools-34-0-0
platforms-android-34
ndk-26-1-10909125
cmdline-tools-latest
platform-tools
emulator
]
);

baseShell = {
nativeBuildInputs = with pkgs; [
pkg-config
gobject-introspection
cargo
cargo-tauri
nodejs
xdg-utils
desktop-file-utils
];

buildInputs = with pkgs; [
at-spi2-atk
atkmm
cairo
gdk-pixbuf
glib
glib-networking
gtk3
gsettings-desktop-schemas
harfbuzz
librsvg
libsoup_3
pango
webkitgtk_4_1
openssl
libayatana-appindicator
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly
gst_all_1.gst-libav
];

packages = with pkgs; [
coreutils
nix
pnpm
rust
];

shellHook = ''
export XDG_DATA_DIRS="$GSETTINGS_SCHEMAS_PATH:$XDG_DATA_DIRS"
export GIO_EXTRA_MODULES="${pkgs.glib-networking}/lib/gio/modules"
export GST_PLUGIN_SYSTEM_PATH="${pkgs.gst_all_1.gst-plugins-base}/lib/gstreamer-1.0:${pkgs.gst_all_1.gst-plugins-good}/lib/gstreamer-1.0:${pkgs.gst_all_1.gst-plugins-bad}/lib/gstreamer-1.0"
alias tauri="pnpm exec tauri"
echo "Done! Now make sable stable :3";
'';
};
in
{
devShells = {
default = pkgs.mkShell {
name = "sable dev environment";
inherit (baseShell) nativeBuildInputs buildInputs packages shellHook;

LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [
pkgs.libayatana-appindicator
];
};

android = pkgs.mkShell {
name = "sable dev environment (android)";
inherit (baseShell) nativeBuildInputs buildInputs; # <-- shellHook removed here

packages = baseShell.packages ++ (with pkgs; [
jdk
androidSdk
]);

shellHook = baseShell.shellHook + ''
export NDK_HOME=${androidSdk}/share/android-sdk/ndk/26.1.10909125
echo "Android SDK ready!";
'';
};
};
}
);
}
5 changes: 4 additions & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, viewport-fit=cover"
/>
<title>Sable Client</title>
<meta name="name" content="Sable" />
<meta name="author" content="7w1" />
Expand Down
Loading
Loading