├── .gitignore
├── .metadata
├── .vscode
└── launch.json
├── LICENSE
├── README.md
├── analysis_options.yaml
├── assets
├── bundles.json
├── bundles
│ ├── Gaming.png
│ ├── Graphic_design.png
│ └── Software_development.png
├── db
│ └── flathub_database.db
├── icons
│ └── Archive.zip
├── images
│ └── no-image.png
├── json
│ └── userSettings.json
├── localizations
│ ├── ar.json
│ ├── br.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ └── it.json
├── logos
│ ├── 512x512.png
│ ├── logodupot.svg
│ └── splash.png
├── recipies.json
├── recipies
│ ├── com.discordapp.Discord.json
│ ├── com.heroicgameslauncher.hgl.json
│ ├── com.usebottles.bottles.json
│ ├── com.valvesoftware.Steam.json
│ └── net.lutris.Lutris.json
└── settings.json
├── build.sh
├── buildAppImage.sh
├── buildAppimage.sh
├── buildAsset
├── flatpak
│ └── settings.json
└── other
│ └── settings.json
├── buildDeb.sh
├── buildDebug.sh
├── buildForFlatPak.sh
├── buildForOther.sh
├── buildRpm.sh
├── buildZip.sh
├── checkLocalization.php
├── distribute_options.yaml
├── export
├── deb
│ └── 512x512.png
├── flatpak
│ ├── 16x16.png
│ ├── 24x24.png
│ ├── 32x32.png
│ ├── 48x48.png
│ ├── 512x512.png
│ ├── 64x64.png
│ ├── org.dupot.easyflatpak.appdata.xml
│ └── org.dupot.easyflatpak.desktop
├── rpm
│ └── 512x512.png
└── screenshots
│ ├── Screenshot_application_steam.png
│ ├── Screenshot_application_steam_confirm_install.png
│ ├── Screenshot_application_steam_install_setup_path.png
│ ├── Screenshot_category.png
│ ├── Screenshot_category_grid.png
│ ├── Screenshot_home.png
│ ├── Screenshot_installed_applications.png
│ ├── Screenshot_override_view.png
│ ├── Screenshot_search.png
│ └── Screenshot_update_availables.png
├── lib
├── Domain
│ └── Entity
│ │ ├── application_installed_entity.dart
│ │ ├── application_update_entity.dart
│ │ ├── bundle_entity.dart
│ │ ├── db
│ │ ├── application_category_entity.dart
│ │ ├── application_entity.dart
│ │ └── category_entity.dart
│ │ ├── recipe
│ │ ├── permission_entity.dart
│ │ ├── permission_overrided_entity.dart
│ │ └── recipe_entity.dart
│ │ ├── settings_entity.dart
│ │ └── user_settings_entity.dart
├── Infrastructure
│ ├── Api
│ │ ├── bundle_api.dart
│ │ ├── command_api.dart
│ │ ├── flathub_api.dart
│ │ ├── localization_api.dart
│ │ ├── logger_api.dart
│ │ ├── path_api.dart
│ │ └── recipe_api.dart
│ ├── Control
│ │ ├── Model
│ │ │ ├── SubView
│ │ │ │ └── override_control.dart
│ │ │ └── View
│ │ │ │ ├── application_view_model.dart
│ │ │ │ ├── home_view_model.dart
│ │ │ │ ├── search_view_model.dart
│ │ │ │ └── side_menu_view_model.dart
│ │ └── Process
│ │ │ └── update_from_flathub_process.dart
│ ├── Entity
│ │ ├── menu_item_entity.dart
│ │ ├── navigation_entity.dart
│ │ ├── override_form_control.dart
│ │ ├── radio_bool_entity.dart
│ │ └── radio_string_entity.dart
│ ├── Repository
│ │ └── application_repository.dart
│ ├── Screen
│ │ ├── Layout
│ │ │ ├── only_content_layout.dart
│ │ │ └── side_menu_with_content_and_subcontent.dart
│ │ ├── SharedComponents
│ │ │ ├── Button
│ │ │ │ ├── add_to_cart_button.dart
│ │ │ │ ├── close_subview_button.dart
│ │ │ │ ├── dialog_cancel_button.dart
│ │ │ │ ├── dialog_confirm_button.dart
│ │ │ │ ├── install_all_button.dart
│ │ │ │ ├── install_button.dart
│ │ │ │ ├── install_with_recipe_button.dart
│ │ │ │ ├── override_button.dart
│ │ │ │ ├── remove_from_cart_button.dart
│ │ │ │ ├── run_button.dart
│ │ │ │ ├── uninstall_button.dart
│ │ │ │ ├── update_all_button.dart
│ │ │ │ └── update_button.dart
│ │ │ ├── Card
│ │ │ │ ├── card_application_component.dart
│ │ │ │ └── card_output_component.dart
│ │ │ ├── Content
│ │ │ │ └── application_list_content.dart
│ │ │ ├── Group
│ │ │ │ └── block_app_list_component.dart
│ │ │ ├── List
│ │ │ │ ├── datatable_application_list_component.dart
│ │ │ │ ├── grid_application_list_component.dart
│ │ │ │ └── listview_application_list_component.dart
│ │ │ └── SubForm
│ │ │ │ ├── radio_bool_list_subform.dart
│ │ │ │ └── radio_string_list_subform.dart
│ │ ├── SubView
│ │ │ ├── bundle_subview.dart
│ │ │ ├── cart_install_all_subview.dart
│ │ │ ├── cart_override_subview.dart
│ │ │ ├── export_subview.dart
│ │ │ ├── import_subview.dart
│ │ │ ├── install_subview.dart
│ │ │ ├── install_with_recipe_subview.dart
│ │ │ ├── override_subview.dart
│ │ │ ├── uninstall_subview.dart
│ │ │ ├── update_available_processing_all_subview.dart
│ │ │ └── update_available_processing_subview.dart
│ │ ├── Theme
│ │ │ ├── theme_button_style.dart
│ │ │ └── theme_text_style.dart
│ │ └── View
│ │ │ ├── UserSettings
│ │ │ └── Form
│ │ │ │ ├── darkmode_form.dart
│ │ │ │ ├── flathubapi_form.dart
│ │ │ │ ├── language_form.dart
│ │ │ │ ├── parameter_page_form.dart
│ │ │ │ └── scope_form.dart
│ │ │ ├── about_view.dart
│ │ │ ├── application_view.dart
│ │ │ ├── bundles_view.dart
│ │ │ ├── cart_view.dart
│ │ │ ├── category_view.dart
│ │ │ ├── home_view.dart
│ │ │ ├── installed_applications_view.dart
│ │ │ ├── loading_view.dart
│ │ │ ├── moreactions_view.dart
│ │ │ ├── reload_view.dart
│ │ │ ├── search_view.dart
│ │ │ ├── side_menu_view.dart
│ │ │ ├── updates_availables_view.dart
│ │ │ └── user_settings_view.dart
│ ├── Service
│ │ └── localisation_delegate_service.dart
│ └── application.dart
└── main.dart
├── linux
├── .gitignore
├── CMakeLists.txt
├── flutter
│ ├── CMakeLists.txt
│ ├── generated_plugin_registrant.cc
│ ├── generated_plugin_registrant.h
│ └── generated_plugins.cmake
├── main.cc
├── my_application.cc
├── my_application.h
└── packaging
│ ├── appimage
│ └── make_config.yaml
│ ├── deb
│ └── make_config.yaml
│ └── rpm
│ └── make_config.yaml
├── pubspec.lock
└── pubspec.yaml
/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 | migrate_working_dir/
12 |
13 | # IntelliJ related
14 | *.iml
15 | *.ipr
16 | *.iws
17 | .idea/
18 |
19 | # The .vscode folder contains launch configuration and tasks you configure in
20 | # VS Code which you may wish to be included in version control, so this line
21 | # is commented out by default.
22 | #.vscode/
23 |
24 | # Flutter/Dart/Pub related
25 | **/doc/api/
26 | **/ios/Flutter/.last_build_id
27 | .dart_tool/
28 | .flutter-plugins
29 | .flutter-plugins-dependencies
30 | .pub-cache/
31 | .pub/
32 | /build/
33 |
34 | # Symbolication related
35 | app.*.symbols
36 |
37 | # Obfuscation related
38 | app.*.map.json
39 |
40 | ios/
41 | macos/
42 | android/
43 | windows/
44 | web/favicon.png
45 | web/index.html
46 | web/manifest.json
47 | web/icons/Icon-192.png
48 | web/icons/Icon-512.png
49 | web/icons/Icon-maskable-192.png
50 | web/icons/Icon-maskable-512.png
51 | dist/
52 | remoteBuildAndDownload.sh
53 | todo.txt
54 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: "b0850beeb25f6d5b10426284f506557f66181b36"
8 | channel: "stable"
9 |
10 | project_type: app
11 |
12 | # Tracks metadata for the flutter migrate command
13 | migration:
14 | platforms:
15 | - platform: root
16 | create_revision: b0850beeb25f6d5b10426284f506557f66181b36
17 | base_revision: b0850beeb25f6d5b10426284f506557f66181b36
18 | - platform: android
19 | create_revision: b0850beeb25f6d5b10426284f506557f66181b36
20 | base_revision: b0850beeb25f6d5b10426284f506557f66181b36
21 | - platform: ios
22 | create_revision: b0850beeb25f6d5b10426284f506557f66181b36
23 | base_revision: b0850beeb25f6d5b10426284f506557f66181b36
24 | - platform: linux
25 | create_revision: b0850beeb25f6d5b10426284f506557f66181b36
26 | base_revision: b0850beeb25f6d5b10426284f506557f66181b36
27 | - platform: macos
28 | create_revision: b0850beeb25f6d5b10426284f506557f66181b36
29 | base_revision: b0850beeb25f6d5b10426284f506557f66181b36
30 | - platform: web
31 | create_revision: b0850beeb25f6d5b10426284f506557f66181b36
32 | base_revision: b0850beeb25f6d5b10426284f506557f66181b36
33 | - platform: windows
34 | create_revision: b0850beeb25f6d5b10426284f506557f66181b36
35 | base_revision: b0850beeb25f6d5b10426284f506557f66181b36
36 |
37 | # User provided section
38 |
39 | # List of Local paths (relative to this file) that should be
40 | # ignored by the migrate tool.
41 | #
42 | # Files that are not part of the templates will be ignored by default.
43 | unmanaged_files:
44 | - 'lib/main.dart'
45 | - 'ios/Runner.xcodeproj/project.pbxproj'
46 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "Flutter",
9 | "type": "dart",
10 | "request": "launch",
11 | "program": "lib/main.dart"
12 | },
13 | {
14 | "name": "dupotEasyFlatpak",
15 | "request": "launch",
16 | "type": "dart"
17 | },
18 | {
19 | "name": "dupotEasyFlatpak (profile mode)",
20 | "request": "launch",
21 | "type": "dart",
22 | "flutterMode": "profile"
23 | },
24 | {
25 | "name": "dupotEasyFlatpak (release mode)",
26 | "request": "launch",
27 | "type": "dart",
28 | "flutterMode": "release"
29 | }
30 | ]
31 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Dupot Easy Flatpak
2 |
3 | Flatpak store interface
4 |
5 | This application will help you install Flatpak apps in a user-friendly way. We have recipes for some of them to install them even better.
6 |
7 | 
8 |
9 | 
10 |
11 | 
12 |
13 | 
14 |
15 | 
16 |
17 | 
18 |
19 | 
20 |
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | # This file configures the analyzer, which statically analyzes Dart code to
2 | # check for errors, warnings, and lints.
3 | #
4 | # The issues identified by the analyzer are surfaced in the UI of Dart-enabled
5 | # IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
6 | # invoked from the command line by running `flutter analyze`.
7 |
8 | # The following line activates a set of recommended lints for Flutter apps,
9 | # packages, and plugins designed to encourage good coding practices.
10 | include: package:flutter_lints/flutter.yaml
11 |
12 | linter:
13 | # The lint rules applied to this project can be customized in the
14 | # section below to disable rules from the `package:flutter_lints/flutter.yaml`
15 | # included above or to enable additional rules. A list of all available lints
16 | # and their documentation is published at https://dart.dev/lints.
17 | #
18 | # Instead of disabling a lint rule for the entire project in the
19 | # section below, it can also be suppressed for a single line of code
20 | # or a specific dart file by using the `// ignore: name_of_lint` and
21 | # `// ignore_for_file: name_of_lint` syntax on the line or in the file
22 | # producing the lint.
23 | rules:
24 | # avoid_print: false # Uncomment to disable the `avoid_print` rule
25 | # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
26 |
27 | # Additional information about this file can be found at
28 | # https://dart.dev/guides/language/analysis-options
29 |
--------------------------------------------------------------------------------
/assets/bundles.json:
--------------------------------------------------------------------------------
1 | {
2 | "Gaming": {
3 | "icon": "assets/bundles/Gaming.png",
4 | "applicationList": [
5 | "com.valvesoftware.Steam",
6 | "com.discordapp.Discord",
7 | "net.lutris.Lutris",
8 | "com.heroicgameslauncher.hgl",
9 | "net.davidotek.pupgui2",
10 | "org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/24.08"
11 | ]
12 | },
13 | "Graphic_design": {
14 | "icon": "assets/bundles/Graphic_design.png",
15 | "applicationList": [
16 | "org.kde.kdenlive",
17 | "org.audacityteam.Audacity",
18 | "com.obsproject.Studio",
19 | "fr.handbrake.ghb",
20 | "org.kde.krita",
21 | "org.gimp.GIMP",
22 | "org.inkscape.Inkscape"
23 | ]
24 | },
25 | "Software_development": {
26 | "icon": "assets/bundles/Software_development.png",
27 | "applicationList": [
28 | "com.visualstudio.code",
29 | "com.google.AndroidStudio",
30 | "org.pgadmin.pgadmin4",
31 | "rest.insomnia.Insomnia",
32 | "io.dbeaver.DBeaverCommunity",
33 | "org.sqlitebrowser.sqlitebrowser"
34 | ]
35 | }
36 | }
--------------------------------------------------------------------------------
/assets/bundles/Gaming.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imikado/dupotEasyFlatpak/5435bc1111afb388b0cb4a9e5619552b94640414/assets/bundles/Gaming.png
--------------------------------------------------------------------------------
/assets/bundles/Graphic_design.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imikado/dupotEasyFlatpak/5435bc1111afb388b0cb4a9e5619552b94640414/assets/bundles/Graphic_design.png
--------------------------------------------------------------------------------
/assets/bundles/Software_development.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imikado/dupotEasyFlatpak/5435bc1111afb388b0cb4a9e5619552b94640414/assets/bundles/Software_development.png
--------------------------------------------------------------------------------
/assets/db/flathub_database.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imikado/dupotEasyFlatpak/5435bc1111afb388b0cb4a9e5619552b94640414/assets/db/flathub_database.db
--------------------------------------------------------------------------------
/assets/icons/Archive.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imikado/dupotEasyFlatpak/5435bc1111afb388b0cb4a9e5619552b94640414/assets/icons/Archive.zip
--------------------------------------------------------------------------------
/assets/images/no-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imikado/dupotEasyFlatpak/5435bc1111afb388b0cb4a9e5619552b94640414/assets/images/no-image.png
--------------------------------------------------------------------------------
/assets/json/userSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "applicationDataPath": "",
4 | "userOverrideLanguageCode": false,
5 | "languageCode": "en",
6 | "userOverrideDarkModeEnabled": true,
7 | "darkModeEnabled": false,
8 | "userInstallationScopeEnabled": false,
9 | "displayApplicationInstalledNumberInSideMenu": false,
10 | "displayApplicationInstalledNumberInPage": false,
11 | "flathubApiEnabled": true,
12 | "displayAppsMode": "displayModeList"
13 | }
--------------------------------------------------------------------------------
/assets/localizations/ar.json:
--------------------------------------------------------------------------------
1 | {
2 | "loading": "جاري التحميل",
3 | "applications_available": "البرامج المتوفرة",
4 | "installation_finished": "اكتمل التثبيت",
5 | "installation_successfully": "تم التثبيت بنجاح",
6 | "uninstallation_finished": "اكتملت إزالة التثبيت",
7 | "uninstallation_successfully": "تمت إزالة التثبيت بنجاح",
8 | "details": "التفاصيل",
9 | "installation_already_installed": "مثبت بالفعل",
10 | "installing": "جاري التثبيت ...",
11 | "cancel": "إلغاء",
12 | "confirm": "تأكيد",
13 | "confirmation_title": "تأكيد",
14 | "do_you_confirm_installation_of": "هل تؤكد تثبيت ",
15 | "do_you_confirm_uninstallation_of": "هل تؤكد إزالة تثبيت ",
16 | "install": "تثبيت",
17 | "install_with_recipe": "تثبيت باستخدام الوصفة",
18 | "uninstall": "إزالة التثبيت",
19 | "application": "تطبيق",
20 | "applications": "البرامج",
21 | "description": "الوصف",
22 | "output": "المخرجات",
23 | "add_new_application": "إضافة تطبيق جديد",
24 | "add": "إضافة",
25 | "field_should_not_be_empty": "يجب ملء الحقل",
26 | "application_name": "اسم التطبيق",
27 | "application_json": "وصفة إعداد التطبيق (JSON)",
28 | "processing_form": "جاري المعالجة",
29 | "save": "حفظ",
30 | "close": "إغلاق",
31 | "Search": "بحث",
32 | "Home": "الرئيسية",
33 | "AudioVideo": "صوت / فيديو",
34 | "Development": "تطوير",
35 | "Education": "تعليم",
36 | "Game": "ألعاب",
37 | "Graphics": "رسومات",
38 | "Network": "الشبكات",
39 | "Office": "البرامج المكتبية",
40 | "Science": "علوم",
41 | "System": "برانج النظام",
42 | "Utility": "أدوات مساعدة",
43 | "Search...": "بحث...",
44 | "Author": "المؤلف",
45 | "Website": "الموقع الإلكتروني",
46 | "License": "الترخيص",
47 | "InstalledApps": "التطبيقات المثبتة",
48 | "Run": "تشغيل",
49 | "By": "بواسطة",
50 | "English": "الإنجليزية",
51 | "French": "الفرنسية",
52 | "Italian": "الإيطالية",
53 | "Spanish": "الإسبانية",
54 | "Brazilian": "البرتغالية (البرازيل)",
55 | "Arabic": "العربية",
56 | "Language": "اللغة",
57 | "More": "المزيد...",
58 | "Updates": "التحديثات المتوفرة",
59 | "NoUpdates": "لا توجد تحديثات متوفرة",
60 | "Update": "تحديث",
61 | "update_finished": "اكتمل التحديث",
62 | "delete_all_app_data": "حذف جميع بيانات التطبيق",
63 | "Edit_override": "تعديل أذونات التجاوز",
64 | "Screenshots": "لقطات الشاشة",
65 | "Links": "روابط",
66 | "Last_releases": "أحدث الإصدارات",
67 | "Yes": "نعم",
68 | "No": "لا",
69 | "Installation_scope": "نطاق التثبيت",
70 | "scopeSystem": "نطاق النظام",
71 | "scopeUser": "نطاق المستخدم",
72 | "do_you_confirm_update_all": "هل تؤكد تحديث الكل؟",
73 | "update_all": "تحديث الكل",
74 | "successfully_saved": "تم الحفظ بنجاح",
75 | "do_you_confirm_update_selected": "هل تؤكد تحديث العنصر (العناصر) المحدد؟",
76 | "Settings": "الإعدادات",
77 | "Override_language": "تجاوز اللغة",
78 | "Use_system_language": "استخدام لغة النظام",
79 | "DarkMode": "الوضع الداكن",
80 | "Use_system_darkmode": "استخدام الوضع الداكن للنظام",
81 | "Override_darkmode": "تجاوز الوضع الداكن",
82 | "Display_number_of_installedapps_in_sidemenu": "عرض عدد التطبيقات المثبتة في القائمة الجانبية",
83 | "About": "حول",
84 | "Version": "الإصدار",
85 | "Total": "الإجمالي",
86 | "Infos": "معلومات",
87 | "Installed_Size": "الحجم المثبت",
88 | "Download_Size": "حجم التنزيل",
89 | "add_to_cart": "إضافة إلى سلة البرامج",
90 | "Cart": "سلة البرامج",
91 | "remove_from_cart": "إزالة من سلة البرامج",
92 | "do_you_confirm_installation_of_all": "هل تؤكد تثبيت الكل؟",
93 | "install_all": "تثبيت الكل",
94 | "cart_is_empty": "سلة البرامج فارغة",
95 | "Name": "الاسم",
96 | "Description": "الوصف",
97 | "No_result_corresponding_to_this_research": "لا توجد نتائج مطابقة لهذا البحث :(",
98 | "loading_Check_installation": "التحقق من التثبيت",
99 | "loading_Installation_ok": "التثبيت جيد",
100 | "loading_Should_update_application_list_from_Flathub_api": "هل يجب تحديث قائمة التطبيقات من واجهة Flathub؟",
101 | "loading_Starting_update_application_list_from_Flathub_api": "بدء تحديث قائمة التطبيقات من واجهة Flathub",
102 | "loading_Update_application_list_from_Flathub_api_finished": "اكتمل تحديث قائمة التطبيقات من واجهة Flathub",
103 | "loading_Last_applications_updates_from_API_is_newer_than_7_days_not_need": "آخر تحديثات للتطبيقات من الواجهة أحدث من 7 أيام، لا حاجة للتحديث",
104 | "loading_Load_application_localizations": "تحميل ترجمات التطبيق",
105 | "loading_Looking_for_applications_updates": "البحث عن تحديثات للبرامج",
106 | "FlathubApiEnabled": "واجهة Flathub مفعلة (يمكن تعطيلها في حال وجود مشاكل بالشبكة، مشاكل بالبروكسي..)",
107 | "More_actions": "المزيد من الإجراءات",
108 | "Bundles": "الحزم",
109 | "export_finished": "اكتمل التصدير",
110 | "Export": "تصدير",
111 | "Export_installed_apps": "تصدير التطبيقات المثبتة إلى ملف JSON",
112 | "Import": "استيراد",
113 | "Import_installed_apps_from_json": "استيراد التطبيقات المثبتة من ملف JSON",
114 | "Exported_to_pattern_filePath": "تم التصدير إلى _filePath_",
115 | "Missing_import_pattern_filePath": "ملف الاستيراد مفقود _filePath_",
116 | "Successfully_imported_in_cart": "تم الاستيراد بنجاح في السلة",
117 | "Already_synced_nothing_to_import": "مزامنة بالفعل، لا يوجد شيء للاستيراد",
118 | "bundle_Gaming": "حزمة الألعاب",
119 | "bundle_Graphic_design": "حزمة التصميم الجرافيكي",
120 | "bundle_Software_development": "حزمة تطوير البرمجيات",
121 | "recipe_share_your_home_label": "للمعلومة: يجب السماح لديسكورد بالوصول إلى مجلدك الرئيسي (دعه مضبوطًا)",
122 | "recipe_indicate_your_game_path_label": "أشر إلى مسار المجلد الذي تخزن فيه ألعابك",
123 | "recipe_should_installMangoHud": "تثبيت MangoHud",
124 | "recipe_enable_mangohud": "تفعيل MangoHud"
125 | }
--------------------------------------------------------------------------------
/assets/localizations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "loading": "Loading",
3 | "applications_available": "Applications availables",
4 | "installation_finished": "Installation finished",
5 | "installation_successfully": "Installation successfully",
6 | "uninstallation_finished": "Uninstallation finished",
7 | "uninstallation_successfully": "Uninstallation successfully",
8 | "details": "Details",
9 | "installation_already_installed": "Already installed",
10 | "installing": "Installing ...",
11 | "cancel": "Cancel",
12 | "confirm": "Confirm",
13 | "confirmation_title": "Confirmation",
14 | "do_you_confirm_installation_of": "Do you confirm installation of ",
15 | "do_you_confirm_uninstallation_of": "Do you confirm uninstallation of ",
16 | "install": "Install",
17 | "install_with_recipe": "Install with recipe",
18 | "uninstall": "Uninstall",
19 | "application": "Application",
20 | "applications": "Applications",
21 | "description": "Decription",
22 | "output": "Output",
23 | "add_new_application": "Add new application",
24 | "add": "Add",
25 | "field_should_not_be_empty": "Field should be filled",
26 | "application_name": "Application's name",
27 | "application_json": "Application's json setup recipie",
28 | "processing_form": "Processing",
29 | "save": "Save",
30 | "close": "close",
31 | "Search": "Search",
32 | "Home": "Home",
33 | "AudioVideo": "Audio / Video",
34 | "Development": "Development",
35 | "Education": "Education",
36 | "Game": "Game",
37 | "Graphics": "Graphics",
38 | "Network": "Network",
39 | "Office": "Office",
40 | "Science": "Science",
41 | "System": "System",
42 | "Utility": "Utility",
43 | "Search...": "Search...",
44 | "Author": "Author",
45 | "Website": "Website",
46 | "License": "License",
47 | "InstalledApps": "Installed applications",
48 | "Run": "Run",
49 | "By": "By",
50 | "English": "English",
51 | "French": "Français",
52 | "Italian": "Italiano",
53 | "Spanish": "Español",
54 | "Brazilian": "Brazilian",
55 | "Arabic": "Arabic",
56 | "Language": "Language",
57 | "More": "More...",
58 | "Updates": "Updates availables",
59 | "NoUpdates": "No updates availables",
60 | "Update": "Update",
61 | "update_finished": "Update finished",
62 | "delete_all_app_data": "Delete all application's data",
63 | "Edit_override": "Edit override permissions",
64 | "Screenshots": "Screenshots",
65 | "Links": "Links",
66 | "Last_releases": "Last releases",
67 | "Yes": "Yes",
68 | "No": "No",
69 | "Installation_scope": "Installation scope",
70 | "scopeSystem": "scope system",
71 | "scopeUser": "scope user",
72 | "do_you_confirm_update_all": "Do you confirm to update all",
73 | "update_all": "Update all",
74 | "successfully_saved": "Successfully saved",
75 | "do_you_confirm_update_selected": "Do you confirm to update selected line(s)",
76 | "Settings": "Settings",
77 | "Override_language": "Override language",
78 | "Use_system_language": "Use system language",
79 | "DarkMode": "DarkMode",
80 | "Use_system_darkmode": "Use system darkmode",
81 | "Override_darkmode": "Override darkmode",
82 | "Display_number_of_installedapps_in_sidemenu": "Display number of installed applications in side menu",
83 | "About": "About",
84 | "Version": "Version",
85 | "Total": "Total",
86 | "Infos": "Infos",
87 | "Installed_Size": "Installed Size",
88 | "Download_Size": "Download Size",
89 | "add_to_cart": "Add to cart",
90 | "Cart": "Cart",
91 | "remove_from_cart": "Remove from Cart",
92 | "do_you_confirm_installation_of_all": "Do you confirm installation of all",
93 | "install_all": "Install all",
94 | "cart_is_empty": "Cart is empty",
95 | "Name": "Name",
96 | "Description": "Description",
97 | "No_result_corresponding_to_this_research": "No result corresponding to this research :(",
98 | "loading_Check_installation": "Check installation",
99 | "loading_Installation_ok": "Installation ok",
100 | "loading_Should_update_application_list_from_Flathub_api": "Should update application list from Flathub api ?",
101 | "loading_Starting_update_application_list_from_Flathub_api": "Starting update application list from Flathub api",
102 | "loading_Update_application_list_from_Flathub_api_finished": "Update application list from Flathub api finished",
103 | "loading_Last_applications_updates_from_API_is_newer_than_7_days_not_need": "Last applications updates from API is newer than 7 days, not need",
104 | "loading_Load_application_localizations": "Load application localizations",
105 | "loading_Looking_for_applications_updates": "Looking for applications updates",
106 | "FlathubApiEnabled": "Flathub api enabled (can be disabled if network issue, proxies issues..)",
107 | "More_actions": "More actions",
108 | "Bundles": "Bundles",
109 | "export_finished": "Export finished",
110 | "Export": "Export",
111 | "Export_installed_apps": "Export installed applications into a json file",
112 | "Import": "Import",
113 | "Import_installed_apps_from_json": "Import installed applications from a json file",
114 | "Exported_to_pattern_filePath": "Exported to _filePath_",
115 | "Missing_import_pattern_filePath": "Missing import file _filePath_",
116 | "Successfully_imported_in_cart": "Successfully imported in cart",
117 | "Already_synced_nothing_to_import": "Already synced, nothing to import",
118 | "bundle_Gaming": "Bundle Gaming",
119 | "bundle_Graphic_design": "Bundle Graphic design",
120 | "bundle_Software_development": "Bundle Software development",
121 | "recipe_share_your_home_label": "For information: should allow discord to access your home directory (let it setuped)",
122 | "recipe_indicate_your_game_path_label": "Indicate directory path where you store your games",
123 | "recipe_should_installMangoHud": "Install mango hud",
124 | "recipe_enable_mangohud": "Enable mangohud"
125 | }
--------------------------------------------------------------------------------
/assets/logos/512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imikado/dupotEasyFlatpak/5435bc1111afb388b0cb4a9e5619552b94640414/assets/logos/512x512.png
--------------------------------------------------------------------------------
/assets/logos/logodupot.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
122 |
--------------------------------------------------------------------------------
/assets/logos/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imikado/dupotEasyFlatpak/5435bc1111afb388b0cb4a9e5619552b94640414/assets/logos/splash.png
--------------------------------------------------------------------------------
/assets/recipies.json:
--------------------------------------------------------------------------------
1 | [
2 | "com.valvesoftware.Steam",
3 | "com.usebottles.bottles",
4 | "com.heroicgameslauncher.hgl",
5 | "net.lutris.Lutris",
6 | "com.discordapp.Discord"
7 | ]
--------------------------------------------------------------------------------
/assets/recipies/com.discordapp.Discord.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Discord",
3 | "description": "Discord",
4 | "flatpak": "com.discordapp.Discord",
5 | "flatpakPermissionToOverrideList": [
6 | {
7 | "label": "recipe_share_your_home_label",
8 | "type": "filesystem_noprompt",
9 | "value": "home"
10 | }
11 | ]
12 | }
--------------------------------------------------------------------------------
/assets/recipies/com.heroicgameslauncher.hgl.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Heroic Games Launcher",
3 | "description": "An Open Source Epic Games, GOG and Amazon Prime Games Launcher.",
4 | "flatpak": "com.heroicgameslauncher.hgl",
5 | "flatpakPermissionToOverrideList": [
6 | {
7 | "label": "recipe_indicate_your_game_path_label",
8 | "type": "filesystem"
9 | },
10 | {
11 | "label": "recipe_should_installMangoHud",
12 | "type": "install_flatpak_yesno",
13 | "value": "org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/24.08"
14 | }
15 | ]
16 | }
--------------------------------------------------------------------------------
/assets/recipies/com.usebottles.bottles.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Bottles",
3 | "description": "Run Windows Software",
4 | "description_fr": "Permet de lancer des logiciels Windows",
5 | "flatpak": "com.usebottles.bottles",
6 | "flatpakPermissionToOverrideList": [
7 | {
8 | "label": "recipe_indicate_your_game_path_label",
9 | "type": "filesystem"
10 | },
11 | {
12 | "label": "recipe_should_installMangoHud",
13 | "type": "install_flatpak_yesno",
14 | "value": "org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/24.08"
15 | }
16 | ]
17 | }
--------------------------------------------------------------------------------
/assets/recipies/com.valvesoftware.Steam.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Steam",
3 | "description": "Package to play steam",
4 | "flatpak": "com.valvesoftware.Steam",
5 | "flatpakPermissionToOverrideList": [
6 | {
7 | "label": "recipe_indicate_your_game_path_label",
8 | "type": "filesystem"
9 | },
10 | {
11 | "label": "recipe_should_installMangoHud",
12 | "type": "install_flatpak_yesno",
13 | "value": "org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/24.08"
14 | },
15 | {
16 | "label": "recipe_enable_mangohud",
17 | "type": "env_yesno",
18 | "value": "MANGOHUD",
19 | "subValueYes": "1",
20 | "subValueNo": "0"
21 | }
22 | ]
23 | }
--------------------------------------------------------------------------------
/assets/recipies/net.lutris.Lutris.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Lutris",
3 | "description": "Video game preservation platform.",
4 | "flatpak": "net.lutris.Lutris",
5 | "flatpakPermissionToOverrideList": [
6 | {
7 | "label": "recipe_indicate_your_game_path_label",
8 | "type": "filesystem"
9 | },
10 | {
11 | "label": "recipe_should_installMangoHud",
12 | "type": "install_flatpak_yesno",
13 | "value": "org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/24.08"
14 | }
15 | ]
16 | }
--------------------------------------------------------------------------------
/assets/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "useFlatpakSpawn":false
3 | }
--------------------------------------------------------------------------------
/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | flutter build linux --release
--------------------------------------------------------------------------------
/buildAppImage.sh:
--------------------------------------------------------------------------------
1 | flutter_distributor release --name=dev --jobs=dupot-easy-flatpak-appimage
2 |
--------------------------------------------------------------------------------
/buildAppimage.sh:
--------------------------------------------------------------------------------
1 | flutter_distributor release --name=dev --jobs=dupot-easy-flatpak-zip
2 |
--------------------------------------------------------------------------------
/buildAsset/flatpak/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "useFlatpakSpawn":true
3 | }
--------------------------------------------------------------------------------
/buildAsset/other/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "useFlatpakSpawn":false
3 | }
--------------------------------------------------------------------------------
/buildDeb.sh:
--------------------------------------------------------------------------------
1 | flutter_distributor release --name=dev --jobs=dupot-easy-flatpak-deb
2 |
--------------------------------------------------------------------------------
/buildDebug.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | flutter build linux --debug
--------------------------------------------------------------------------------
/buildForFlatPak.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | cp buildAsset/flatpak/settings.json assets/
3 | ./build.sh
4 | rm -rf dist/bundle
5 | cp -r build/linux/x64/release/bundle dist/
6 | cd dist
7 | tar -czf bundle.tar.gz bundle
8 |
--------------------------------------------------------------------------------
/buildForOther.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | rm -rf dist/2*
3 | cp buildAsset/other/settings.json assets/
4 | ./buildDeb.sh
5 | ./buildRpm.sh
6 |
--------------------------------------------------------------------------------
/buildRpm.sh:
--------------------------------------------------------------------------------
1 | flutter_distributor release --name=dev --jobs=dupot-easy-flatpak-rpm
2 |
--------------------------------------------------------------------------------
/buildZip.sh:
--------------------------------------------------------------------------------
1 | flutter_distributor release --name=dev --jobs=dupot-easy-flatpak-zip
2 |
--------------------------------------------------------------------------------
/checkLocalization.php:
--------------------------------------------------------------------------------
1 | applicationList;
5 |
6 | BundleEntity(this.name, this.icon, this.applicationList);
7 | }
8 |
--------------------------------------------------------------------------------
/lib/Domain/Entity/db/application_category_entity.dart:
--------------------------------------------------------------------------------
1 | class ApplicationCategoryEntity {
2 | // ignore: non_constant_identifier_names
3 | final String appstream_id;
4 | // ignore: non_constant_identifier_names
5 | final String category_id;
6 |
7 | ApplicationCategoryEntity({
8 | // ignore: non_constant_identifier_names
9 | required this.appstream_id,
10 | // ignore: non_constant_identifier_names
11 | required this.category_id,
12 | });
13 |
14 | Map toMap() {
15 | return {
16 | 'appstream_id': appstream_id,
17 | 'category_id': category_id,
18 | };
19 | }
20 |
21 | // Implement toString to make it easier to see information about
22 | // each dog when using the print statement.
23 | @override
24 | String toString() {
25 | return 'ApplicationCategoryEntity{appstream_id: $appstream_id, category_id: $category_id }';
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/lib/Domain/Entity/db/category_entity.dart:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imikado/dupotEasyFlatpak/5435bc1111afb388b0cb4a9e5619552b94640414/lib/Domain/Entity/db/category_entity.dart
--------------------------------------------------------------------------------
/lib/Domain/Entity/recipe/permission_entity.dart:
--------------------------------------------------------------------------------
1 | class PermissionEntity {
2 | final String type;
3 | final String label;
4 | final String? value;
5 | final String? subValueYes;
6 | final String? subValueNo;
7 |
8 | static const constTypeFileSystem = 'filesystem';
9 | static const constTypeFileSystemNoPrompt = 'filesystem_noprompt';
10 |
11 | static const constTypeInstallYesNo = 'install_flatpak_yesno';
12 |
13 | static const constTypeEnvYesNo = 'env_yesno';
14 |
15 | PermissionEntity(this.type, this.label,
16 | [this.value, this.subValueYes, this.subValueNo]);
17 |
18 | bool isFileSystem() {
19 | return (type == constTypeFileSystem);
20 | }
21 |
22 | bool isFileSystemNoPrompt() {
23 | return (type == constTypeFileSystemNoPrompt);
24 | }
25 |
26 | bool isInstallFlatpakYesNo() {
27 | return (type == constTypeInstallYesNo);
28 | }
29 |
30 | bool isEnvYesNo() {
31 | return (type == constTypeEnvYesNo);
32 | }
33 |
34 | String getType() {
35 | return type;
36 | }
37 |
38 | String getLabel() {
39 | return label;
40 | }
41 |
42 | String? getValue() {
43 | return value;
44 | }
45 |
46 | String? getSubValueYes() {
47 | return subValueYes;
48 | }
49 |
50 | String? getSubValueNo() {
51 | return subValueNo;
52 | }
53 |
54 | String getFlatpakOverrideType() {
55 | if (isFileSystemNoPrompt()) {
56 | return getFlatpakParameter(constTypeFileSystem);
57 | }
58 |
59 | return getFlatpakParameter(type);
60 | }
61 |
62 | String getFlatpakParameter(String parameter) {
63 | return '--$parameter=';
64 | }
65 |
66 | Map toJson() => {
67 | 'type': type,
68 | 'value': value,
69 | 'subValueYes': subValueYes,
70 | 'subValueNo': subValueNo
71 | };
72 | }
73 |
--------------------------------------------------------------------------------
/lib/Domain/Entity/recipe/permission_overrided_entity.dart:
--------------------------------------------------------------------------------
1 | class PermissionOverridedEntity {
2 | final String type;
3 | final String? value;
4 | final String? subValueYesNo;
5 |
6 | static const constSubValueTrue = 'yes';
7 |
8 | static const constTypeFileSystem = 'filesystem';
9 | static const constTypeFileSystemNoPrompt = 'filesystem_noprompt';
10 |
11 | static const constTypeInstallYesNo = 'install_flatpak_yesno';
12 |
13 | PermissionOverridedEntity(this.type, [this.value, this.subValueYesNo]);
14 |
15 | PermissionOverridedEntity.fromJson(Map json)
16 | : type = json['type'] as String,
17 | value = json['value'] as String,
18 | subValueYesNo = json['subValueYesNo'];
19 |
20 | bool isFileSystem() {
21 | return (type == constTypeFileSystem);
22 | }
23 |
24 | bool isFileSystemNoPrompt() {
25 | return (type == constTypeFileSystemNoPrompt);
26 | }
27 |
28 | bool isInstallFlatpakYesNo() {
29 | return (type == constTypeInstallYesNo);
30 | }
31 |
32 | String getType() {
33 | return type;
34 | }
35 |
36 | String? getValue() {
37 | return value;
38 | }
39 |
40 | String? getSubValueYesNo() {
41 | return subValueYesNo;
42 | }
43 |
44 | String getFlatpakOverrideType() {
45 | if (isFileSystemNoPrompt()) {
46 | return getFlatpakParameter(constTypeFileSystem);
47 | }
48 |
49 | return getFlatpakParameter(type);
50 | }
51 |
52 | String getFlatpakParameter(String parameter) {
53 | return '--$parameter=';
54 | }
55 |
56 | Map toJson() => {
57 | 'type': type,
58 | 'value': value,
59 | 'subValueYesNo': subValueYesNo,
60 | };
61 | }
62 |
--------------------------------------------------------------------------------
/lib/Domain/Entity/recipe/recipe_entity.dart:
--------------------------------------------------------------------------------
1 | import 'package:dupot_easy_flatpak/Domain/Entity/recipe/permission_entity.dart';
2 |
3 | class RecipeEntity {
4 | String id = '';
5 | List flatpakPermissionToOverrideList = [];
6 |
7 | RecipeEntity(String applicationId,
8 | List