Linux Desktop Migration Tool rewritten into a desktop application. This is in highly experimental state, thus put in a separate repo.
Linux Desktop Migration Tool - GUI
A modern GTK4/Libadwaita desktop application for migrating your Linux desktop environment from one computer to another.
Features
- Home Directory Migration: Documents, Pictures, Videos, Music, Downloads
- Settings Migration: Desktop and application settings (dconf)
- Network Configuration: WiFi passwords and network connections
- Credentials & Security: Keyrings, SSH keys, GPG keys, certificates
- Flatpak Applications: Reinstall apps and migrate their data
- Toolbx Containers: Export and import development containers
- Modern UI: Clean, intuitive interface built with libadwaita
- Progress Tracking: Real-time feedback during migration
Prerequisites
On Both Computers
- Same local network
- Linux with systemd (Fedora, Ubuntu, etc.)
Origin Computer (old machine)
- SSH server enabled (Settings → Sharing → Remote Login)
- User account with known password
Destination Computer (this machine)
- Freshly installed Linux system
- User account already set up
Installation
System Dependencies
Fedora/RHEL
sudo dnf install python3-gobject gtk4 libadwaita python3-pip sshpass rsync flatpak dconf xdg-user-dirs
Ubuntu/Debian
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-4.0 gir1.2-adw-1 python3-pip sshpass rsync flatpak dconf xdg-user-dirs
Python Dependencies
pip install -r requirements.txt
Optional Dependencies
For Toolbx container migration:
# Fedora
sudo dnf install toolbox
# Ubuntu
sudo apt install podman-toolbox
Running the Application
Make the launcher executable and run:
chmod +x ldmt-gui
./ldmt-gui
How It Works
- Connect: Enter the IP address and credentials for your old computer
- Select: Choose what you want to migrate
- Migrate: Sit back and wait while data is transferred
- Complete: Log out and back in for all changes to take effect
Architecture
- main.py: Application entry point and main application class
- window.py: Main window with navigation and UI logic
- ssh_manager.py: SSH connection and remote command execution
- migration_controller.py: Migration task orchestration and execution
Security Notes
- Passwords are only stored in memory during the migration
- SSH connections use standard SSH security
- Network settings migration requires sudo privileges
- All transferred files maintain proper ownership and permissions
Troubleshooting
"sshpass not found"
Install sshpass: sudo dnf install sshpass or sudo apt install sshpass
"Connection failed"
- Verify SSH is enabled on the origin computer (Settings → Sharing → Remote Login)
- Check that both computers are on the same network
- Verify the IP address is correct
- Ensure the username and password are correct
"NetworkManager migration failed"
Network settings migration requires sudo privileges. Make sure your user can use sudo.
License
GNU General Public License v3.0 or later
Copyright © 2023-2025 Jiri Eischmann