diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-26 18:26:12 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-26 18:26:12 +0300 |
| commit | af399094f5d24f157e35aaa657ed5ad5c44e5325 (patch) | |
| tree | 2f44cc902312fbe8c405a972b9a438ca6bead27c /src/platform | |
| parent | 3750e0bae21c54da3947d337584f180a21d0bc67 (diff) | |
feat: open pane links with ctrl-click
refs #307
Diffstat (limited to 'src/platform')
| -rw-r--r-- | src/platform/fallback.rs | 8 | ||||
| -rw-r--r-- | src/platform/linux.rs | 10 | ||||
| -rw-r--r-- | src/platform/macos.rs | 10 |
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", |
