From edbf1d67365f470cb2e186e851cf3ed5afb85b2e Mon Sep 17 00:00:00 2001 From: Ivan Dimitrov Date: Tue, 23 Apr 2024 21:13:48 +0300 Subject: [PATCH] screenshot area freeze screen --- bin/screenshot | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/bin/screenshot b/bin/screenshot index 77888bf..91644c9 100755 --- a/bin/screenshot +++ b/bin/screenshot @@ -1,25 +1,30 @@ -#!/usr/bin/env bash +#!/usr/bin/env nu -ss_dir="$(xdg-user-dir PICTURES)/ss" -pic_dir="$ss_dir/$(date +%s).png" +let tmp_img = "/tmp/screen.png" | path join +let ss_dir = ((xdg-user-dir PICTURES | str trim) | path join "ss") +let pic_dir = ($ss_dir | path join ((date now | format date) | str join ".png")) -mkdir -p "$ss_dir" +mkdir $ss_dir -copy_image() { - wl-copy < "$pic_dir" +def copy_image [] { + open $pic_dir | wl-copy } -capture_area() { - grim -g "$(slurp)" "$pic_dir" && copy_image +def prepare_screen [] { + let grim_id = pueue add -i -p grim $tmp_img + let imv_id = pueue add -a $grim_id -p imv -f $tmp_img + grim -g $"(slurp)" $pic_dir + pueue kill $imv_id $grim_id + pueue wait + pueue remove $imv_id $grim_id } -capture_screen() { - grim "$pic_dir" && copy_image +def "main area" [] { + prepare_screen + copy_image } -if [[ "$1" = "area" ]]; then - capture_area -else - capture_screen -fi - +def main [] { + grim $pic_dir + copy_image +}