A minimal Firefox theme installer written with Python.
Key Features • Screenshots • Build For Testing • Download • Folder Structure • License
- Cross platform
- Custom theme support
- Theme preview before installation
- Custom script loader support
To clone and run this application, you'll need Git, Python and some python libraries installed on your computer. From your command line:
# Clone this repository
$ git clone https://github.com/Hakanbaban53/Firefox-Theme-Installer
# Go into the repository
$ cd Firefox-Theme-Installer
# Install dependencies
$ pip3 install customtkinter tk pillow requests pyinstaller
# Build the app in Windows
$ pyinstaller --onefile .\main.py --icon=../Firefox-Theme-Installer/assets/icons/firefox.ico --add-data "..\Firefox-Theme-Installer\assets:assets" --add-data "..\Firefox-Theme-Installer\language:language" --add-data "..\Firefox-Theme-Installer\data\local:data\local"
# Build the app in Linux
$ pyinstaller --onefile ./main.py --hidden-import='PIL._tkinter_finder' --add-data="../Firefox-Theme-Installer/assets:assets" --add-data="../Firefox-Theme-Installer/language:language" --add-data="../Firefox-Theme-Installer/data/local:data/local"
Note 1 🔩 If you want to launch with no console add the '--noconsole' argument.
Note 2 🔩 If you encounter the externally-managed-environment error while downloading with pip3 on Linux, add the --break-system-packages argument (Warning
⚠️ : this argument may cause conflicts between system packages and pip packages. If your Linux distribution has the necessary packages, please use the Linux package manager).
You can download the latest installable version of Firefox Theme Installer for Windows, macOS and Linux.
.
├── assets
│ ├── block_spin.gif
│ ├── firefox.ico
│ └── Other icon data in png format
├── components
│ ├── create_detect_installed_theme.py
│ ├── create_header.py
│ ├── create_inputs_and_checkboxes.py
│ ├── create_navigation_button.py
│ └── set_window_icon.py
├── data
│ ├── local
│ │ └── Local data using for app build
│ └── online
│ └── Online data for fetching internet
├── installer_core
│ ├── cli_tools
│ │ ├── argument_parser.py
│ │ └── cli_app.py
│ ├── component_tools
│ │ ├── preview_theme.py
│ │ ├── special_input_functions.py
│ │ └── thread_manager.py
│ ├── data_tools
│ │ ├── get_folder_locations.py
│ │ ├── get_os_properties.py
│ │ ├── get_theme_data.py
│ │ ├── image_loader.py
│ │ ├── language_manager.py
│ │ └── load_json_data.py
│ ├── file_utils
│ │ ├── detect_and_download_files.py
│ │ ├── file_actions.py
│ │ └── get_the_theme_files.py
│ └── window_tools
│ └── center_window.py
├── language
│ ├── app
│ │ └── Main app language in json format
│ ├── components
│ │ └── Components language data in json format
│ ├── modals
│ │ └── Modal language data in json format
│ └── pages
│ └── Page language data in json format
├── LICENSE
├── main.py
├── modals
│ ├── check_files_modal.py
│ ├── info_modals.py
│ ├── theme_detail_modal.py
│ └── theme_modal.py
├── pages
│ ├── home_page.py
│ ├── install_page.py
│ ├── remove_page.py
│ └── status_page.py
├── Readme Images
│ └── Readme images png format
└── readme.md
MIT