refactor: Optimizing the implementation of Linux URL Scheme registration

This commit is contained in:
MystiPanda 2024-01-10 16:34:35 +08:00
parent 6702ac957b
commit 1ffc4f538b
4 changed files with 12 additions and 19 deletions

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Categories={{{categories}}}
Comment={{{comment}}}
Exec={{{exec}}} %u
Icon={{{icon}}}
Name={{{name}}}
Terminal=false
Type=Application
MimeType=x-scheme-handler/clash;

View File

@ -1,6 +0,0 @@
[Desktop Entry]
Type=Application
Name=Clash Verge Scheme Handler
Exec=clash-verge %u
StartupNotify=false
MimeType=x-scheme-handler/clash;

View File

@ -325,20 +325,9 @@ pub fn init_scheme() -> Result<()> {
}
#[cfg(target_os = "linux")]
pub fn init_scheme() -> Result<()> {
use std::io::Write;
let desktop_file_content = include_str!("./desktop/clash-verge-scheme.desktop");
let desktop_dir = dirs::local_applications_dir()?;
if !desktop_dir.exists() {
let _ = std::fs::create_dir_all(&desktop_dir);
}
let mut desktop_file =
std::fs::File::create(dirs::local_applications_dir()?.join("clash-verge-scheme.desktop"))?;
desktop_file.write_all(desktop_file_content.as_bytes())?;
let output = std::process::Command::new("xdg-mime")
.arg("default")
.arg("clash-verge-scheme.desktop")
.arg("clash-verge.desktop")
.arg("x-scheme-handler/clash")
.output()?;
if !output.status.success() {

View File

@ -6,7 +6,8 @@
"bundle": {
"targets": ["deb", "appimage", "updater"],
"deb": {
"depends": ["openssl"]
"depends": ["openssl"],
"desktopTemplate": "./clash-verge.desktop"
}
}
}