diff --git a/flake.nix b/flake.nix index 47525f1..cc3e307 100644 --- a/flake.nix +++ b/flake.nix @@ -270,6 +270,23 @@ hyprland = hyprland-input.outputs.packages.${prev.system}.default; final.hyprland = hyprland; + bitwarden = prev.bitwarden.overrideAttrs (old: { + preBuild = '' + ${old.preBuild} + pushd apps/desktop/desktop_native/proxy + cargo build --bin desktop_proxy --release + popd + ''; + + postInstall = '' + mkdir -p $out/bin + cp -r apps/desktop/desktop_native/target/release/desktop_proxy $out/bin + mkdir -p $out/lib/mozilla/native-messaging-hosts + substituteAll ${./packages/bitwarden.json} $out/lib/mozilla/native-messaging-hosts/com.8bit.bitwarden.json + ''; + }); + final.bitwarden = bitwarden; + # zellij = prev.zellij.overrideAttrs rec { # version = "0.41.0"; # src = prev.fetchFromGitHub { diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index 493aada..64872a7 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -617,6 +617,10 @@ enable = true; extensions = [{package = pkgs.gnomeExtensions.gsconnect;}]; }; + + programs.firefox.package = pkgs.firefox.override { + nativeMessagingHosts = with pkgs; [bitwarden]; + }; }; helix = { diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index bb98c01..c6e0f8a 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -748,6 +748,7 @@ environment = { variables.GSK_RENDERER = "gl"; systemPackages = with pkgs; [ + bitwarden adwaita-icon-theme adwaita-icon-theme-legacy ]; diff --git a/packages/bitwarden.json b/packages/bitwarden.json new file mode 100644 index 0000000..a68720f --- /dev/null +++ b/packages/bitwarden.json @@ -0,0 +1,9 @@ +{ + "name": "com.8bit.bitwarden", + "description": "Bitwarden desktop <-> browser bridge", + "path": "@out@/bin/desktop_proxy", + "type": "stdio", + "allowed_extensions": [ + "{446900e4-71c2-419f-a6a7-df9c091e268b}" + ] +}