diff --git a/.gitignore b/.gitignore index 0a8a145..bc4bdcf 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,8 @@ __pycache__/ *.py[cod] *$py.class +.idea/* + # C extensions *.so diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..774c037 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,54 @@ +# Use the official Python slim image +FROM python:3.11-slim + +# Install system dependencies including Tkinter, Xvfb, and X11 utilities +RUN apt update && apt install -y \ + git \ + tk \ + tcl \ + libx11-6 \ + libxrender-dev \ + libxext-dev \ + libxinerama-dev \ + libxi-dev \ + libxrandr-dev \ + libxcursor-dev \ + libxtst-dev \ + tk-dev \ + xvfb \ + x11-apps \ + x11vnc \ + fluxbox \ + && rm -rf /var/lib/apt/lists/* + + +WORKDIR /app + +RUN mkdir ~/.vnc +RUN x11vnc -storepasswd 1234 ~/.vnc/passwd + +COPY . . + + +RUN pip install --no-cache-dir \ + pyyaml \ + pyasn1==0.4.8 \ + git+https://github.com/etingof/pysnmp.git@master#egg=pysnmp \ + pyasyncore \ + tkcalendar \ + pyperclip \ + black \ + tomli \ + text-console + +# Set the DISPLAY environment variable for Xvfb +ENV DISPLAY=:99 + +COPY start.sh /start.sh +RUN chmod +x /start.sh + +# Expose the VNC port +EXPOSE 5990 + +# Set the entrypoint to automatically run the script +ENTRYPOINT ["/start.sh"] diff --git a/README.md b/README.md index 613a4ad..49f6e81 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,33 @@ The software also includes a configurable printer dictionary, which can be easil Note on the ink waste counter reset feature: resetting the ink waste counter is just removing a lock; not replacing the tank will reduce the print quality and make the ink spill. +## Install-2-go (macOS) +Prerequirements: Docker, TigerVNC + +### 1. Install Tiger VNC Viewer + +```bash +brew install tigervnc-viewer +``` + +### 2. Download Docker Image + +```bash +docker pull mvoreakou/epson-god-mode:latest +``` + +### 3. App run +```bash +docker run --rm --publish 5990:5990 --env HOME=/ mvoreakou/epson-god-mode x11vnc -usepw -create +``` +### 4. Open GUI +Open tiger VNC that was installed on your mac, and fill + +`VNC server:` `localhost:5990` + +Click `Connect` & voila! + + ## Installation Install requirements using *requirements.txt*: diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..a94f38a --- /dev/null +++ b/start.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +echo "Starting Xvfb virtual display..." +Xvfb :99 -screen 0 1280x800x24 & + +sleep 2 + +echo "Creating minimal Fluxbox config..." +mkdir -p ~/.fluxbox + +echo "session.screen0.toolbar.visible: false" > ~/.fluxbox/init # Hide toolbar to avoid errors + +echo "Starting Fluxbox window manager..." +fluxbox -log ~/.fluxbox/fb.log & # Redirect logs to a file instead of the console + +sleep 2 + +echo "Starting VNC server..." +x11vnc -display :99 -forever -nopw -bg -rfbport 5990 & + +sleep 2 + +echo "Starting Tkinter application..." +exec python ui.py