1diff --git a/src/backend/cryfs.rs b/src/backend/cryfs.rs
2index 089bf03..157c72a 100644
3--- a/src/backend/cryfs.rs
4+++ b/src/backend/cryfs.rs
5@@ -35,13 +35,7 @@ fn get_binary_path(vault_config: &VaultConfig) -> String {
6 }
7 }
8
9- let global_config = GlobalConfigManager::instance().get_flatpak_info();
10- let instance_path = global_config
11- .section(Some("Instance"))
12- .unwrap()
13- .get("app-path")
14- .unwrap();
15- let cryfs_instance_path = instance_path.to_owned() + "/bin/cryfs";
16+ let cryfs_instance_path = "@cryfs@".to_string();
17 log::info!("CryFS binary path: {}", cryfs_instance_path);
18 cryfs_instance_path
19 }
20@@ -49,9 +43,7 @@ fn get_binary_path(vault_config: &VaultConfig) -> String {
21 pub fn is_available(vault_config: &VaultConfig) -> Result<bool, BackendError> {
22 log::trace!("is_available({:?})", vault_config);
23
24- let output = Command::new("flatpak-spawn")
25- .arg("--host")
26- .arg(get_binary_path(vault_config))
27+ let output = Command::new(get_binary_path(vault_config))
28 .arg("--version")
29 .output()?;
30 log::debug!("CryFS output: {:?}", output);
31@@ -64,9 +56,7 @@ pub fn is_available(vault_config: &VaultConfig) -> Result<bool, BackendError> {
32 pub fn init(vault_config: &VaultConfig, password: String) -> Result<(), BackendError> {
33 log::trace!("init({:?}, password: <redacted>)", vault_config);
34
35- let mut child = Command::new("flatpak-spawn")
36- .arg("--host")
37- .arg(get_binary_path(vault_config))
38+ let mut child = Command::new(get_binary_path(vault_config))
39 .env("CRYFS_FRONTEND", "noninteractive")
40 .stdin(Stdio::piped())
41 .stdout(Stdio::piped())
42@@ -106,9 +96,7 @@ pub fn init(vault_config: &VaultConfig, password: String) -> Result<(), BackendE
43 pub fn open(vault_config: &VaultConfig, password: String) -> Result<(), BackendError> {
44 log::trace!("open({:?}, password: <redacted>)", vault_config);
45
46- let mut child = Command::new("flatpak-spawn")
47- .arg("--host")
48- .arg(get_binary_path(vault_config))
49+ let mut child = Command::new(get_binary_path(vault_config))
50 .env("CRYFS_FRONTEND", "noninteractive")
51 .stdin(Stdio::piped())
52 .stdout(Stdio::piped())
53@@ -143,9 +131,7 @@ pub fn open(vault_config: &VaultConfig, password: String) -> Result<(), BackendE
54 pub fn close(vault_config: &VaultConfig) -> Result<(), BackendError> {
55 log::trace!("close({:?})", vault_config);
56
57- let child = Command::new("flatpak-spawn")
58- .arg("--host")
59- .arg("fusermount")
60+ let child = Command::new("@fusermount@")
61 .arg("-u")
62 .stdout(Stdio::piped())
63 .arg(&vault_config.mount_directory)
64diff --git a/src/backend/gocryptfs.rs b/src/backend/gocryptfs.rs
65index 9638f3a..ffa8f44 100644
66--- a/src/backend/gocryptfs.rs
67+++ b/src/backend/gocryptfs.rs
68@@ -35,13 +35,7 @@ fn get_binary_path(vault_config: &VaultConfig) -> String {
69 }
70 }
71
72- let global_config = GlobalConfigManager::instance().get_flatpak_info();
73- let instance_path = global_config
74- .section(Some("Instance"))
75- .unwrap()
76- .get("app-path")
77- .unwrap();
78- let gocryptfs_instance_path = instance_path.to_owned() + "/bin/gocryptfs";
79+ let gocryptfs_instance_path = "@gocryptfs@".to_string();
80 log::info!("gocryptfs binary path: {}", gocryptfs_instance_path);
81 gocryptfs_instance_path
82 }
83@@ -49,9 +43,7 @@ fn get_binary_path(vault_config: &VaultConfig) -> String {
84 pub fn is_available(vault_config: &VaultConfig) -> Result<bool, BackendError> {
85 log::trace!("is_available({:?})", vault_config);
86
87- let output = Command::new("flatpak-spawn")
88- .arg("--host")
89- .arg(get_binary_path(vault_config))
90+ let output = Command::new(get_binary_path(vault_config))
91 .arg("--version")
92 .output()?;
93 log::debug!("gocryptfs output: {:?}", output);
94@@ -64,9 +56,7 @@ pub fn is_available(vault_config: &VaultConfig) -> Result<bool, BackendError> {
95 pub fn init(vault_config: &VaultConfig, password: String) -> Result<(), BackendError> {
96 log::trace!("init({:?}, password: <redacted>)", vault_config);
97
98- let mut child = Command::new("flatpak-spawn")
99- .arg("--host")
100- .arg(get_binary_path(vault_config))
101+ let mut child = Command::new(get_binary_path(vault_config))
102 .stdin(Stdio::piped())
103 .stdout(Stdio::piped())
104 .arg("--init")
105@@ -104,9 +94,7 @@ pub fn init(vault_config: &VaultConfig, password: String) -> Result<(), BackendE
106 pub fn open(vault_config: &VaultConfig, password: String) -> Result<(), BackendError> {
107 log::trace!("open({:?}, password: <redacted>)", vault_config);
108
109- let mut child = Command::new("flatpak-spawn")
110- .arg("--host")
111- .arg(get_binary_path(vault_config))
112+ let mut child = Command::new(get_binary_path(vault_config))
113 .stdin(Stdio::piped())
114 .stdout(Stdio::piped())
115 .arg("-q")
116@@ -142,9 +130,7 @@ pub fn open(vault_config: &VaultConfig, password: String) -> Result<(), BackendE
117 pub fn close(vault_config: &VaultConfig) -> Result<(), BackendError> {
118 log::trace!("close({:?}, password: <redacted>)", vault_config);
119
120- let child = Command::new("flatpak-spawn")
121- .arg("--host")
122- .arg("umount")
123+ let child = Command::new("@umount@")
124 .stdout(Stdio::piped())
125 .arg(&vault_config.mount_directory)
126 .spawn()?;
127diff --git a/src/global_config_manager.rs b/src/global_config_manager.rs
128index 619bb18..cea9ac3 100644
129--- a/src/global_config_manager.rs
130+++ b/src/global_config_manager.rs
131@@ -102,7 +102,7 @@ impl GlobalConfigManager {
132 let object: Self = glib::Object::new();
133
134 *object.imp().flatpak_info.borrow_mut() =
135- Ini::load_from_file("/.flatpak-info").expect("Could not load .flatpak-info");
136+ Ini::load_from_file("/.flatpak-info").unwrap_or_else(|_| Ini::new());
137
138 match user_config_dir().as_os_str().to_str() {
139 Some(user_config_directory) => {