fix: set orphan=true for xdg-open to work around its odd behavior with programs that are both CLI/GUI (#3581)

This commit is contained in:
三咲雅 misaki masa 2026-01-17 23:03:08 +08:00 committed by GitHub
parent 756964b10a
commit a38a5e6377
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 25 additions and 24 deletions

28
Cargo.lock generated
View file

@ -541,9 +541,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.2.52"
version = "1.2.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3"
checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932"
dependencies = [
"find-msvc-tools",
"jobserver",
@ -677,9 +677,9 @@ dependencies = [
[[package]]
name = "cmov"
version = "0.4.5"
version = "0.5.0-pre.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1339d398d44e506d9b72c1af2f6f51a41c9c64f9a0738eb9aedede47ed1f683"
checksum = "5417da527aa9bf6a1e10a781231effd1edd3ee82f27d5f8529ac9b279babce96"
[[package]]
name = "color_quant"
@ -958,9 +958,9 @@ dependencies = [
[[package]]
name = "ctutils"
version = "0.3.1"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c67c81499f542d1dd38c6a2a2fe825f4dd4bca5162965dd2eea0c8119873d3c"
checksum = "758e5ed90be3c8abff7f9a6f37ab7f6d8c59c2210d448b81f3f508134aec84e4"
dependencies = [
"cmov",
]
@ -1503,9 +1503,9 @@ dependencies = [
[[package]]
name = "find-msvc-tools"
version = "0.1.7"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41"
checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db"
[[package]]
name = "finl_unicode"
@ -4764,9 +4764,9 @@ checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
[[package]]
name = "vergen"
version = "9.0.6"
version = "9.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777"
checksum = "b849a1f6d8639e8de261e81ee0fc881e3e3620db1af9f2e0da015d4382ceaf75"
dependencies = [
"anyhow",
"derive_builder",
@ -4778,9 +4778,9 @@ dependencies = [
[[package]]
name = "vergen-gitcl"
version = "1.0.8"
version = "9.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9dfc1de6eb2e08a4ddf152f1b179529638bedc0ea95e6d667c014506377aefe"
checksum = "77ff3b5300a085d6bcd8fc96a507f706a28ae3814693236c9b409db71a1d15b9"
dependencies = [
"anyhow",
"derive_builder",
@ -4792,9 +4792,9 @@ dependencies = [
[[package]]
name = "vergen-lib"
version = "0.1.6"
version = "9.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166"
checksum = "b34a29ba7e9c59e62f229ae1932fb1b8fb8a6fdcc99215a641913f5f5a59a569"
dependencies = [
"anyhow",
"derive_builder",

View file

@ -1,7 +1,7 @@
use std::{io::Write, path::PathBuf, process::Stdio};
use ansi_to_tui::IntoText;
use anyhow::{Result, bail};
use anyhow::{Result, anyhow, bail};
use crossterm::{cursor::MoveTo, queue};
use ratatui::layout::Rect;
use tokio::process::Command;
@ -32,7 +32,8 @@ impl Chafa {
.stdout(Stdio::piped())
.stderr(Stdio::null())
.kill_on_drop(true)
.spawn()?;
.spawn()
.map_err(|e| anyhow!("failed to spawn chafa: {e}"))?;
let output = child.wait_with_output().await?;
if !output.status.success() {

View file

@ -33,4 +33,4 @@ clap = { workspace = true }
clap_complete = "4.5.65"
clap_complete_fig = "4.5.2"
clap_complete_nushell = "4.5.10"
vergen-gitcl = { version = "1.0.8", features = [ "build", "rustc" ] }
vergen-gitcl = { version = "9.1.0", features = [ "build", "rustc" ] }

View file

@ -49,7 +49,7 @@ clap_complete = "4.5.65"
clap_complete_fig = "4.5.2"
clap_complete_nushell = "4.5.10"
serde_json = { workspace = true }
vergen-gitcl = { version = "1.0.8", features = [ "build" ] }
vergen-gitcl = { version = "9.1.0", features = [ "build" ] }
[target.'cfg(target_os = "macos")'.dependencies]
crossterm = { workspace = true, features = [ "use-dev-tty", "libc" ] }

View file

@ -35,10 +35,10 @@ edit = [
{ run = "code -w %s", desc = "code (block)", for = "windows", block = true },
]
play = [
{ run = "xdg-open %s1", desc = "Play", for = "linux" },
{ run = "open %s", desc = "Play", for = "macos" },
{ run = 'start "" %s1', orphan = true, desc = "Play", for = "windows" },
{ run = "termux-open %s1", desc = "Play", for = "android" },
{ run = "xdg-open %s1", desc = "Play", for = "linux", orphan = true },
{ run = "open %s", desc = "Play", for = "macos" },
{ run = 'start "" %s1', desc = "Play", for = "windows", orphan = true },
{ run = "termux-open %s1", desc = "Play", for = "android" },
{ run = "mediainfo %s1; echo 'Press enter to exit'; read _", block = true, desc = "Show media info", for = "unix" },
{ run = "mediainfo %s1 & pause", block = true, desc = "Show media info", for = "windows" },
]

View file

@ -37,7 +37,7 @@ tokio-stream = { workspace = true }
tracing = { workspace = true }
[build-dependencies]
vergen-gitcl = { version = "1.0.8", features = [ "build" ] }
vergen-gitcl = { version = "9.1.0", features = [ "build" ] }
[target."cfg(unix)".dependencies]
uzers = { workspace = true }

View file

@ -52,7 +52,7 @@ function Tabs:click(event, up)
if up or event.is_middle then
return
end
for i = #self._offsets, 1, -1 do
for i = #cx.tabs, 1, -1 do
if event.x >= self._offsets[i] then
ya.emit("tab_switch", { i - 1 })
break