https://github.com/hakanbaban53/firefox-theme-installer
My RealFire theme installers written with python customtkinter and tkinter.
https://github.com/hakanbaban53/firefox-theme-installer
customtkinter firefox firefox-theme python tkinter
Last synced: 4 months ago
JSON representation
My RealFire theme installers written with python customtkinter and tkinter.
- Host: GitHub
- URL: https://github.com/hakanbaban53/firefox-theme-installer
- Owner: Hakanbaban53
- License: mit
- Created: 2024-04-15T12:06:23.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-04T10:59:50.000Z (about 1 year ago)
- Last Synced: 2025-07-14T06:30:22.426Z (7 months ago)
- Topics: customtkinter, firefox, firefox-theme, python, tkinter
- Language: Python
- Homepage:
- Size: 3.51 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
Firefox Theme Installer
A minimal Firefox theme installer written with Python.
Key Features •
Screenshots •
Build For Testing •
Download •
Folder Structure •
License
## 🏞 Screenshots
Pages
Install Page

Remove Page

Status Page

Modals
Themes Modal

Theme Detail

Info Modals


## 🔐 Key Features
* Cross platform
* Custom theme support
* Theme preview before installation
* Custom script loader support
## ⚡ Download
You can [download](https://github.com/Hakanbaban53/Firefox-Theme-Installer/releases) the latest installable version of Firefox Theme Installer for Windows and Linux (I add the MacOS path but I didn't test it because I don't have a MacOS device).
## ❓ How Its Work
When you install a Firefox theme, the app checks for the presence of `userChrome.css` or `userContent.css` files. If either of these files is found, the app will copy all associated files and directories from the location of the `userChrome.css` or `userContent.css` file. If neither file is found, the app will return an error message: `No theme data or userChrome.css found`.
All themes installing with the app are stored in the `themes` directory. This folder under the cache directory. If you want to remove a theme, you can do it from the app or manually delete the theme folder from the `themes` directory. Here is the [directory](src/data/static/os_properties.py) of the cache directory.
## 🏗️ Test and Build
To test and build the app, check the [test](docs/test.md) guide.
## 🚀 Issues
If you encounter any issues or have suggestions for improvements, please feel free to open an issue on our [GitHub Issues page](https://github.com/Hakanbaban53/Firefox-Theme-Installer/issues). We welcome contributions and feedback from the community to make this project better.
### ❓ How to Report an Issue
1. **Search Existing Issues**: Before opening a new issue, please check if the issue has already been reported.
2. **Create a New Issue**: If your issue is not listed, create a new issue and provide detailed information.
- **Title**: A clear and descriptive title.
- **Description**: A detailed description of the issue, including steps to reproduce, expected behavior, and actual behavior.
- **Screenshots**: If applicable, include screenshots to help illustrate the issue.
- **Environment**: Specify the environment in which the issue occurs (e.g., OS, Python version, etc.).
### 🌟 Feature Requests
We also welcome feature requests! If you have an idea for a new feature or an improvement, please open an issue and label it as a feature request. Provide as much detail as possible to help us understand your suggestion.
Thank you for helping us improve Firefox Theme Installer!
## 🌟 Contributions
We welcome contributions from the community to help improve Firefox Theme Installer. If you would like to contribute, please follow these steps:
1. **Fork the Repository**: Click the "Fork" button in the upper right corner of the repository.
2. **Clone the Repository**: Clone the forked repository to your local machine.
3. **Create a New Branch**: Create a new branch for your contribution.
4. **Make Changes**: Make your changes to the codebase. If you are adding a new language check the [adding a new language](docs/language.md) guide.
5. **Commit Changes**: Commit your changes with a descriptive commit message.
6. **Push Changes**: Push your changes to your forked repository.
7. **Create a Pull Request**: Create a pull request to the main repository with your changes.
## 📂 Folder structure
```css
🗃
├── 🗎 readme.md
├── 🗎 LICENSE
├── 🖿 assets
│ └── 🖻 Preview images
└── 🖿 src
├── ⚙️ app.py
├── 🖿 assets
│ ├── 🖻 block_spinner.gif
│ ├── 🖻 firefox.ico
│ └── 🖻 Other assets
├── 🖿 core
│ ├── 🖿 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
├── 🖿 data
│ ├── 🖿 language
│ │ └── 🗎 Language Data Files (json)
│ ├── 🖿 online
│ │ └── 🗎 fx-autoconfig.json
│ └── 🖿 static
│ ├── 🖿 components
│ │ ├── 🖿 inputs_and_checkboxes
│ │ │ └── 🗎 data.py
│ │ └── 🖿 navigation_buttons
│ │ └── 🗎 data.py
│ ├── 🗎 global_data.py
│ └── 🗎 os_properties.py
└── 🖿 UI
├── 🖿 components
│ ├── 🗎 create_detect_installed_theme.py
│ ├── 🗎 create_header.py
│ ├── 🗎 create_inputs_and_checkboxes.py
│ ├── 🗎 create_navigation_button.py
│ └── 🗎 set_window_icon.py
├── 🖿 modals
│ ├── 🗎 info_modals.py
│ ├── 🗎 theme_detail_modal.py
│ └── 🗎 theme_modal.py
└── 🖿 pages
├── 🗎 home_page.py
├── 🗎 install_page.py
├── 🗎 remove_page.py
└── 🗎 status_page.py
```
## 🔑 License
Firefox Theme Installer is licensed under the [MIT License](LICENSE).
---
Hakan İSMAİL ❤️🔥