aboutsummaryrefslogtreecommitdiff
path: root/src/platform
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-26 18:26:12 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-26 18:26:12 +0300
commitaf399094f5d24f157e35aaa657ed5ad5c44e5325 (patch)
tree2f44cc902312fbe8c405a972b9a438ca6bead27c /src/platform
parent3750e0bae21c54da3947d337584f180a21d0bc67 (diff)
feat: open pane links with ctrl-click
refs #307
Diffstat (limited to 'src/platform')
-rw-r--r--src/platform/fallback.rs8
-rw-r--r--src/platform/linux.rs10
-rw-r--r--src/platform/macos.rs10
3 files changed, 28 insertions, 0 deletions
diff --git a/src/platform/fallback.rs b/src/platform/fallback.rs
index a8f9d8ce..d7360f9b 100644
--- a/src/platform/fallback.rs
+++ b/src/platform/fallback.rs
@@ -41,6 +41,14 @@ pub fn write_clipboard(_bytes: &[u8]) -> bool {
}
/// Unsupported platform stub.
+pub fn open_url(_url: &str) -> std::io::Result<()> {
+ Err(std::io::Error::new(
+ std::io::ErrorKind::Unsupported,
+ "opening URLs is not supported on this platform",
+ ))
+}
+
+/// Unsupported platform stub.
pub fn read_clipboard_image() -> Option<ClipboardImage> {
None
}
diff --git a/src/platform/linux.rs b/src/platform/linux.rs
index 00f4b906..2ea26559 100644
--- a/src/platform/linux.rs
+++ b/src/platform/linux.rs
@@ -179,6 +179,16 @@ pub fn write_clipboard(bytes: &[u8]) -> bool {
false
}
+pub fn open_url(url: &str) -> std::io::Result<()> {
+ Command::new("xdg-open")
+ .arg(url)
+ .stdin(Stdio::null())
+ .stdout(Stdio::null())
+ .stderr(Stdio::null())
+ .spawn()?;
+ Ok(())
+}
+
pub fn read_clipboard_image() -> Option<ClipboardImage> {
for (mime, extension) in [
("image/png", "png"),
diff --git a/src/platform/macos.rs b/src/platform/macos.rs
index 354a6b3c..3ff23251 100644
--- a/src/platform/macos.rs
+++ b/src/platform/macos.rs
@@ -228,6 +228,16 @@ pub fn write_clipboard(bytes: &[u8]) -> bool {
)
}
+pub fn open_url(url: &str) -> std::io::Result<()> {
+ Command::new("open")
+ .arg(url)
+ .stdin(Stdio::null())
+ .stdout(Stdio::null())
+ .stderr(Stdio::null())
+ .spawn()?;
+ Ok(())
+}
+
pub fn read_clipboard_image() -> Option<ClipboardImage> {
let path = std::env::temp_dir().join(format!(
"herdr-clipboard-image-{}-{}.png",