Add Rocknix screenshot app

This commit is contained in:
rocknix
2025-07-26 12:45:35 +00:00
parent 77d6c44b34
commit cea082b024
4 changed files with 65 additions and 1 deletions

View File

@@ -0,0 +1,21 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2025 ROCKNIX (https://github.com/ROCKNIX)
PKG_NAME="rocknix-screenshot"
PKG_VERSION="1.0"
PKG_LICENSE="GPLv2"
PKG_SITE=""
PKG_URL=""
PKG_DEPENDS_TARGET="toolchain grim jq sway"
PKG_LONGDESC="ROCNIX screenshot utility"
PKG_TOOLCHAIN="manual"
make_target() {
:
}
makeinstall_target() {
mkdir -p ${INSTALL}/usr/bin
cp -rf ${PKG_DIR}/sources/rocknix-screenshot ${INSTALL}/usr/bin
chmod +x ${INSTALL}/usr/bin/rocknix-screenshot
}

View File

@@ -0,0 +1,35 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2025-present ROCKNIX (https://github.com/ROCKNIX)
. /etc/profile
# Disable rocknix-screenshot while retroarch is running
if pgrep -f "retroarch" > /dev/null; then
echo "RetroArch is running, skipping screenshot."
exit 1
fi
# Folder to save screenshots
SAVE_DIR="/storage/roms/screenshots"
# Create the folder if it doesn't exist
mkdir -p "$SAVE_DIR"
# Generate a timestamped filename
FILENAME="$(date +'%Y-%m-%d-%H%M%S').png"
FULL_PATH="${SAVE_DIR}/${FILENAME}"
# Get focused window geometry
GEOMETRY=$(swaymsg -t get_tree | jq -r '
..
| select(.type? == "con" and .focused == true)
| "\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)"'
)
# Take screenshot of the focused window
grim -g "$GEOMETRY" "$FULL_PATH"
echo "Screenshot saved to $FULL_PATH"

View File

@@ -67,6 +67,8 @@ FUNCTION_HOTKEY_A_EVENT='*('${BTN_HOTKEY_A_MODIFIER}'), value *'
FUNCTION_HOTKEY_B_EVENT='*('${BTN_HOTKEY_B_MODIFIER}'), value *'
FUNCTION_HOTKEY_C_EVENT='*('${BTN_HOTKEY_C_MODIFIER}'), value *'
FUNCTION_HOTKEY_BTN_EAST_EVENT="*(BTN_EAST), value 1*"
FUNCTION_HOTKEY_TOUCH_EVENT="*(BTN_TOUCH), value 1*"
TOUCHSCREEN_EVENTS=$(get_setting key.touchscreen.events)
@@ -367,5 +369,11 @@ set +e
kill -34 $(pidof wvkbd-mobintl)
fi
;;
(${FUNCTION_HOTKEY_BTN_EAST_EVENT})
if [ "${FN_A_PRESSED}" = true ]; then
${DEBUG} && log $0 "${FUNCTION_HOTKEY_BTN_EAST_EVENT}: Screenshot Taken"
/usr/bin/rocknix-screenshot
fi
;;
esac
done

View File

@@ -11,5 +11,5 @@ PKG_LONGDESC="swaywm-env: Sway window manager environment"
if [ ! "${BASE_ONLY}" = "true" ]
then
PKG_DEPENDS_TARGET+=" sway wlr-randr swayimg"
PKG_DEPENDS_TARGET+=" sway wlr-randr swayimg rocknix-screenshot"
fi