Restore, backup, and manage application settings on BigLinux
Restore Settings is a native GTK4/libadwaita application for BigLinux that lets you reset, restore, export, and import application configuration files. With 136 preconfigured applications across 15 categories, it covers browsers, multimedia, development tools, terminals, desktop environments, Flatpak apps, and much more.
Built with modern GNOME HIG principles, it integrates seamlessly into any desktop environment running GTK4.
- Restore BigLinux Defaults — Reset any application to BigLinux default settings using
/etc/skelskeleton files with a single click. - Restore Program Defaults — Remove all custom settings so the application recreates its original default configuration from scratch.
- Export Settings — Back up dotfiles for multiple applications into a single compressed
.tar.gzarchive. - Import Settings — Restore previously exported settings from a
.tar.gzbackup with per-application selection. - Full Directory Backup — Optionally copy entire configuration directories instead of individual files.
- Flatpak Support — Automatically detect and manage Flatpak application settings alongside native packages.
- Search — Quickly find any installed application using the integrated search bar in the header.
- Organized by Category — Browse applications grouped into 15 categories: Favorites, Browsers, Communication, Multimedia, Graphics, Office, Development, Terminals, Shell, File Managers, Downloads, System, Gaming, Customization, and Desktop Environment.
- Welcome Dialog — Onboarding dialog showing all features on first launch, with a "Show on startup" toggle.
- Internationalization — Translated into 29 languages via gettext
.pofiles.
| Dependency | Minimum Version |
|---|---|
| Python | 3.10+ |
| GTK | 4.x |
| libadwaita | 1.x |
| PyGObject | 3.42+ |
| Flatpak | (optional, for Flatpak app detection) |
# From the official BigLinux repository
sudo pacman -S biglinux-configgit clone https://github.com/biglinux/biglinux-config.git
cd biglinux-config
python3 biglinux-config/usr/share/biglinux/biglinux-config/main.pycd pkgbuild
makepkg -sibiglinux-config/
├── biglinux-config/
│ ├── locale/ # Translation files (.po, .json, .pot)
│ └── usr/
│ ├── bin/
│ │ ├── big-config # System launcher script
│ │ └── biglinux-config # Alternative launcher
│ ├── share/
│ │ ├── applications/
│ │ │ └── big-config.desktop
│ │ ├── biglinux/biglinux-config/
│ │ │ ├── main.py # Application entry point
│ │ │ ├── backend/
│ │ │ │ ├── app_detector.py # Detect installed native apps
│ │ │ │ ├── backup_manager.py # Export/import .tar.gz backups
│ │ │ │ ├── flatpak_detector.py # Detect installed Flatpak apps
│ │ │ │ └── reset_manager.py # Reset configs (skel / delete)
│ │ │ ├── data/
│ │ │ │ └── app_registry.py # 136 app entries + categories
│ │ │ ├── img/ # Custom SVG icons
│ │ │ ├── ui/
│ │ │ │ ├── application.py # Main window + Adw.Application
│ │ │ │ ├── app_grid.py # FlowBox grid of app buttons
│ │ │ │ ├── category_sidebar.py # Category sidebar navigation
│ │ │ │ ├── restore_dialog.py # Restore confirmation dialogs
│ │ │ │ ├── backup_dialog.py # Export/import dialogs
│ │ │ │ ├── about_dialog.py # About dialog
│ │ │ │ └── welcome_dialog.py # Welcome/onboarding dialog
│ │ │ └── utils/
│ │ │ └── __init__.py # i18n helper (_)
│ │ ├── locale/ # Compiled translations (.mo, .json)
│ │ └── pixmaps/ # Application icons (.svg, .png)
├── pkgbuild/
│ └── PKGBUILD # Arch/BigLinux package build script
├── LICENSE # GPL-3.0
└── README.md
┌─────────────────────────────────────────────────────┐
│ main.py │
│ BigConfigApp (Adw.Application) │
├─────────────┬──────────────┬────────────────────────┤
│ UI Layer │ Backend │ Data │
├─────────────┼──────────────┼────────────────────────┤
│ application │ app_detector │ app_registry │
│ app_grid │ flatpak_det. │ (136 AppEntry objects) │
│ sidebar │ reset_manager│ │
│ dialogs │ backup_mgr │ │
└─────────────┴──────────────┴────────────────────────┘
- UI Layer — GTK4 + libadwaita widgets. Split view with category sidebar and app grid. Dialogs for restore, export/import, about, and welcome.
- Backend — Detects installed applications, manages config reset via
/etc/skelor deletion, and handles.tar.gzbackup export/import. - Data — Single-source-of-truth registry of 136 applications with their config paths, skel paths, icons, categories, and detection binaries.
- Select an application from the grid.
- Choose between:
- Restore BigLinux Defaults — Copies preconfigured files from
/etc/skelto your home directory. - Restore Program Defaults — Deletes all custom configuration files so the application recreates its defaults.
- Restore BigLinux Defaults — Copies preconfigured files from
- If the application is currently running, you will be prompted to close it first.
- A success/error dialog confirms the operation result.
- Open Menu → Export settings…
- Select which installed applications to include in the backup.
- Choose a destination file (
.tar.gz). - The archive will contain all selected dotfiles and configuration directories.
- Open Menu → Import settings…
- Select a previously exported
.tar.gzfile. - Choose which applications to restore from the backup.
- Files are extracted to the appropriate locations under
$HOME.
User preferences are stored at:
~/.config/restore-settings/settings.json
Currently stores:
show-welcome— Whether to display the welcome dialog on startup (default:true).
The application uses gettext for internationalization. Translation files are located in biglinux-config/locale/.
Bulgarian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hebrew, Croatian, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Romanian, Russian, Slovak, Swedish, Turkish, Ukrainian, Chinese.
- Copy the template:
cp locale/biglinux-config.pot locale/<lang>.po - Edit the
.pofile with your translations. - Compile:
msgfmt locale/<lang>.po -o usr/share/locale/<lang>/LC_MESSAGES/biglinux-config.mo
- Fork the repository.
- Create a feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -m 'Add my feature' - Push to the branch:
git push origin feature/my-feature - Open a Pull Request.
To add support for a new application, add an AppEntry to the APP_REGISTRY list in data/app_registry.py:
AppEntry(
app_id="my-app",
name="My Application",
icon="my-app",
binary="/usr/bin/my-app",
category="multimedia",
config_paths=["~/.config/my-app"],
skel_paths=["/etc/skel/.config/my-app"],
)This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.
- Repository: github.com/biglinux/biglinux-config
- Issues: github.com/biglinux/biglinux-config/issues
- BigLinux: biglinux.com.br