swaydots

my dotfiles
git clone https://git.awy.one/swaydots.git
Log | Files | Refs | README | LICENSE

commit b73871a0493aca46c6f56c0704aa92c37929eb30
parent 48514faa0b5394a2ab616af784a34094695c07fd
Author: awy <awy@awy.one>
Date:   Tue, 17 Jun 2025 20:02:05 +0300

swayimg

Diffstat:
A.config/swayimg/config | 16++++++++++++++++
A.config/swayimg/key-handler | 35+++++++++++++++++++++++++++++++++++
M.config/yazi/yazi.toml | 2+-
M.local/bin/dmenuhandler | 4++--
M.local/bin/linkhandler | 4++--
M.local/share/applications/img.desktop | 2+-
Mdependencies.txt | 2+-
7 files changed, 58 insertions(+), 7 deletions(-)

diff --git a/.config/swayimg/config b/.config/swayimg/config @@ -0,0 +1,16 @@ +[general] +compositor = no +[viewer] +window = #000000 +scale = fit +[gallery] +window = #000000 +[keys.viewer] +h = step_left +j = step_down +k = step_up +l = step_right +n = next_file +p = prev_file +w = zoom fit +Ctrl+x = exec ~/.config/swayimg/key-handler "%" diff --git a/.config/swayimg/key-handler b/.config/swayimg/key-handler @@ -0,0 +1,35 @@ +#!/bin/sh +file=$1 + [ -z "$selection" ] && selection=$(printf "w - Set as wallpaper\nc - Copy to dir\nm - Move to dir\nr - Rotate 90°\nR - Rotate -90°\nf - Flip horizontal\ny - Copy filename to clipboard\nY - Copy full path to clipboard\nd - Delete\ng - Open in GIMP\ni - Show media info" | + wmenu -i -l 12 -p "Choose action for selected files:") + action=$(printf "%s" "$selection" | cut -d'-' -f1 | tr -d ' ') + case "$action" in + "w") setbg "$file" & ;; + "c") + [ -z "$destdir" ] && destdir="$(sed "s/#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | wmenu -l 20 -i -p "Copy file(s) to where?" | sed "s|~|$HOME|g")" + [ ! -d "$destdir" ] && notify-send "$destdir is not a directory, cancelled." && exit + cp "$file" "$destdir" && notify-send -i "$(readlink -f "$file")" "$file copied to $destdir." & + ;; + "m") + [ -z "$destdir" ] && destdir="$(sed "s/#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | wmenu -l 20 -i -p "Move file(s) to where?" | sed "s|~|$HOME|g")" + [ ! -d "$destdir" ] && notify-send "$destdir is not a directory, cancelled." && exit + mv "$file" "$destdir" && notify-send -i "$(readlink -f "$file")" "$file moved to $destdir." & + ;; + "r") + magick "$file" -rotate 90 "$file" ;; + "R") + magick "$file" -rotate -90 "$file" ;; + "f") + magick "$file" -flop "$file" ;; + "y") + printf "%s" "$file" | tr -d '\n' | wl-copy && + notify-send "$file copied to clipboard" & ;; + "Y") + readlink -f "$file" | tr -d '\n' | wl-copy && + notify-send "$(readlink -f "$file") copied to clipboard" & ;; + "d") + [ "$(printf "No\\nYes" | wmenu -i -p "Really delete $file?")" = "Yes" ] && rm "$file" && notify-send "$file deleted." ;; + "g") ifinstalled gimp && setsid -f gimp "$file" ;; + "i") notify-send "File information" "$(mediainfo "$file" | sed "s/[ ]\+:/:/g;s/: /: <b>/;s/$/<\/b>/" | grep "<b>")" ;; + *) notify-send "No keybind for that key" ;; + esac diff --git a/.config/yazi/yazi.toml b/.config/yazi/yazi.toml @@ -3,7 +3,7 @@ show_hidden = true [opener] rotdir = [ - { run = 'rotdir "$0" | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|avif\|tif\|ico\)\(_large\)*$" | setsid -f imv -l 2>/dev/null', desc = "Open" }, + { run = 'rotdir "$0" | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|avif\|tif\|ico\)\(_large\)*$" | setsid -f swayimg 2>/dev/null', desc = "Open" }, ] [open] diff --git a/.local/bin/dmenuhandler b/.local/bin/dmenuhandler @@ -4,7 +4,7 @@ # some choice programs to use to open it. feed="${1:-$(true | wmenu -p 'Paste URL or file path')}" -case "$(printf "copy url\\nimv\\nsetbg\\nPDF\\nbrowser\\nlynx\\nvim\\nmpv\\nmpv loop\\nmpv float\\nqueue download\\nqueue yt-dlp\\nqueue yt-dlp audio" | wmenu -i -p "Open it with?")" in +case "$(printf "copy url\\nswayimg\\nsetbg\\nPDF\\nbrowser\\nlynx\\nvim\\nmpv\\nmpv loop\\nmpv float\\nqueue download\\nqueue yt-dlp\\nqueue yt-dlp audio" | wmenu -i -p "Open it with?")" in "copy url") echo "$feed" | wl-copy ;; mpv) setsid -f mpv -quiet "$feed" >/dev/null 2>&1 ;; "mpv loop") setsid -f mpv -quiet --loop "$feed" >/dev/null 2>&1 ;; @@ -13,7 +13,7 @@ case "$(printf "copy url\\nimv\\nsetbg\\nPDF\\nbrowser\\nlynx\\nvim\\nmpv\\nmpv "queue yt-dlp audio") qndl "$feed" 'yt-dlp -o "%(title)s.%(ext)s" -f bestaudio --embed-metadata --restrict-filenames' ;; "queue download") qndl "$feed" 'curl -LO' >/dev/null 2>&1 ;; PDF) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && zathura "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; - imv) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && imv "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; + swayimg) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && swayimg "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; vim) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && setsid -f "$TERMINAL" -e "$EDITOR" "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; setbg) curl -L "$feed" > $XDG_CACHE_HOME/pic ; swaybg -i $XDG_CACHE_HOME/pic -m fill & >/dev/null 2>&1 ;; browser) setsid -f "$BROWSER" "$feed" >/dev/null 2>&1 ;; diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler @@ -1,7 +1,7 @@ #!/bin/sh # Feed script a url or file location. -# If an image, it will view in imv, +# If an image, it will view in swayimg, # if a video or gif, it will view in mpv # if a music file or pdf, it will download, # otherwise it opens link in browser. @@ -22,7 +22,7 @@ case "$url" in *mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtube.com/v/*|*youtube.com/shorts*|*youtu.be*|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*) setsid -f mpv -quiet "$url" >/dev/null 2>&1 ;; *png|*jpg|*jpe|*jpeg|*gif|*webp) - curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && imv "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; + curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && swayimg "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; *pdf|*cbz|*cbr) curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && zathura "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; *mp3|*flac|*opus|*mp3?source*) diff --git a/.local/share/applications/img.desktop b/.local/share/applications/img.desktop @@ -1,4 +1,4 @@ [Desktop Entry] Type=Application Name=Image viewer -Exec=/usr/bin/imv %f +Exec=/usr/bin/swayimg %f diff --git a/dependencies.txt b/dependencies.txt @@ -45,7 +45,7 @@ mpv yt-dlp unzip dunst -imv +swayimg newsboat mpd mpc