Module ashpd::desktop::open_uri

source ·
Expand description

Open a URI or a directory.

Wrapper of the DBus interface: org.freedesktop.portal.OpenURI.

§Examples

§Open a file

use std::{fs::File, os::fd::AsFd};

use ashpd::desktop::open_uri::OpenFileRequest;

async fn run() -> ashpd::Result<()> {
    let file = File::open("/home/bilelmoussaoui/adwaita-day.jpg").unwrap();
    OpenFileRequest::default()
        .ask(true)
        .send_file(&file.as_fd())
        .await?;
    Ok(())
}

§Open a file from a URI

use ashpd::desktop::open_uri::OpenFileRequest;

async fn run() -> ashpd::Result<()> {
    let uri =
        url::Url::parse("file:///home/bilelmoussaoui/Downloads/adwaita-night.jpg").unwrap();
    OpenFileRequest::default().ask(true).send_uri(&uri).await?;
    Ok(())
}

§Open a directory

use std::{fs::File, os::fd::AsFd};

use ashpd::desktop::open_uri::OpenDirectoryRequest;

async fn run() -> ashpd::Result<()> {
    let directory = File::open("/home/bilelmoussaoui/Downloads").unwrap();
    OpenDirectoryRequest::default()
        .send(&directory.as_fd())
        .await?;
    Ok(())
}

Structs§