new yazi config

This commit is contained in:
liph22
2026-01-07 13:07:20 +01:00
parent 8f8400e9d6
commit ee2b1cb5ce
99 changed files with 8516 additions and 4982 deletions

109
scripts/scripts/bw-fzf.sh Executable file
View File

@@ -0,0 +1,109 @@
#!/bin/bash
if [ -z "$BW_SESSION" ]; then
export BW_SESSION=$(bw unlock --raw)
fi
items=$(bw list items)
# Select item with preview showing full details
selected=$(echo "$items" | jq -r '.[] | "\(.name)\t\(.login.username // "no username")"' | \
column -t -s $'\t' | \
fzf --preview 'name=$(echo {} | awk "{print \$1}"); bw get item "$name" 2>/dev/null | jq -r "
\"Name: \" + .name,
\"Type: \" + (.type | tostring),
\"---\",
(if .login then
\"Username: \" + (.login.username // \"none\"),
\"Password: \" + (if .login.password then \"********\" else \"none\" end),
(if .login.uris then \"URIs:\", (.login.uris[] | \" - \" + .uri) else empty end),
(if .login.totp then \"TOTP: configured\" else empty end)
else empty end),
(if .notes then \"---\", \"Notes:\", .notes else empty end),
(if .fields then \"---\", \"Custom Fields:\", (.fields[] | \" \" + .name + \": \" + (if .type == 1 then \"********\" else (.value // \"empty\") end)) else empty end)
" | cat' --preview-window=right:60%:wrap)
if [ -n "$selected" ]; then
name=$(echo "$selected" | awk '{print $1}')
# Get full item details
item=$(bw get item "$name" 2>/dev/null)
if [ -z "$item" ]; then
notify-send "Bitwarden" "Failed to get item for $name"
exit 1
fi
# Build a list of available fields
fields=()
if echo "$item" | jq -e '.login.password' &>/dev/null; then
fields+=("Password")
fi
if echo "$item" | jq -e '.login.username' &>/dev/null; then
fields+=("Username")
fi
if echo "$item" | jq -e '.login.uris[]' &>/dev/null; then
fields+=("URI")
fi
if echo "$item" | jq -e '.login.totp' &>/dev/null; then
fields+=("TOTP Code")
fi
if echo "$item" | jq -e '.notes' &>/dev/null; then
notes=$(echo "$item" | jq -r '.notes')
if [ -n "$notes" ] && [ "$notes" != "null" ]; then
fields+=("Notes")
fi
fi
if echo "$item" | jq -e '.fields[]' &>/dev/null; then
while IFS= read -r field_name; do
fields+=("Custom: $field_name")
done < <(echo "$item" | jq -r '.fields[] | .name')
fi
fields+=("View All (JSON)")
# Let user choose what to copy
choice=$(printf '%s\n' "${fields[@]}" | fzf --prompt="What to copy? ")
if [ -n "$choice" ]; then
case "$choice" in
"Password")
echo "$item" | jq -r '.login.password' | wl-copy
notify-send "Bitwarden" "Password copied for $name"
;;
"Username")
echo "$item" | jq -r '.login.username' | wl-copy
notify-send "Bitwarden" "Username copied for $name"
;;
"URI")
echo "$item" | jq -r '.login.uris[0].uri' | wl-copy
notify-send "Bitwarden" "URI copied for $name"
;;
"TOTP Code")
totp=$(bw get totp "$name" 2>/dev/null)
echo -n "$totp" | wl-copy
notify-send "Bitwarden" "TOTP code copied for $name"
;;
"Notes")
echo "$item" | jq -r '.notes' | wl-copy
notify-send "Bitwarden" "Notes copied for $name"
;;
Custom:*)
field_name="${choice#Custom: }"
value=$(echo "$item" | jq -r --arg name "$field_name" '.fields[] | select(.name == $name) | .value')
echo -n "$value" | wl-copy
notify-send "Bitwarden" "Custom field '$field_name' copied"
;;
"View All (JSON)")
echo "$item" | jq '.' | wl-copy
notify-send "Bitwarden" "Full item JSON copied for $name"
;;
esac
fi
fi

View File

@@ -0,0 +1,19 @@
#!/bin/bash
echo "=== Syncing all mailboxes ==="
# 1. Sync emails bidirectionally (includes deletions)
mbsync -a
# 2. Index each account separately (runs post-new hook)
for account in phil spam; do
echo "Indexing $account..."
NOTMUCH_CONFIG=~/Mail/$account/.notmuch-config notmuch new
done
# 3. Optional: Sync back any tag changes to IMAP flags
for account in phil spam; do
NOTMUCH_CONFIG=~/Mail/$account/.notmuch-config notmuch tag --batch < /dev/null
done
echo "=== Sync complete ==="