nix/bin/presentation-mode

52 lines
2 KiB
Bash
Executable file

#!/bin/bash
# This script is used to change the top and bottom padding of the outer container in the Aerospace theme.
CONFIG_FILE="$HOME/.config/aerospace/aerospace.toml"
BACKUP_FILE="/tmp/aerospace_presentation_backup"
presentation_top_gaps=80
presentation_bottom_gaps=80
presentation_left_gaps=80
presentation_right_gaps=80
if [ "$1" == "on" ]; then
# Save original lines with line numbers
grep -n 'outer\.top\|outer\.bottom\|outer\.left\|outer\.right' "$CONFIG_FILE" >"$BACKUP_FILE"
# Replace with presentation values
sed -i'' -e "s/^\([[:space:]]*outer\.top[[:space:]]*=\).*/\1 ${presentation_top_gaps}/" "$CONFIG_FILE"
sed -i'' -e "s/^\([[:space:]]*outer\.bottom[[:space:]]*=\).*/\1 ${presentation_bottom_gaps}/" "$CONFIG_FILE"
sed -i'' -e "s/^\([[:space:]]*outer\.left[[:space:]]*=\).*/\1 ${presentation_left_gaps}/" "$CONFIG_FILE"
sed -i'' -e "s/^\([[:space:]]*outer\.right[[:space:]]*=\).*/\1 ${presentation_right_gaps}/" "$CONFIG_FILE"
# Set dark wallpaper for presentation
osascript -e 'tell application "System Events" to set picture of every desktop to "/Users/rayandrew/Pictures/Wallpapers/black-gray.jpg"' >/dev/null 2>&1
aerospace reload-config
echo -n "Presentation mode ON"
elif [ "$1" == "off" ]; then
if [ ! -f "$BACKUP_FILE" ]; then
echo "Error: No backup found. Run 'presentation-mode on' first."
exit 1
fi
# Restore original values line by line
while IFS=: read -r line_num content; do
# Escape special characters for sed
escaped_content=$(printf '%s\n' "$content" | sed 's/[&/\]/\\&/g')
sed -i'' -e "${line_num}s/.*/${escaped_content}/" "$CONFIG_FILE"
done <"$BACKUP_FILE"
# Restore original wallpaper
osascript -e 'tell application "System Events" to set picture of every desktop to "/Users/rayandrew/Pictures/Wallpapers/420322.jpg"' >/dev/null 2>&1
rm "$BACKUP_FILE"
aerospace reload-config
echo "Presentation mode OFF"
else
echo "Usage: presentation-mode [on|off]"
exit 1
fi