A Flutter application that manages Flatpak sandbox permissions, inspired by the original Flatseal project.
- 🔍 View Installed Apps: Browse all Flatpak applications installed on your system
- 🔐 Manage Permissions: Control filesystem access, device access, sockets, and other permissions
- 🎨 Modern UI: Flutter-native Material Design interface
- 🖥️ Desktop-First: Optimized for Linux desktop with GTK support
- 🔄 Real-time Updates: Instantly apply permission changes
- 🔙 Reset Overrides: Easily restore default permissions
The application features a two-pane layout:
- Left Pane: Searchable list of installed Flatpak applications
- Right Pane: Detailed permission settings for the selected application
- Flutter SDK (3.0.0 or later)
- Flatpak (installed and configured on your system)
- Linux Desktop Environment (for full functionality)
- GTK 3.0+ (for Linux desktop builds)
If you don't have Flatpak installed:
# Ubuntu/Debian
sudo apt install flatpak
# Fedora
sudo dnf install flatpak
# Arch Linux
sudo pacman -S flatpakgit clone https://github.com/meta-flutter/flutter-flatseal.git
cd flutter-flatsealflutter pub getflutter config --enable-linux-desktopflutter build linux --releaseThe built application will be located at:
build/linux/x64/release/bundle/
Run directly with Flutter:
flutter run -d linuxAfter building, run the executable:
./build/linux/x64/release/bundle/flutter_flatseal- Build the application (see above)
- Copy the bundle to your preferred location:
sudo cp -r build/linux/x64/release/bundle /opt/flutter-flatseal
sudo ln -s /opt/flutter-flatseal/flutter_flatseal /usr/local/bin/flutter-flatseal- Install the desktop entry:
sudo cp linux/flutter_flatseal.desktop /usr/share/applications/cd build/linux/x64/release
sudo cmake --install . --prefix /usr-
Launch the Application
- From application menu: Search for "Flutter Flatseal"
- From terminal:
flutter-flatsealorflutter run
-
Select an Application
- Browse or search for a Flatpak app in the left pane
- Click on an app to view its permissions
-
Manage Permissions
- Toggle switches to enable/disable specific permissions
- Changes are applied immediately
- Look for categories: Filesystem, Devices, Sockets, Features, Network
-
Reset Overrides
- Click the restore icon in the app header
- Confirm to reset all custom permissions to defaults
flutter-flatseal/
├── lib/
│ ├── main.dart # Application entry point
│ ├── models/ # Data models
│ │ ├── flatpak_app.dart # Flatpak application model
│ │ └── permission.dart # Permission definitions
│ ├── services/ # Business logic
│ │ └── flatpak_service.dart # Flatpak command interaction
│ ├── screens/ # Main screens
│ │ └── home_screen.dart # Home screen with app list
│ └── widgets/ # Reusable UI components
│ ├── app_list.dart # Application list widget
│ ├── permission_details.dart # Permission view
│ └── permission_group.dart # Permission category
├── linux/ # Linux desktop configuration
│ ├── CMakeLists.txt
│ ├── main.cc
│ ├── my_application.cc/h
│ └── flutter_flatseal.desktop
├── test/ # Unit tests
└── pubspec.yaml # Dependencies
The application manages the following permission categories:
- Home directory
- All system files
- XDG directories (Downloads, Documents, Pictures, Music, Videos)
- All devices
- GPU acceleration (DRI)
- Virtualization (KVM)
- X11/Wayland display servers
- PulseAudio sound system
- D-Bus (session and system)
- SSH authentication agent
- Smart cards (PCSC)
- CUPS printing
- Development tools
- Bluetooth
- Network access
- Multi-architecture support
flutter testflutter analyzeflutter format lib/# Coming soon
snapcraft# Coming soon
flatpak-builder --force-clean build-dir com.example.FlutterFlatseal.ymlAppImage packaging will be added in future releases.
Error: "Flatpak is not installed on this system"
Solution: Install Flatpak using your distribution's package manager (see Prerequisites)
Error: Failed to override permissions
Solution: Ensure you have proper permissions. Some operations may require sudo:
sudo flutter-flatsealIssue: Application list is empty
Causes:
- No Flatpak applications installed
- Flatpak not properly configured
Solution: Install Flatpak apps or check Flatpak installation:
flatpak list --appContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This Flutter implementation provides:
- ✅ Modern Material Design UI
- ✅ Fast, native performance via Flutter
- ✅ Easy to extend and maintain
- ✅ Matches core Flatseal functionality
- ✅ Linux desktop focused
Original Flatseal advantages:
- More mature and battle-tested
- GTK native (better desktop integration)
- Broader Linux distribution support
This project is intended as a Flutter implementation study of Flatseal functionality.
Original Flatseal: Copyright © 2020-2024 Martin Abente Lahaye (GPLv3)
- Original Flatseal by Martin Abente Lahaye
- Flutter team for the excellent framework
- Flatpak community for the sandboxing technology
- Basic application listing
- Permission viewing
- Permission overrides
- Linux desktop support
- Advanced permission editing (custom paths, environment variables)
- D-Bus permission management
- Import/Export permission profiles
- Multiple application selection
- Undo/Redo functionality
- Search and filter improvements
- Package as Snap/Flatpak/AppImage
For issues, questions, or suggestions:
- Open an issue on GitHub
- Check existing issues for similar problems
- Provide detailed information about your system and the issue