From 9dad86bd25d46ca592bf281876a5c025b52bcb7f Mon Sep 17 00:00:00 2001 From: FTCHD <144691102+FTCHD@users.noreply.github.com> Date: Fri, 14 Feb 2025 09:56:23 +0200 Subject: [PATCH] improve linux compatibility --- lib/rclone/init.ts | 4 ++++ lib/tray.ts | 3 +++ main.ts | 3 ++- src-tauri/src/lib.rs | 19 ++++++++++++++++++- 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/lib/rclone/init.ts b/lib/rclone/init.ts index 49b6ea6..49f5087 100644 --- a/lib/rclone/init.ts +++ b/lib/rclone/init.ts @@ -193,6 +193,10 @@ export async function provisionRclone() { const appLocalDataDirPath = await appLocalDataDir() console.log('appLocalDataDirPath', appLocalDataDirPath) + await invoke('allow_dir', { + path: appLocalDataDirPath, + }) + const appLocalDataDirPathExists = await exists(appLocalDataDirPath) console.log('appLocalDataDirPathExists', appLocalDataDirPathExists) diff --git a/lib/tray.ts b/lib/tray.ts index 610b340..5618f27 100644 --- a/lib/tray.ts +++ b/lib/tray.ts @@ -10,6 +10,7 @@ import { getCurrentWindow, } from '@tauri-apps/api/window' import { ask } from '@tauri-apps/plugin-dialog' +import { platform } from '@tauri-apps/plugin-os' import { exit } from '@tauri-apps/plugin-process' import { buildMenu } from './menu' import { resetMainWindow } from './window' @@ -84,6 +85,8 @@ export async function initTray(): Promise { } export async function initLoadingTray() { + if (platform() === 'linux') return + const globeIconPath = await resolveResource('icons/favicon/frame_00_delay-0.1s.png') const quitItem = await MenuItem.new({ diff --git a/main.ts b/main.ts index 46b7786..6377ae4 100644 --- a/main.ts +++ b/main.ts @@ -1,6 +1,7 @@ import { getCurrentWindow } from '@tauri-apps/api/window' import { ask, message } from '@tauri-apps/plugin-dialog' import { debug, error, info, trace, warn } from '@tauri-apps/plugin-log' +import { platform } from '@tauri-apps/plugin-os' import { exit } from '@tauri-apps/plugin-process' import type { Command } from '@tauri-apps/plugin-shell' import { validateLicense } from './lib/license' @@ -41,7 +42,7 @@ async function waitForHydration() { async function validateInstance() { const isOnline = navigator.onLine - if (!isOnline) { + if (!isOnline && platform() !== 'linux') { await ask( 'You are not connected to the internet. Please check your connection and try again.', { diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 001faa3..a6f7c20 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -12,6 +12,23 @@ use std::path::Path; use zip::ZipArchive; use tauri_plugin_sentry::{minidump, sentry}; +use tauri::{AppHandle, Runtime}; +use tauri_plugin_fs::FsExt; + +#[tauri::command] +fn allow_file( + app: AppHandle, + path: &str) -> () { + app.fs_scope().allow_file(path); +} + +#[tauri::command] +fn allow_dir( + app: AppHandle, + path: &str) -> () { + app.fs_scope().allow_directory(path, true); +} + #[tauri::command] fn unzip_file(zip_path: &str, output_folder: &str) -> Result<(), String> { // Open the zip file @@ -104,7 +121,7 @@ pub fn run() { .plugin(tauri_plugin_log::Builder::new().build()) .plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_opener::init()) - .invoke_handler(tauri::generate_handler![unzip_file, get_arch, get_uid]) + .invoke_handler(tauri::generate_handler![unzip_file, get_arch, get_uid, allow_file, allow_dir]) .setup(|_app| Ok(())) // .setup(|app| { // if cfg!(debug_assertions) {