From 73d507f453fa3273a2c07c18fa397e8e02bef3a3 Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 19 Jun 2024 22:32:27 +0100 Subject: [PATCH] update clipboard-image-recall screen size function --- home/common/optional/desktop/dwm/default.nix | 2 ++ .../desktop/dwm/scripts/clipboard-recall.nix | 16 ++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/home/common/optional/desktop/dwm/default.nix b/home/common/optional/desktop/dwm/default.nix index 768ed35..6b9cfc1 100644 --- a/home/common/optional/desktop/dwm/default.nix +++ b/home/common/optional/desktop/dwm/default.nix @@ -24,6 +24,7 @@ ./scripts/emoji-picker.nix ./scripts/clipboard-save.nix ./scripts/clipboard-recall.nix + ./scripts/get-focused-monitor.nix ]; home.packages = [ @@ -32,5 +33,6 @@ pkgs.dunst pkgs.picom pkgs.sxhkd + pkgs.nsxiv ]; } diff --git a/home/common/optional/desktop/dwm/scripts/clipboard-recall.nix b/home/common/optional/desktop/dwm/scripts/clipboard-recall.nix index 29d5bbc..a19e923 100644 --- a/home/common/optional/desktop/dwm/scripts/clipboard-recall.nix +++ b/home/common/optional/desktop/dwm/scripts/clipboard-recall.nix @@ -52,18 +52,22 @@ (writeShellScriptBin "clipboard-image-recall" '' # Script to view and select and output images in image clipboard dir to clipboard. - #!/bin/bash - width=$(${xorg.xwininfo}/bin/xwininfo -root | grep Width | sed "s/^.*:\s//") - height=$(${xorg.xwininfo}/bin/xwininfo -root | grep Height | sed "s/^.*:\s//") - + monitor_name=$(get-focused-monitor) + monitor_info=$(xrandr | grep "$monitor_name") + + width=$(echo $monitor_info | grep -oP '\d+x\d+' | cut -dx -f1) + height=$(echo $monitor_info | grep -oP '\d+x\d+' | cut -dx -f2) + scale_width=$(( $width/4 + $width/2 )) scale_height=$(( $height/4 + $height/2 )) - if [ "$1" == "" ]; then - echo "Please provide directory" + if [ "$1" == "" ] || [ -f "$1" ]; then + notify-send -t 1000 "Clipboard Recall" "Directory not specified or missing." exit 1 fi + filesdir="$(find $1 -type f -printf '%T@ %p\n' | sort -rn | cut -d ' ' -f 2-)" + [ "$filesdir" == "" ] && notify-send -t 1000 "Clipboard Recall" "No images in directory" && exit 1 output="$(echo "$filesdir" | ${nsxiv}/bin/nsxiv -tioq -g "$scale_width"x"$scale_height" -N nsxiv-float )" num_lines=$( echo "$output" | wc -l)