fix: clipboard
This commit is contained in:
parent
85edca4800
commit
ca47b50f25
1 changed files with 62 additions and 6 deletions
|
|
@ -7,20 +7,66 @@
|
||||||
}: {
|
}: {
|
||||||
config = lib.mkIf nixosVista.enable {
|
config = lib.mkIf nixosVista.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
wezterm
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
cliphist
|
cliphist
|
||||||
fzf
|
fzf
|
||||||
|
file
|
||||||
|
bat
|
||||||
|
timg
|
||||||
wofi
|
wofi
|
||||||
|
imagemagick # <-- required for identify
|
||||||
];
|
];
|
||||||
|
|
||||||
home.file.".local/bin/TermClipboardManager" = {
|
home.file.".local/bin/TermClipboardManager" = {
|
||||||
executable = true;
|
executable = true;
|
||||||
text = ''
|
text = ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
cliphist list | \
|
set -euo pipefail
|
||||||
fzf --preview 'cliphist decode {1} | chafa -' \
|
|
||||||
--preview-window=right:60%:wrap | \
|
preview() {
|
||||||
cliphist decode | wl-copy
|
TMP=$(mktemp)
|
||||||
|
cliphist decode "$1" > "$TMP" 2>/dev/null || {
|
||||||
|
echo "Failed to decode"
|
||||||
|
rm -f "$TMP"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
MIME=$(file --mime-type -b "$TMP")
|
||||||
|
|
||||||
|
if [[ "$MIME" == image/* ]]; then
|
||||||
|
DIM=$(identify -format "%wx%h" "$TMP" 2>/dev/null || echo "unknown")
|
||||||
|
echo "Image • $MIME • $DIM"
|
||||||
|
echo "----------------------------------------"
|
||||||
|
timg --quiet --center --fit "$TMP"
|
||||||
|
else
|
||||||
|
echo "Text • $MIME"
|
||||||
|
echo "----------------------------------------"
|
||||||
|
bat --style=plain --color=always "$TMP" 2>/dev/null || cat "$TMP"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f "$TMP"
|
||||||
|
}
|
||||||
|
|
||||||
|
export -f preview
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
SELECTION=$(
|
||||||
|
cliphist list | \
|
||||||
|
fzf \
|
||||||
|
--height=100% \
|
||||||
|
--border \
|
||||||
|
--preview 'bash -c "preview {}"' \
|
||||||
|
--preview-window=right:60% \
|
||||||
|
--bind 'del:execute-silent(cliphist delete {} )+reload(cliphist list)' \
|
||||||
|
--bind 'ctrl-d:execute-silent(cliphist wipe)+reload(cliphist list)'
|
||||||
|
)
|
||||||
|
|
||||||
|
[[ -z "$SELECTION" ]] && exit 0
|
||||||
|
|
||||||
|
cliphist decode <<< "$SELECTION" | wl-copy
|
||||||
|
exit 0
|
||||||
|
done
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -48,15 +94,25 @@
|
||||||
#exec-once = wl-paste --type image --watch cliphist store
|
#exec-once = wl-paste --type image --watch cliphist store
|
||||||
bind = $mainMod, V, exec, cliphist list | wofi --dmenu --prompt "Clipboard" | cliphist decode | wl-copy
|
bind = $mainMod, V, exec, cliphist list | wofi --dmenu --prompt "Clipboard" | cliphist decode | wl-copy
|
||||||
|
|
||||||
bind = $mainMod SHIFT, V, exec, alacritty --class TermClipboardManager -e TermClipboardManager
|
#bind = $mainMod SHIFT, V, exec, alacritty --class TermClipboardManager -e ~/.local/bin/TermClipboardManager
|
||||||
|
bind = $mainMod SHIFT, V, exec, wezterm start --class TermClipboardManager -- ~/.local/bin/TermClipboardManager
|
||||||
# TermClipboardManager
|
# TermClipboardManager
|
||||||
|
|
||||||
|
# windowrule = float 1, match:class ^(TermClipboardManager)$
|
||||||
|
# windowrule = size 1000 600, match:class ^(TermClipboardManager)$
|
||||||
|
# windowrule = center 1, match:class ^(TermClipboardManager)$
|
||||||
|
# windowrule = animation popin, match:class ^(TermClipboardManager)$
|
||||||
|
# windowrule = rounding 20, match:class ^(TermClipboardManager)$
|
||||||
|
# TermClipboardManager
|
||||||
windowrule = float 1, match:class ^(TermClipboardManager)$
|
windowrule = float 1, match:class ^(TermClipboardManager)$
|
||||||
windowrule = size 1000 600, match:class ^(TermClipboardManager)$
|
windowrule = size 1000 600, match:class ^(TermClipboardManager)$
|
||||||
windowrule = center 1, match:class ^(TermClipboardManager)$
|
windowrule = center 1, match:class ^(TermClipboardManager)$
|
||||||
windowrule = animation popin, match:class ^(TermClipboardManager)$
|
windowrule = animation popin, match:class ^(TermClipboardManager)$
|
||||||
windowrule = rounding 20, match:class ^(TermClipboardManager)$
|
windowrule = rounding 20, match:class ^(TermClipboardManager)$
|
||||||
|
windowrule = noborder 1, match:class ^(TermClipboardManager)$
|
||||||
|
windowrule = blur, match:class ^(TermClipboardManager)$
|
||||||
|
windowrule = opaque 0.95, match:class ^(TermClipboardManager)$
|
||||||
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue