feat: screenshot tool
This commit is contained in:
parent
b93f9148bd
commit
9af67d741c
5 changed files with 30 additions and 39 deletions
|
@ -53,10 +53,13 @@ The following packages are required for the proper functioning of Hyprland on Vo
|
|||
<summary><strong>User Interface Components</strong></summary>
|
||||
|
||||
- waybar
|
||||
- grim
|
||||
- swaybg
|
||||
- swaylock or [swaylock-effects](https://github.com/mortie/swaylock-effects) : lock screen with effects
|
||||
- swaylock or [swaylock-effects](https://github.com/mortie/swaylock-effects)
|
||||
- grim
|
||||
- slurp
|
||||
- jq
|
||||
- wl-clipboard
|
||||
- libnotify
|
||||
- dunst
|
||||
- swayidle
|
||||
- swappy
|
||||
|
|
|
@ -21,6 +21,10 @@ bind = $mainMod ALT, right, movewindow, r
|
|||
bind = $mainMod ALT, up, movewindow, u
|
||||
bind = $mainMod ALT, down, movewindow, d
|
||||
|
||||
# Screenshot
|
||||
bind = $mainMod, PRINT, exec, $screenshot -m window
|
||||
bind = , PRINT, exec, $screenshot -m output
|
||||
|
||||
# Audio control
|
||||
bind=,XF86AudioRaiseVolume,exec, $volume_control u
|
||||
bind=,XF86AudioLowerVolume,exec, $volume_control d
|
||||
|
|
|
@ -16,6 +16,7 @@ $scr_path = ~/.config/hypr/scripts
|
|||
$mainMod = SUPER
|
||||
$terminal = alacritty
|
||||
$fileManager = dolphin
|
||||
$screenshot = $scr_path/hyprshot.sh
|
||||
$waybar_toggle = $scr_path/waybar-toggle.sh
|
||||
$volume_control = $scr_path/volume-control.sh
|
||||
$rofi_menu = $scr_path/rofi-launch.sh d
|
||||
|
|
|
@ -53,9 +53,8 @@ function send_notification() {
|
|||
fi
|
||||
|
||||
local message=$([ $CLIPBOARD -eq 1 ] &&
|
||||
echo "Image copied to the clipboard" ||
|
||||
echo "Image saved in <i>${1}</i> and copied to the clipboard.")
|
||||
notify-send "Screenshot saved" \
|
||||
echo "Image copied to the clipboard")
|
||||
dunstify "Screenshot Saved." \
|
||||
"${message}" \
|
||||
-t "$NOTIF_TIMEOUT" -i "${1}" -a Hyprshot
|
||||
}
|
||||
|
@ -119,6 +118,7 @@ function save_geometry() {
|
|||
}
|
||||
else
|
||||
wl-copy < <(grim -g "${cropped_geometry}" -)
|
||||
echo ""
|
||||
fi
|
||||
|
||||
send_notification $output
|
||||
|
@ -271,8 +271,15 @@ DEBUG=0
|
|||
SILENT=0
|
||||
RAW=0
|
||||
NOTIF_TIMEOUT=5000
|
||||
CURRENT=0
|
||||
[ -z "$XDG_PICTURES_DIR" ] && type xdg-user-dir &>/dev/null && XDG_PICTURES_DIR=$(xdg-user-dir PICTURES)
|
||||
CURRENT=1
|
||||
HYPRSHOT_DIR="$HOME/Screenshots"
|
||||
|
||||
if [[ ! -d "$HYPRSHOT_DIR" ]]; then
|
||||
mkdir -p "$HYPRSHOT_DIR"
|
||||
fi
|
||||
|
||||
# [ -z "$XDG_PICTURES_DIR" ] && type xdg-user-dir &>/dev/null && XDG_PICTURES_DIR=$(xdg-user-dir PICTURES)
|
||||
|
||||
FILENAME="$(date +'%Y-%m-%d-%H%M%S_hyprshot.png')"
|
||||
[ -z "$HYPRSHOT_DIR" ] && SAVEDIR=${XDG_PICTURES_DIR:=~} || SAVEDIR=${HYPRSHOT_DIR}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
# Import Current Theme
|
||||
source "$HOME"/.config/rofi/applets/shared/theme.bash
|
||||
theme="$type/$style"
|
||||
hyprshot="$HOME/.config/hypr/scripts/hyprshot.sh"
|
||||
|
||||
# Theme Elements
|
||||
prompt='Screenshot'
|
||||
|
@ -64,28 +65,6 @@ run_rofi() {
|
|||
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd
|
||||
}
|
||||
|
||||
# Screenshot
|
||||
time=$(date +%Y-%m-%d-%H-%M-%S)
|
||||
geometry=$(xrandr | grep 'current' | head -n1 | cut -d',' -f2 | tr -d '[:blank:],current')
|
||||
dir="$HOME/Screenshots"
|
||||
file="Screenshot_${time}_${geometry}.png"
|
||||
|
||||
if [[ ! -d "$dir" ]]; then
|
||||
mkdir -p "$dir"
|
||||
fi
|
||||
|
||||
# notify and view screenshot
|
||||
notify_view() {
|
||||
notify_cmd_shot='dunstify -u low --replace=699'
|
||||
${notify_cmd_shot} "Copied to clipboard."
|
||||
viewnior ${dir}/"$file"
|
||||
if [[ -e "$dir/$file" ]]; then
|
||||
${notify_cmd_shot} "Screenshot Saved."
|
||||
else
|
||||
${notify_cmd_shot} "Screenshot Deleted."
|
||||
fi
|
||||
}
|
||||
|
||||
# Copy screenshot to clipboard
|
||||
copy_shot() {
|
||||
tee "$file" | xclip -selection clipboard -t image/png
|
||||
|
@ -101,30 +80,27 @@ countdown() {
|
|||
|
||||
# take shots
|
||||
shotnow() {
|
||||
cd ${dir} && sleep 0.5 && maim -u -f png | copy_shot
|
||||
notify_view
|
||||
sleep 1
|
||||
$hyprshot -im output
|
||||
}
|
||||
|
||||
shot5() {
|
||||
countdown '5'
|
||||
sleep 1 && cd ${dir} && maim -u -f png | copy_shot
|
||||
notify_view
|
||||
$hyprshot -m output
|
||||
}
|
||||
|
||||
shot10() {
|
||||
countdown '10'
|
||||
sleep 1 && cd ${dir} && maim -u -f png | copy_shot
|
||||
notify_view
|
||||
$hyprshot -m output
|
||||
}
|
||||
|
||||
shotwin() {
|
||||
cd ${dir} && maim -u -f png -i $(xdotool getactivewindow) | copy_shot
|
||||
notify_view
|
||||
sleep 1
|
||||
$hyprshot -m window
|
||||
}
|
||||
|
||||
shotarea() {
|
||||
cd ${dir} && maim -u -f png -s -b 2 -c 0.35,0.55,0.85,0.25 -l | copy_shot
|
||||
notify_view
|
||||
$hyprshot -m region
|
||||
}
|
||||
|
||||
# Execute Command
|
||||
|
|
Loading…
Add table
Reference in a new issue