A complete desktop environment switcher, profile manager, and system configuration backup tool for Lilith Linux, built with Rust and Slint.
Shapeshifter unifies the functionality of several desktop configuration tools into a single, native application:
| Integrated Tool | Feature |
|---|---|
| SaveDesktop | Full DE backup (themes, icons, fonts, wallpapers, extensions, Flatpak apps + data) |
| MendingWall | Multi-DE conflict prevention (icon/cursor themes, scaling, dark/light mode, menu cleanup) |
| One-Click-Backup | Simple folder-to-external-location backup |
| KonSave | Dotfile/profile save-apply-export-import with shareable archives |
| KonUI | Graphical interface for all profile management operations |
- Create profiles that capture your current desktop environment, installed packages, and configuration files
- Apply profiles to restore settings, configs, and install missing packages
- Export profiles as portable
.tar.gzarchives for sharing or migration - Import profiles from exported archives
- Delete profiles you no longer need
- Remote backup to HTTP endpoints or local/network paths
- Detect all installed desktop environments (X11 and Wayland sessions)
- Switch default session with proper
.dmrcand AccountsService integration - Automatic config conflict detection and backup before switching
- Config restoration when switching back to a previous DE
- Granular control over what gets included in profiles:
- GTK/Icon/Cursor themes
- Fonts and wallpapers
- GNOME extensions, KDE Plasma configs, XFCE configs
- dConf settings dumps
- Terminal, shell, and editor configurations
- Flatpak apps and their data
- Desktop folder and custom paths
- Per-item enable/disable toggles with size estimates
Automatically fix common multi-desktop issues:
- Theme isolation — preserve icon, cursor, and GTK themes per-DE
- Display settings — keep scaling and dark/light mode separate per-DE
- Menu cleanup — remove duplicate entries and hide DE-specific apps from wrong menus
- Default apps — set appropriate default applications per-DE
- Autostart isolation — keep DE-specific startup apps separate
- Add source-to-destination folder backup pairs
- Run backups on demand with timestamped copies
- Enable/disable individual backup jobs
- Support for local, external drive, and network destinations
- Configurable interval-based auto-save of profiles
- Enable/disable with adjustable frequency (1–168 hours)
- Manual "Run Now" trigger
- Remote backup target URL or file path
- External backup location for folder backups
- Auto-save configuration
- Profile storage location management
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
# Install system dependencies (Debian/Ubuntu)
sudo apt update
sudo apt install -y build-essential libfontconfig1-dev libxcb-render0-dev \
libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev \
libgtk-3-devcargo build --release./target/release/shapeshifterOr for development:
cargo runshapeshifter/
├── Cargo.toml # Rust dependencies
├── build.rs # Slint build script
├── src/
│ └── main.rs # Application logic
├── ui/
│ └── appwindow.slint # Slint UI definition
└── target/ # Build output
Shapeshifter stores its configuration at ~/.config/shapeshifter/config.json:
{
"remote_url": "",
"profiles_dir": "/home/user/.config/shapeshifter/profiles",
"backup_items": [...],
"conflict_fixes": [...],
"folder_backups": [],
"scheduled_save": {
"enabled": false,
"interval_hours": 24,
"last_run": ""
},
"external_backup_path": ""
}Profiles are stored at ~/.config/shapeshifter/profiles/<name>/:
profile.json— Profile metadata and package listconfigs.tar.gz— Archived configuration files
- Navigate to Profiles in the sidebar
- Click + New Profile
- Enter a name and optionally enable remote backup
- Click Create Profile
- Go to Profiles
- Click Apply on the desired profile
- The app restores configs, installs missing packages, and sets the default DE
- Go to Desktop Switcher
- Click Switch next to your target DE
- Log out and back in to complete the switch
- Go to Backup Items
- Toggle items on/off to control what gets included in profiles
- Size estimates show how much space each item uses
- Go to DE Conflict Fixes
- Enable the fixes you want
- Click Apply Selected Fixes
- Go to Folder Backup
- Enter source and destination paths
- Click + Add to create a backup job
- Click Run to execute a backup
- Go to Settings
- Configure remote backup URL, auto-save interval, and external backup path
Install the desktop launcher:
cp shapeshifter.desktop ~/.local/share/applications/
# Edit Exec path to match your installation| Component | Purpose |
|---|---|
| COSMIC Desktop | Desktop Environment |
| Shapeshifter | DE Switching & Profiles |
| Tweakers | System Optimization |
| Lilim | AI Assistant |
See LICENSE file for details.