This commit is contained in:
kiri committed 2026-09-22 22:05:11 +02:00
1 parent 9c3b7c3735
commit 98a9be3615
9 files changed
+31 -153

No files matched your search

-12
View File
@@ -23,16 +23,6 @@
...
}:
let
elephantPackages = inputs.walker.inputs.elephant.packages.${pkgs.stdenv.hostPlatform.system};
# Upstream initializes rbw at startup. Drop this patch when it supports lazy vault access.
providers = elephantPackages.elephant-providers.overrideAttrs (old: {
patches = (old.patches or [ ]) ++ [ ./demand-driven-vault.patch ];
});
elephant = elephantPackages.elephant-with-providers.overrideAttrs (old: {
installPhase =
builtins.replaceStrings [ "${elephantPackages.elephant-providers}" ] [ "${providers}" ]
old.installPhase;
});
walkerDefaults = builtins.fromTOML (builtins.readFile "${inputs.walker}/resources/config.toml");
launcher = pkgs.writeShellApplication {
@@ -46,8 +36,6 @@
{
imports = [ inputs.walker.homeManagerModules.default ];
programs.elephant.package = elephant;
desktop.commands.launcher = [ (lib.getExe launcher) ];
programs.walker = {
enable = true;
@@ -1,55 +0,0 @@
--- a/internal/providers/bitwarden/setup.go
+++ b/internal/providers/bitwarden/setup.go
@@ -34,7 +34,7 @@
func Setup() {
LoadConfig()
- initItems()
+ // Vault access is initiated by an explicit query, never daemon startup.
}
func LoadConfig() {
--- a/internal/providers/bitwarden/query.go
+++ b/internal/providers/bitwarden/query.go
@@ -7,6 +7,7 @@
"net"
"os/exec"
"strings"
+ "sync"
"time"
"github.com/abenz1267/elephant/v2/pkg/common"
@@ -20,7 +21,24 @@
Folder string `json:"folder"`
}
+var itemsMu sync.Mutex
+
func initItems() {
+ itemsMu.Lock()
+ defer itemsMu.Unlock()
+ initItemsLocked()
+}
+
+func items() []RbwItem {
+ itemsMu.Lock()
+ defer itemsMu.Unlock()
+ if cachedItems == nil {
+ initItemsLocked()
+ }
+ return cachedItems
+}
+
+func initItemsLocked() {
cachedItems = nil
cmd := exec.Command("rbw", "list", "--raw")
output, err := cmd.CombinedOutput()
@@ -40,7 +58,7 @@
entries := []*pb.QueryResponse_Item{}
- for k, v := range cachedItems {
+ for k, v := range items() {
var subtexts []string
actions := []string{ActionCopyPassword, ActionCopyTotp, ActionSyncVault}
if config.AutoTypeSupport {