Teil1: Linux support is completely broken out of the box - Inside a list with all bugs you must repair
i have the complett working version with all bugs repaired!
Here start my list :
│ – multiple critical bugs prevent installation and
│ playback
Nachricht:
Please do not advertise or package this
application for Linux if it has never been tested
on a Linux environment. Out of the box, this
package is completely unusable on Linux and fails
at almost every fundamental layer (installation,
GUI layout, directory browsing, and video playback).
It required an AI-assisted deep overhaul of
multiple files in your codebase just to get the
application to install and launch without crashing.
Here is a summary of the critical bugs that are
present in your release:
1. Broken Requirements & Build Failures:
- `requirements.txt` includes unnecessary
platform-specific C-extension packages like evdev
that fail to compile under standard Linux/Conda
environments without host toolchains.
2. Hardcoded Windows VLC Arguments (No Playback):
- You hardcoded Windows-only VLC arguments (`-
-avcodec-hw=dxva2, --vout=direct3d11, --
aout=waveout). On Linux 64-bit with VLC 3.0, passing these options causes libvlc_new() to fail immediately (vlc.Instance() returned None`). As a
result, neither the preview player nor the main
player could initialize or render video.
3. Infinite Recursion Crash on Directory
Navigation (RecursionError):
- get_available_drives() hardcodes only
['/mnt', '/media']. Common modern Linux mount
locations like /run/media/... (external
disks/USB) were completely ignored.
- When navigating into any directory not found
in the initial tree, refresh_tree_view()
recursively calls itself without any exit condition
or retry limit, leading to an immediate
RecursionError: maximum recursion depth exceeded
and application freeze/crash.
4. Broken Window Embedding & Fullscreen Handling:
- On Linux X11, VLC requires `set_xwindow`
instead of set_hwnd to embed video properly.
- Calling state('zoomed') throws a fatal
Tkinter error on Linux (bad argument "zoomed": must be normal, iconic, or withdrawn).
5. Case Sensitivity & Broken Icon Paths:
- Linux filesystems are case-sensitive. Mixing
.PNG and .png in asset references caused
missing icon crashes (folder.png vs folder.PNG).
- load_icons() blindly accessed self. parent.default_directory. When embedded inside
preview frames, parent is a CTkFrame, throwing
AttributeError.
- controls_frame was accessed even when
embed=True, causing unhandled exceptions.
Please properly test your project on actual Linux
distributions before shipping releases or declare
it Windows-only.
──────
Deutsche Übersetzung (zur Kontrolle)
│ Betreff: Linux-Support ist von Haus aus komplett
│ kaputt – mehrere kritische Fehler verhindern
│ Installation und Wiedergabe
│
│ Bitte bietet diese Anwendung nicht für Linux an,
│ wenn sie nie auf einer Linux-Umgebung getestet
│ wurde. Im Auslieferungszustand ist dieses Paket
│ auf Linux völlig unbrauchbar und scheitert auf
│ fast jeder grundlegenden Ebene (Installation, GUI-
│ Layout, Ordnernavigation und Videowiedergabe).
│
│ Es war eine tiefgreifende, KI-unterstützte
│ Überarbeitung mehrerer Dateien in eurer Codebasis
│ nötig, nur damit sich die Anwendung überhaupt
│ installieren und ohne Absturz starten lässt.
│
│ Hier ist eine Zusammenfassung der kritischen
│ Fehler, die in eurem Release enthalten sind:
│
│ 1. Fehlerhafte Abhängigkeiten & Build-Abbrüche:
│ • requirements.txt enthält unnötige
│ plattformspezifische C-Pakete wie evdev, die
│ sich in Standard-Linux/Conda-Umgebungen ohne
│ Host-Compiler nicht bauen lassen.
│ 2. Hartkodierte Windows-VLC-Parameter (keine
│ Videowiedergabe):
│ • Es wurden reine Windows-Optionen fest
│ verdrahtet (--avcodec-hw=dxva2, --
│ vout=direct3d11, --aout=waveout). Unter Linux
│ 64-bit mit VLC 3.0 führen diese Optionen dazu,
│ dass die Initialisierung sofort abbricht (vlc.
│ Instance() returned None). Weder die Vorschau
│ noch der Haupt-Player konnten starten.
│ 3. Endlos-Rekursionsabsturz beim Ordneraufruf
│ (RecursionError):
│ • get_available_drives() berücksichtigte nur
│ ['/mnt', '/media']. Gängige Linux-
│ Einhängepunkte wie /run/media/... (externe
│ Platten/USBs) wurden völlig ignoriert.
│ • Beim Aufrufen eines Ordners, der nicht im
│ Baum gefunden wurde, rief sich
│ refresh_tree_view() endlos selbst auf, bis
das
│ Programm mit einem RecursionError einfror bzw.
│ abstürzte.
│ 4. Fehlerhafte Fenstereinbettung &
│ Vollbildsteuerung:
│ • Unter Linux (X11) benötigt VLC set_xwindow
│ statt set_hwnd, um Videos im Fenster
│ einzubetten.
│ • Der Aufruf von state('zoomed') wirft unter
│ Linux einen Tkinter-Fehler.
│ 5. Groß-/Kleinschreibung & defekte Icon-Pfade:
│ • Linux-Dateisysteme unterscheiden strikt
│ Groß-/Kleinschreibung. Das Durcheinander von .
│ PNG und .png führte zu Dateifehlern.
│ • load_icons() griff blind auf self.parent.
│ default_directory zu, was bei CTkFrame-
│ Elternelementen im Vorschaumodus einen
│ AttributeError warf.
│ • Auf controls_frame wurde zugegriffen,
obwohl
│ embed=True aktiv war.
│
│
│ Bitte testet euer Projekt auf echten Linux-
│ Distributionen, bevor ihr Releases veröffentlicht,
│ oder deklariert es ehrlich als reine Windows-
│ Software.*
