Files
mhasadi78 1234452a6e feat: add automated konsolerc geometry sanitization and git backup integration
- Implement [MainWindow] section stripping in backup and restore scripts
  to prevent screen geometry/monitor layout noise across devices
- Add robust hostname detection and customizable archive naming in backup.sh
- Add optional interactive git commit and push prompt upon successful backup
- Update restore.sh diff preview and extraction to respect sanitized konsolerc
- Add AGENTS.md documentation detailing script architecture and conventions
2026-09-07 23:19:54 +03:30

32 lines
1.7 KiB
Markdown

# AGENTS.md
## Overview
Lightweight Bash utility scripts for KDE Konsole configuration backup, cross-device synchronization, and restoration.
## Key Features & Commands
- **Backup**: `./backup.sh`
- Automatically strips device-specific screen geometry / monitor layouts (`[MainWindow]` section in `konsolerc`) to ensure clean cross-device sync.
- Staged in `backups/` with default naming format: `konsole_backup_<hostname>_YYYYMMDD_HHMMSS.zip`.
- Prompts user to confirm or edit the backup archive filename before saving.
- Enforces a retention policy of max 10 backups (older ones deleted and removed via `git rm` if inside a git repository).
- Prompts to commit and push the new backup to git remote.
- **Restore**: `./restore.sh [optional_zip_path]`
- Supports positional arguments, stdin piping (`echo "file.zip" | ./restore.sh`), and an interactive selection menu if no input is provided.
- Sanitizes `konsolerc` to avoid overwriting the target machine's window/screen geometry.
- Supports file-by-file diff preview (`[d]`) using `git diff --no-index` or `diff`.
- Reads interactive prompts safely from `/dev/tty` when stdin is redirected.
## Target Paths (Relative to `$HOME`)
- `.config/konsolerc` (sanitized of `[MainWindow]` geometry)
- `.local/share/konsole` (profiles, color schemes, bookmarks, keytabs)
- `.local/share/kxmlgui5/konsole` (UI toolbars / actions)
- `.config/konsole.notifyrc`
- `.config/konsolesshconfig`
## Implementation Details & Conventions
- **Shell**: Pure Bash 4+ with `set -euo pipefail`.
- **Safety**: Uses `mktemp -d` for temporary staging directories with `trap ... EXIT` cleanup.
- **Verification**: Run `bash -n backup.sh restore.sh` to check syntax.