aboutsummaryrefslogtreecommitdiffstats
path: root/modules/scripts/screen-recording/script.sh
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-26 00:13:26 +0530
committerArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-26 00:13:26 +0530
commit2f64a2097812c1820766909037e724f3415c7576 (patch)
tree8dd91e2d68df1530e3db00db82be91135c672e36 /modules/scripts/screen-recording/script.sh
parent550cadaf45165ccbc3dbe050a45d0d041c2c221d (diff)
downloadhome-manager-config-2f64a2097812c1820766909037e724f3415c7576.tar.gz
home-manager-config-2f64a2097812c1820766909037e724f3415c7576.zip
feat: migrate to Wayland-native media tools, drop X11 cruft, polish waybar and hyprland
- Switch ffmpeg/maim/slop → grim/slurp/wf-recorder (X11→Wayland) - Rewrite screen-recording script for wf-recorder+slurp - Add window-rewrite icons and style workspace buttons in waybar - Set --class on kitty desktop entries for correct hyprland window matching - Remove i3-keybindings script and stale rofi window rules - Tweak cursor size, border colors, file-explorer dimensions
Diffstat (limited to 'modules/scripts/screen-recording/script.sh')
-rw-r--r--modules/scripts/screen-recording/script.sh46
1 files changed, 10 insertions, 36 deletions
diff --git a/modules/scripts/screen-recording/script.sh b/modules/scripts/screen-recording/script.sh
index a3bf86a..c2dafbe 100644
--- a/modules/scripts/screen-recording/script.sh
+++ b/modules/scripts/screen-recording/script.sh
@@ -17,43 +17,23 @@ while [[ "$#" -gt 0 ]]; do
done
# --- 2. GEOMETRY SELECTION ---
-# Default to a standard 1080p fallback if detection fails
-WIDTH=1920
-HEIGHT=1080
-X_OFF=0
-Y_OFF=0
-
-# Try to get actual root window size if xwininfo exists
-if command -v xwininfo >/dev/null 2>&1; then
- WIDTH=$(xwininfo -root | grep 'Width:' | awk '{print $2}')
- HEIGHT=$(xwininfo -root | grep 'Height:' | awk '{print $2}')
-fi
+GEOMETRY=""
if [ "$SELECT_MODE" = true ]; then
- if command -v slop >/dev/null 2>&1; then
+ if command -v slurp >/dev/null 2>&1; then
echo -e "${YELLOW}Select a window or draw a box...${NC}"
- # slop output: 123 456 10 20
- read -r W H X Y < <(slop -f "%w %h %x %y" --nokeyboard)
+ GEOMETRY=$(slurp)
- if [ -n "$W" ]; then
- WIDTH=$W
- HEIGHT=$H
- X_OFF=$X
- Y_OFF=$Y
- else
+ if [ -z "$GEOMETRY" ]; then
echo "Selection cancelled. Exiting."
exit 1
fi
else
- echo -e "${RED}Error: 'slop' not found.${NC} Recording full screen..."
+ echo -e "${RED}Error: 'slurp' not found.${NC} Recording full screen..."
sleep 1
fi
fi
-# Ensure even dimensions (FFmpeg/x264 requirement)
-WIDTH=$(( WIDTH + WIDTH % 2 ))
-HEIGHT=$(( HEIGHT + HEIGHT % 2 ))
-
# --- 3. START RECORDING ---
FILENAME="$OUT_DIR/recording-$(date +%Y%m%d-%H%M%S).mp4"
@@ -62,16 +42,10 @@ echo -e "Press ${YELLOW}'q'${NC} in this terminal to stop."
echo "File: $FILENAME"
echo "------------------------------------------------"
-# We pass arguments explicitly here to avoid "Unrecognized option" shell errors
-ffmpeg -hide_banner \
- -f x11grab \
- -video_size "${WIDTH}x${HEIGHT}" \
- -framerate 30 \
- -i "${DISPLAY:-:0.0}+${X_OFF},${Y_OFF}" \
- -c:v libx264 \
- -preset ultrafast \
- -crf 23 \
- -pix_fmt yuv420p \
- "$FILENAME"
+if [ -n "$GEOMETRY" ]; then
+ wf-recorder -g "$GEOMETRY" -f "$FILENAME"
+else
+ wf-recorder -f "$FILENAME"
+fi
echo -e "\n${GREEN}Done!${NC} Video saved to $FILENAME"