diff --git a/home-manager/worklaptop/packages.nix b/home-manager/worklaptop/packages.nix index a0be845..bfa2816 100644 --- a/home-manager/worklaptop/packages.nix +++ b/home-manager/worklaptop/packages.nix @@ -7,23 +7,7 @@ unstablePkgs, ... }: let - # Patch vivaldi to ensure reliability on wayland - vivaldi-wayland = pkgs.symlinkJoin { - name = "vivaldi-wayland"; - paths = [pkgs.vivaldi]; - buildInputs = [pkgs.makeWrapper]; - postBuild = '' - wrapProgram $out/bin/vivaldi \ - --set NIXOS_OZONE_WL 1 \ - --add-flags "--ozone-platform=wayland --enable-features=UseOzonePlatform --ozone-platform-hint=auto" - ''; - }; - python = pkgs.python314.withPackages ( - python-pkgs: [ - python-pkgs.pkginfo - python-pkgs.setuptools - ] - ); + myPkgs = import ./packages/my_pkgs.nix {inherit pkgs;}; in { home.packages = [ pkgs.bitwarden-desktop @@ -64,13 +48,14 @@ in { unstablePkgs.podman-desktop unstablePkgs.podman-tui pkgs.popsicle - python + myPkgs.python + myPkgs.rbw-autofill unstablePkgs.ruff pkgs.smile pkgs.sshs unstablePkgs.uv pkgs.vial - vivaldi-wayland + myPkgs.vivaldi-wayland unstablePkgs.visidata pkgs.vivaldi-ffmpeg-codecs pkgs.warpinator diff --git a/home-manager/worklaptop/packages/my_pkgs.nix b/home-manager/worklaptop/packages/my_pkgs.nix new file mode 100644 index 0000000..17d3009 --- /dev/null +++ b/home-manager/worklaptop/packages/my_pkgs.nix @@ -0,0 +1,5 @@ +{pkgs}: { + python = pkgs.callPackage ./python.nix {}; + vivaldi-wayland = pkgs.callPackage ./vivaldi_wayland.nix {}; + rbw-autofill = pkgs.callPackage ./rbw_autofill.nix {}; +} diff --git a/home-manager/worklaptop/packages/python.nix b/home-manager/worklaptop/packages/python.nix new file mode 100644 index 0000000..67e4bad --- /dev/null +++ b/home-manager/worklaptop/packages/python.nix @@ -0,0 +1,7 @@ +{pkgs}: +pkgs.python314.withPackages ( + python-pkgs: [ + python-pkgs.pkginfo + python-pkgs.setuptools + ] +) diff --git a/home-manager/worklaptop/packages/rbw_autofill.nix b/home-manager/worklaptop/packages/rbw_autofill.nix new file mode 100644 index 0000000..0a4b931 --- /dev/null +++ b/home-manager/worklaptop/packages/rbw_autofill.nix @@ -0,0 +1,28 @@ +{pkgs}: +pkgs.writeShellApplication { + name = "rbw-autofill"; + runtimeInputs = [pkgs.bash pkgs.libsecret pkgs.zenity]; + + text = '' + #!/usr/bin/env bash + echo "OK" + while read -r line; do + if [[ "$line" == "GETPIN" ]]; then + pass=$(secret-tool lookup application rbw 2>/dev/null) + if [[ -z "$pass" ]]; then + pass=$(zenity --password --title="rbw Setup" --text="Enter Bitwarden Master Password to save to Keyring:") + if [[ -n "$pass" ]]; then + printf "%s" "$pass" | secret-tool store --label="rbw" application rbw + else + echo "ERR 100 Password retrieval cancelled" + exit 1 + fi + fi + printf "D %s\n" "$pass" + echo "OK" + exit 0 + fi + echo "OK" + done + ''; +} diff --git a/home-manager/worklaptop/packages/vivaldi_wayland.nix b/home-manager/worklaptop/packages/vivaldi_wayland.nix new file mode 100644 index 0000000..b1805f3 --- /dev/null +++ b/home-manager/worklaptop/packages/vivaldi_wayland.nix @@ -0,0 +1,11 @@ +{pkgs}: +pkgs.symlinkJoin { + name = "vivaldi-wayland"; + paths = [pkgs.vivaldi]; + buildInputs = [pkgs.makeWrapper]; + postBuild = '' + wrapProgram $out/bin/vivaldi \ + --set NIXOS_OZONE_WL 1 \ + --add-flags "--ozone-platform=wayland --enable-features=UseOzonePlatform --ozone-platform-hint=auto" + ''; +}