add initial support for freebsd

This commit is contained in:
xgui4
2026-03-27 20:55:07 -04:00
parent 34f301edcc
commit ef4d556899
9 changed files with 44 additions and 27 deletions

View File

@@ -1,6 +1,7 @@
{
"version" : "Version",
"help-message" : "-h or --help to get this help \n -v or --version to get the app version \n -L or --license to get the license information \n -a or --about to get information about the app \n -cl or --cli to launch the cli version \n -g or --gen-config to generate or update the app config",
"about-message" : "This is a custom Minecraft LCE Launcher written in Python and Qt with Freedom and GNU/Linux support in mind.",
"play" : "Play",
"install" : "Install",
"username" : "Username",

View File

@@ -1,6 +1,7 @@
{
"version" : "Version",
"help-message" : "-h ou --help pour obtenir cette aide \n -v ou --version pour obtenir la version de l'application \n -L ou --license pour obtenir les informations de licence \n -a ou --about pour obtenir des informations sur l'application \n -cl ou --cli pour lancer la version en ligne de commande \n -g ou --gen-config pour générer ou mettre à jour la configuration de l'application",
"about-meessage" : "Il s'agit d'un lanceur Minecraft LCE personnalisé, écrit en Python et Qt, conçu pour prendre en charge Freedom et GNU/Linux.",
"play" : "Jouer",
"install" : "Installer",
"username" : "Nom d'utilisateur",

View File

@@ -1,6 +1,7 @@
{
"version" : "Version",
"help-message" : "-h or --help to get this help \n -v or --version to get the app version \n -L or --license to get the license information \n -a or --about to get information about the app \n -cl or --cli to launch the cli version \n -g or --gen-config to generate or update the app config",
"about-message" : "This is a custom Minecraft LCE Launcher written in Python and Qt with Freedom and GNU/Linux support in mind.",
"play" : "Play",
"install" : "Install",
"username" : "Username",

View File

@@ -2,6 +2,12 @@
set -e
pyside6-rcc "res.qrc" -o "src/res_rc.py" &&
pyside6-uic "src/form.ui" -o "src/ui_form.py" &&
pyside6-uic "src/system_info.ui" -o "src/ui_system_info.py"
if [[ $("uname -s") != "FreeBSD" ]]; then
pyside6-rcc "res.qrc" -o "src/res_rc.py" &&
pyside6-uic "src/form.ui" -o "src/ui_form.py" &&
pyside6-uic "src/system_info.ui" -o "src/ui_system_info.py"
else
/usr/local/pyside6/rcc -g python "res.qrc" -o "src/res_rc.py" &&
/usr/local/pyside6/uic -g python "src/form.ui" -o "src/ui_form.py" &&
/usr/local/pyside6/uic -g python "src/system_info.ui" -o "src/ui_system_info.py"
fi

View File

@@ -1,10 +1,10 @@
[build-system]
requires = ["hatchling", "PySide6"]
requires = ["hatchling", "pyside6; sys_platform == 'win32' or sys_platform == 'linux' or sys_platform == 'darwin'"]
build-backend = "hatchling.build"
[project]
name = "LCE-Qt-Launcher"
version = "26.3.27a"
version = "26.3.27a0"
description = "This is a custom Free/Libre Minecraft LCE Launcher written in Python and Qt."
requires-python = ">3.10, <3.13"
license = "GPL-3.0-or-later"
@@ -12,7 +12,7 @@ readme = "readme.md"
license-files = [ "license.md" ]
dependencies = [
"pyside6",
"pyside6; sys_platform == 'win32' or sys_platform == 'linux' or sys_platform == 'darwin'",
"requests",
"rich",
"term-image",
@@ -20,6 +20,7 @@ dependencies = [
"pip",
"hatch",
"nuitka",
"walker; sys_platform == 'win32'",
"patchelf; sys_platform == 'linux'",
]
@@ -44,8 +45,8 @@ windows-icon-from-ico = "assets/app.ico"
product-name = "LCE-Qt-Launcher"
file-description = "Custom Free/Libre Minecraft LCE Launcher"
copyright = "GPL-3.0-or-later"
windows-file-version = "{from_modules:src._version}"
windows-product-version = "{from_modules:src._version}"
windows-file-version = "26.3.27a0.0"
windows-product-version = "26.3.27a0.0"
include-data-dir = "assets"
include-distribution-metadata = "LCE-Qt-Launcher"
include-module = [

View File

@@ -18,15 +18,17 @@ This is a custom Minecraft LCE Launcher written in Python and Qt with Freedom an
- Customisable
- Free Software (GPLv3)
- Multiple Instance (Work in progress)
- localisatiions (Work in progress)
<!--
- Coming laters:
- Plugins
- Skin support
- Modding Support
- in-app news
- localisatiions
-->
- GNU/Linux compatibility first (with secondary Windows and FreeBSD support)
- GNU/Linux compatibility
- Experimental FreeBSD support
- Windows support
- Focus on being the main hub for Minecraft LCE on GNU/Linux
- Minecraft Theme pre-configured
@@ -45,12 +47,12 @@ Guide coming laters
## How to build
Coming in version 0.0.1 when the program will be more stable
Coming in the next stable release when the program will be more stable
## Nigthly Build
> [!NOTE]
> This automatic nighly build is currently not-stable and very experimental and is in constant change
> This automatic nighly build is currently not-stable and very experimental and active developpement
In this [GitHub Relese](https://github.com/xgui4/LCE-Qt-Launcher/releases/tag/nightly) page you will found Nighly Build which are made automatically
via GitHub Action when change are made in the `nighly` branch
@@ -59,7 +61,7 @@ MacOS is not avaiable in the Nigthly Build for now since I lack a way to test it
## Software Requirement
- [Python 3.12.x](https://www.python.org/downloads/latest/python3.12/)
- [Python 3.10 to Python 3.13](https://www.python.org)
- with a virtual env with the required library install (specified in the readme and [`pyproject.toml`](pyproject.toml))
- [PySide6](https://pypi.org/project/PySide6/)
- [Monocraft Font](https://github.com/IdreesInc/Monocraft) installed

View File

@@ -8,9 +8,9 @@ import lce_qt_launcher.term_service as term_service
class JsonTrans(QObject):
languageChanged: Signal = Signal() # Signal QT about the language changes
languageChanged: Signal = Signal()
FALLBACK_LANG: str = "en"
FALLBACK_LANG: str = "translations"
def __init__(self, lang_code: str = FALLBACK_LANG):
super().__init__()
@@ -26,10 +26,10 @@ class JsonTrans(QObject):
return
try:
with open(file_path, "r", "utf-8") as f:
with open(file_path, "r", encoding="utf-8") as f:
self.json_data = json.load(f)
self._current_lang = lang_code
self.languageChanged.emit() # Notify the UI
self.languageChanged.emit()
except Exception as e:
term_service.print_error(f"loading JSON: {e}. Defaulting to English Fallback.")

View File

@@ -42,14 +42,11 @@ if platform.system() == "FreeBSD":
_FREEBSD_QT6_PATH = "/usr/local/lib/qt6/plugins"
os.environ["QT_PLUGIN_PATH"] = _FREEBSD_QT6_PATH
HELP_STR = """
-h or --help to get this help
-v or --version to get the app version
-L or --license to get the license information
-a or --about to get information about the app
-cl or --cli to launch the cli version
-g or --gen-config to generate or update the app config
"""
PLAY_BUTTON_LABEL = "play"
HELP_STR = "help-message"
ABOUT_STR = "about-message"
INSTANCE_MANAGER_LABEL = translator.translate("instance_manager_label")
SAVE_INSTANCE_MSG_BOX_LABEL = translator.translate("save_instance_msg_box_label")

12
uv.lock generated
View File

@@ -473,10 +473,11 @@ dependencies = [
{ name = "patchelf", marker = "sys_platform == 'linux'" },
{ name = "pillow" },
{ name = "pip" },
{ name = "pyside6" },
{ name = "pyside6", marker = "sys_platform == 'darwin' or sys_platform == 'linux' or sys_platform == 'win32'" },
{ name = "requests" },
{ name = "rich" },
{ name = "term-image" },
{ name = "walker", marker = "sys_platform == 'win32'" },
]
[package.metadata]
@@ -486,10 +487,11 @@ requires-dist = [
{ name = "patchelf", marker = "sys_platform == 'linux'" },
{ name = "pillow" },
{ name = "pip" },
{ name = "pyside6" },
{ name = "pyside6", marker = "sys_platform == 'darwin' or sys_platform == 'linux' or sys_platform == 'win32'" },
{ name = "requests" },
{ name = "rich" },
{ name = "term-image" },
{ name = "walker", marker = "sys_platform == 'win32'" },
]
[[package]]
@@ -955,6 +957,12 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/c6/59/7d02447a55b2e55755011a647479041bc92a82e143f96a8195cb33bd0a1c/virtualenv-21.2.0-py3-none-any.whl", hash = "sha256:1bd755b504931164a5a496d217c014d098426cddc79363ad66ac78125f9d908f", size = 5825084, upload-time = "2026-03-09T17:24:35.378Z" },
]
[[package]]
name = "walker"
version = "0.0.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d6/60/27737c77b9447b08baa7796f3ab210e22d4d4bfbdfd4f49a7d932be27efb/walker-0.0.2.tar.gz", hash = "sha256:50d3e3fac38d88383a471e27eff2740ac77a838d577c795997434c597eee333d", size = 11659, upload-time = "2014-09-13T07:37:38.531Z" }
[[package]]
name = "zipp"
version = "3.23.0"