bitwarden #43
5 changed files with 66 additions and 5 deletions
46
modules/home/hyprland/applications/bitwarden/default.nix
Normal file
46
modules/home/hyprland/applications/bitwarden/default.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
inputs,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.wayland.windowManager.hyprland;
|
||||
app = cfg.applications.password-manager.default;
|
||||
|
||||
inherit (lib) mkDefault mkIf;
|
||||
in
|
||||
{
|
||||
imports = [ ../../../rofi-rbw ];
|
||||
|
||||
config = mkIf (cfg.enable && app == "rofi-rbw") {
|
||||
programs.rbw = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# email = "you@example.tld"; # You have to set this in your config
|
||||
pinentry = mkDefault pkgs.pinentry-gnome3;
|
||||
lock_timeout = mkDefault 3600;
|
||||
};
|
||||
};
|
||||
|
||||
programs.rofi-rbw = {
|
||||
enable = true;
|
||||
package = mkDefault pkgs.rofi-rbw-wayland;
|
||||
settings = {
|
||||
selector = mkDefault "bemenu";
|
||||
selector-args = mkDefault "-i -l 20";
|
||||
action = mkDefault "copy";
|
||||
typing-key-delay = mkDefault 0;
|
||||
};
|
||||
};
|
||||
|
||||
programs.librewolf = mkIf config.programs.librewolf.enable {
|
||||
profiles.default.extensions.packages =
|
||||
with inputs.nur.legacyPackages."${pkgs.stdenv.hostPlatform.system}".repos.rycee.firefox-addons; [
|
||||
bitwarden
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -56,6 +56,7 @@ let
|
|||
in
|
||||
{
|
||||
imports = [
|
||||
./bitwarden
|
||||
./bemenu
|
||||
./dmenu-bluetooth
|
||||
./dunst-toggle
|
||||
|
|
|
|||
|
|
@ -43,13 +43,20 @@ def process_csv(input_file, output_file):
|
|||
if col not in new_row:
|
||||
new_row[col] = default_val
|
||||
|
||||
folder = new_row.get('folder', '')
|
||||
name = new_row.get('name', '')
|
||||
if folder.startswith('www') and name:
|
||||
if not name.startswith('http://') and not name.startswith('https://'):
|
||||
new_row['login_uri'] = f'https://{name}'
|
||||
else:
|
||||
new_row['login_uri'] = name
|
||||
|
||||
if new_row['notes']:
|
||||
new_row['notes'] = new_row['notes'].replace('\n', ' ').replace('\r', ' ')
|
||||
new_row['notes'] = re.sub(r'\s+', ' ', new_row['notes']).strip()
|
||||
|
||||
notes = new_row['notes']
|
||||
if notes:
|
||||
# Look for pattern: "login: USERNAME"
|
||||
match = re.search(r'login:\s*(\S+)', notes, re.IGNORECASE)
|
||||
if match:
|
||||
username = match.group(1)
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
stdenv,
|
||||
lib,
|
||||
makeWrapper,
|
||||
pass,
|
||||
pass2csv,
|
||||
python3,
|
||||
...
|
||||
}:
|
||||
|
|
@ -20,13 +22,18 @@ stdenv.mkDerivation rec {
|
|||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
sed -e "s|python ./convert_csvs.py|python $out/bin/convert_csvs.py|" \
|
||||
${src}/${pname}.sh > $out/bin/${pname}
|
||||
cp ${src}/pass2bw.sh $out/bin/${pname}
|
||||
chmod +x $out/bin/${pname}
|
||||
|
||||
cp ${src}/convert_csvs.py $out/bin/
|
||||
|
||||
wrapProgram $out/bin/${pname} \
|
||||
--prefix PATH : ${lib.makeBinPath [ python3 ]}
|
||||
--prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
pass
|
||||
pass2csv
|
||||
python3
|
||||
]
|
||||
}
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ if [ "$#" -ne 2 ]; then
|
|||
fi
|
||||
|
||||
pass2csv "$1" /tmp/pass.csv
|
||||
python ./convert_csvs.py /tmp/pass.csv "$2"
|
||||
python3 "$(dirname "$0")/convert_csvs.py" /tmp/pass.csv "$2"
|
||||
rm /tmp/pass.csv
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue