diff --git a/app/src/main/java/io/xpipe/app/pwman/BitwardenPasswordManager.java b/app/src/main/java/io/xpipe/app/pwman/BitwardenPasswordManager.java index e93cc5cf3..026ea41d4 100644 --- a/app/src/main/java/io/xpipe/app/pwman/BitwardenPasswordManager.java +++ b/app/src/main/java/io/xpipe/app/pwman/BitwardenPasswordManager.java @@ -124,7 +124,7 @@ public class BitwardenPasswordManager implements PasswordManager { public Path getConfigLocation() { return AppSystemInfo.ofMacOs() .getUserHome() - .resolve("Library", "Application Support", "Bitwarden CLI", "data.json"); + .resolve("Library", "Application Support", "Bitwarden", "data.json"); } }, @@ -139,7 +139,7 @@ public class BitwardenPasswordManager implements PasswordManager { public Path getConfigLocation() { return AppSystemInfo.ofMacOs() .getUserHome() - .resolve("Library", "Application Support", "Bitwarden CLI", "data.json"); + .resolve("Library", "Application Support", "Bitwarden", "data.json"); } }; diff --git a/app/src/main/java/io/xpipe/app/pwman/KeeperPasswordManager.java b/app/src/main/java/io/xpipe/app/pwman/KeeperPasswordManager.java index 4c0559f71..cb509c530 100644 --- a/app/src/main/java/io/xpipe/app/pwman/KeeperPasswordManager.java +++ b/app/src/main/java/io/xpipe/app/pwman/KeeperPasswordManager.java @@ -30,6 +30,7 @@ import lombok.ToString; import lombok.Value; import lombok.extern.jackson.Jacksonized; +import java.nio.file.Files; import java.nio.file.Path; import java.time.Duration; import java.util.*; @@ -45,7 +46,11 @@ public class KeeperPasswordManager implements PasswordManager { private static Path getSocketLocation() { var socket = switch (OsType.ofLocal()) { case OsType.Linux ignored -> AppSystemInfo.ofLinux().getConfigDir().resolve("Keeper Password Manager", "keeper-ssh-agent.sock"); - case OsType.MacOs ignored -> AppSystemInfo.ofMacOs().getTemp().resolve("keeper-ssh-agent.sock"); + case OsType.MacOs ignored -> { + var l = List.of(AppSystemInfo.ofMacOs().getTemp().resolve("keeper-ssh-agent.sock"), + AppSystemInfo.ofMacOs().getUserHome().resolve("Library/Containers/com.callpod.keepermac.lite/Data/tmp/keeper-ssh-agent.sock")); + yield l.stream().filter(Files::exists).findFirst().orElse(l.getFirst()); + } case OsType.Windows ignored -> null; }; return socket; @@ -58,7 +63,7 @@ public class KeeperPasswordManager implements PasswordManager { @Override public boolean selectInitial() throws Exception { - return LocalShell.getShell().view().findProgram("keeper-commander").isPresent(); + return LocalShell.getShell().view().findProgram(getExecutable()).isPresent(); } @Override @@ -481,7 +486,7 @@ public class KeeperPasswordManager implements PasswordManager { key = key.replaceFirst("https://\\w+\\.\\w+/vault/#detail/", ""); try { - CommandSupport.isInLocalPathOrThrow("Keeper Commander CLI", "keeper-commander"); + CommandSupport.isInLocalPathOrThrow("Keeper Commander CLI", getExecutable()); } catch (Exception e) { ErrorEventFactory.fromThrowable(e) .link("https://docs.keeper.io/en/keeperpam/commander-cli/commander-installation-setup") diff --git a/lang/strings/translations_en.properties b/lang/strings/translations_en.properties index b59de2188..3acee944e 100644 --- a/lang/strings/translations_en.properties +++ b/lang/strings/translations_en.properties @@ -2018,7 +2018,7 @@ keePassXcOpenSshAgent=Use OpenSSH agent keePassXcPageant=Use Pageant passwordManagerSshAgentSocket=SSH agent socket passwordManagerSshAgentSocketDescription=The socket that should be used to communicate with the agent. -passwordManagerSshKeysNotSupported=The current password manager configuration does not support retrieving SSH keys +passwordManagerSshKeysNotSupported=The current password manager configuration does not support retrieving SSH keys via an agent passwordManagerAdditionalKey=Additional SSH key passwordManagerAdditionalKeyDescription=The SSH key to use in addition to the credentials from the password manager multiIdentity.displayName=Multi identity