summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchange-wallpaper.fish2
-rwxr-xr-xmain.fish5
-rwxr-xr-xscreenshot.fish23
-rw-r--r--util.fish2
4 files changed, 31 insertions, 1 deletions
diff --git a/change-wallpaper.fish b/change-wallpaper.fish
index 000a4c4..0bde3f2 100755
--- a/change-wallpaper.fish
+++ b/change-wallpaper.fish
@@ -31,7 +31,7 @@ if set -q _flag_h
echo ' -F, --no-filter Do not filter by size'
echo ' -t, --threshold <threshold> The minimum percentage of the size the image must be greater than to be selected (default '$threshold')'
else
- set -q XDG_CACHE_HOME && set cache_dir $XDG_CACHE_HOME/caelestia/wallpaper || set cache_dir ~/.cache/caelestia/wallpaper
+ set cache_dir $CACHE/wallpaper
# The path to the last chosen wallpaper
set last_wallpaper_path "$cache_dir/last.txt"
diff --git a/main.fish b/main.fish
index 41fd6a3..9481407 100755
--- a/main.fish
+++ b/main.fish
@@ -18,6 +18,11 @@ if test "$argv[1]" = shell
exit
end
+if test "$argv[1]" = screenshot
+ ./screenshot.fish $argv[2..]
+ exit
+end
+
if test "$argv[1]" = workspace-action
./workspace-action.sh $argv[2..]
exit
diff --git a/screenshot.fish b/screenshot.fish
new file mode 100755
index 0000000..1798b3b
--- /dev/null
+++ b/screenshot.fish
@@ -0,0 +1,23 @@
+#!/bin/fish
+
+. (dirname (status filename))/util.fish
+
+mkdir -p "$CACHE/screenshots"
+set tmp_file "$CACHE/screenshots/$(date +'%Y%m%d%H%M%S')"
+grim $argv $tmp_file; and wl-copy < $tmp_file; or exit 1
+
+set action (notify-send -i 'image-x-generic-symbolic' -h "STRING:image-path:$tmp_file" \
+ -a (basename (status current-filename)) --action='open=Open' --action='save=Save' \
+ 'Screenshot taken' "Screenshot stored in $tmp_file and copied to clipboard")
+switch $action
+ case 'open'
+ uwsm app -- swappy -f $tmp_file & disown
+ case 'save'
+ set save_file (uwsm app -- zenity --file-selection --save --title='Save As')
+ [ -z $save_file ] && exit 0
+ if [ -f $save_file ]
+ uwsm app -- yad --image='abrt' --title='Warning!' --text-align='center' --buttons-layout='center' --borders=20 \
+ --text='<span size="x-large">Are you sure you want to overwrite this file?</span>' || exit 0
+ end
+ cp -f $tmp_file $save_file
+end
diff --git a/util.fish b/util.fish
index 4b5d981..b93ddc6 100644
--- a/util.fish
+++ b/util.fish
@@ -16,3 +16,5 @@ end
function error -a text
_out red ERROR $text $argv[2..]
end
+
+set -q XDG_CACHE_HOME && set CACHE $XDG_CACHE_HOME/caelestia || set CACHE $HOME/.cache/caelestia