You are helping the user export and backup their KDE Plasma configuration settings.
Exports and compresses your KDE Plasma settings to a timestamped backup archive. Use it before system changes, migrations, or to preserve your customizations.
/plugin marketplace add danielrosehill/linux-desktop-plugin/plugin install lan-manager@danielrosehillYou are helping the user export and backup their KDE Plasma configuration settings.
Identify KDE configuration locations:
# Main config directory
echo "KDE Config: ~/.config/"
# Local data directory
echo "KDE Data: ~/.local/share/"
# Cache directory
echo "KDE Cache: ~/.cache/"
List important KDE configuration files:
# Core KDE files
ls -lh ~/.config/k* ~/.config/plasma* ~/.config/*rc 2>/dev/null | head -30
# Desktop files
ls -lh ~/.local/share/plasma* ~/.local/share/k* 2>/dev/null | head -20
Create backup directory:
# Create timestamped backup directory
BACKUP_DIR=~/.kde-backups/kde-backup-$(date +%Y%m%d-%H%M%S)
mkdir -p "$BACKUP_DIR"
echo "Backup directory: $BACKUP_DIR"
Backup essential KDE configurations:
# Core Plasma configuration
cp -r ~/.config/plasma* "$BACKUP_DIR/" 2>/dev/null
cp -r ~/.config/k* "$BACKUP_DIR/" 2>/dev/null
# Application-specific configs
for config in kdeglobals kwinrc dolphinrc konsolerc katerc spectaclerc; do
[ -f ~/.config/$config ] && cp ~/.config/$config "$BACKUP_DIR/"
done
# Desktop theme and appearance
cp ~/.config/plasmarc "$BACKUP_DIR/" 2>/dev/null
cp ~/.config/plasmashellrc "$BACKUP_DIR/" 2>/dev/null
# Keyboard shortcuts
cp ~/.config/kglobalshortcutsrc "$BACKUP_DIR/" 2>/dev/null
cp ~/.config/khotkeysrc "$BACKUP_DIR/" 2>/dev/null
Backup KDE desktop layouts:
# Plasma layouts
cp -r ~/.local/share/plasma "$BACKUP_DIR/plasma-data" 2>/dev/null
# Desktop scripts
cp -r ~/.local/share/kservices5 "$BACKUP_DIR/kservices" 2>/dev/null
# Plasmoids and widgets
cp -r ~/.local/share/plasmashell "$BACKUP_DIR/plasmashell-data" 2>/dev/null
Backup application data:
# Dolphin bookmarks and settings
cp -r ~/.local/share/dolphin "$BACKUP_DIR/dolphin-data" 2>/dev/null
# Konsole profiles
cp -r ~/.local/share/konsole "$BACKUP_DIR/konsole-data" 2>/dev/null
# KWallet (encrypted passwords)
cp -r ~/.local/share/kwalletd "$BACKUP_DIR/kwallet-data" 2>/dev/null
# Akonadi (if using KMail/contacts)
# cp -r ~/.local/share/akonadi "$BACKUP_DIR/akonadi-data" 2>/dev/null
Backup color schemes and themes:
# Color schemes
cp -r ~/.local/share/color-schemes "$BACKUP_DIR/" 2>/dev/null
# Plasma themes
cp -r ~/.local/share/plasma/desktoptheme "$BACKUP_DIR/" 2>/dev/null
# Icon themes
cp -r ~/.local/share/icons "$BACKUP_DIR/" 2>/dev/null
# Window decorations
cp -r ~/.local/share/aurorae "$BACKUP_DIR/" 2>/dev/null
Create backup manifest:
cat > "$BACKUP_DIR/BACKUP_INFO.txt" << EOF
KDE Plasma Backup
=================
Date: $(date)
Hostname: $(hostname)
KDE Version: $(plasmashell --version)
Qt Version: $(qmake --version | grep -i "Qt version")
Backup Contents:
----------------
$(find "$BACKUP_DIR" -type f | wc -l) files backed up
$(du -sh "$BACKUP_DIR" | cut -f1) total size
Configuration Files:
$(ls -1 "$BACKUP_DIR"/*.rc "$BACKUP_DIR"/*config* 2>/dev/null | wc -l) config files
Important Files:
$(ls -lh "$BACKUP_DIR" | grep -E "plasma|kwin|dolphin|konsole|kdeglobals")
EOF
cat "$BACKUP_DIR/BACKUP_INFO.txt"
Compress backup:
# Create compressed archive
cd ~/.kde-backups
tar czf "$(basename "$BACKUP_DIR").tar.gz" "$(basename "$BACKUP_DIR")"
# Show results
ls -lh "$(basename "$BACKUP_DIR").tar.gz"
echo "Backup archived: ~/.kde-backups/$(basename "$BACKUP_DIR").tar.gz"
Optional: Sync to cloud or external storage:
# Ask user if they want to copy backup elsewhere
# Example: Copy to NAS
# scp "$(basename "$BACKUP_DIR").tar.gz" user@nas:/backups/kde/
# Example: Copy to external drive
# cp "$(basename "$BACKUP_DIR").tar.gz" /mnt/external/kde-backups/
Create a restoration guide in the backup:
cat > "$BACKUP_DIR/RESTORE.md" << 'EOF'
# KDE Backup Restoration
## To restore this backup:
1. **Extract the archive:**
```bash
cd ~/.kde-backups
tar xzf kde-backup-TIMESTAMP.tar.gz
Close all KDE applications (important!)
Restore configuration files:
cd kde-backup-TIMESTAMP
cp -r k* plasma* *.rc ~/.config/
Restore data files:
cp -r plasma-data ~/.local/share/plasma
cp -r dolphin-data ~/.local/share/dolphin
cp -r konsole-data ~/.local/share/konsole
Restart Plasma:
kquitapp6 plasmashell && kstart plasmashell
Or log out and back in.
To restore only specific components:
cp kglobalshortcutsrc ~/.config/cp plasmarc ~/.config/cp -r plasma-data ~/.local/share/plasmacp -r dolphin-data ~/.local/share/dolphinEOF
## Minimal vs Complete Backup
**Minimal backup** (most important settings):
```bash
# Just essential configs
tar czf ~/.kde-backups/kde-minimal-backup.tar.gz \
~/.config/kdeglobals \
~/.config/kwinrc \
~/.config/plasmarc \
~/.config/kglobalshortcutsrc \
~/.local/share/plasma
Complete backup (everything):
# All KDE data
tar czf ~/.kde-backups/kde-complete-backup.tar.gz \
~/.config/k* \
~/.config/plasma* \
~/.local/share/plasma* \
~/.local/share/k* \
--exclude="*.lock" \
--exclude="*cache*"
Create a cron job for automatic backups:
# Add to crontab
(crontab -l 2>/dev/null; echo "0 2 * * 0 $HOME/.local/bin/backup-kde.sh") | crontab -
# Create backup script
cat > ~/.local/bin/backup-kde.sh << 'EOF'
#!/bin/bash
BACKUP_DIR=~/.kde-backups/kde-backup-$(date +%Y%m%d)
mkdir -p "$BACKUP_DIR"
cp -r ~/.config/{k*,plasma*} "$BACKUP_DIR/" 2>/dev/null
cp -r ~/.local/share/plasma "$BACKUP_DIR/" 2>/dev/null
tar czf "$BACKUP_DIR.tar.gz" "$BACKUP_DIR"
rm -rf "$BACKUP_DIR"
# Keep only last 4 backups
cd ~/.kde-backups && ls -t | tail -n +5 | xargs rm -f
EOF
chmod +x ~/.local/bin/backup-kde.sh
kf5 directory structure, KDE 6 uses kf6