-
Notifications
You must be signed in to change notification settings - Fork 589
Add development setup guides and Docker configuration #2322
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,199 @@ | ||||||||||||||||
| # Guake Docker Setup | ||||||||||||||||
|
|
||||||||||||||||
| Since Guake is a Linux GTK application, Docker provides the cleanest way to test and run it on macOS. | ||||||||||||||||
|
|
||||||||||||||||
| ## Prerequisites | ||||||||||||||||
|
|
||||||||||||||||
| - Docker and Docker Compose installed | ||||||||||||||||
| - For GUI testing: XQuartz (macOS) or X11 server (Linux) | ||||||||||||||||
|
|
||||||||||||||||
| ## Quick Start | ||||||||||||||||
|
|
||||||||||||||||
| ### 1. Build the Docker Image | ||||||||||||||||
| ```bash | ||||||||||||||||
| docker build -t guake:dev -f Dockerfile.dev . | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| ### 2. Using Docker Compose (Recommended) | ||||||||||||||||
| ```bash | ||||||||||||||||
| docker-compose -f docker-compose.dev.yml up | ||||||||||||||||
|
|
||||||||||||||||
| # In another terminal, connect to the container: | ||||||||||||||||
| docker exec -it guake-dev /bin/bash | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| ### 3. Manual Docker Run | ||||||||||||||||
|
|
||||||||||||||||
| #### Linux Users: | ||||||||||||||||
| ```bash | ||||||||||||||||
| docker run -it --rm \ | ||||||||||||||||
| -v /tmp/.X11-unix:/tmp/.X11-unix:rw \ | ||||||||||||||||
| -e DISPLAY=$DISPLAY \ | ||||||||||||||||
| -v ${PWD}:/guake:rw \ | ||||||||||||||||
| guake:dev /bin/bash | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| #### macOS Users: | ||||||||||||||||
|
|
||||||||||||||||
| First, install and start XQuartz: | ||||||||||||||||
| ```bash | ||||||||||||||||
| brew install xquartz | ||||||||||||||||
| open -a XQuartz | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| Configure X11 to accept connections from Docker: | ||||||||||||||||
| ```bash | ||||||||||||||||
| defaults write org.macosforge.xquartz.X11 nolisten_tcp -boolean false | ||||||||||||||||
| pkill -9 Xvfb; true | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| Then run Docker: | ||||||||||||||||
| ```bash | ||||||||||||||||
| docker run -it --rm \ | ||||||||||||||||
| -e DISPLAY=host.docker.internal:0 \ | ||||||||||||||||
| -v ${PWD}:/guake:rw \ | ||||||||||||||||
| guake:dev /bin/bash | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| Or use socat tunnel: | ||||||||||||||||
| ```bash | ||||||||||||||||
| # Terminal 1: Start socat | ||||||||||||||||
| brew install socat | ||||||||||||||||
| socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CONNECT:/tmp/.X11-unix/0 & | ||||||||||||||||
|
|
||||||||||||||||
| # Terminal 2: Run Docker | ||||||||||||||||
| docker run -it --rm \ | ||||||||||||||||
| -e DISPLAY=host.docker.internal:0 \ | ||||||||||||||||
| -v ${PWD}:/guake:rw \ | ||||||||||||||||
| guake:dev /bin/bash | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| ## Inside the Container | ||||||||||||||||
|
|
||||||||||||||||
| ### Setup (if not already done) | ||||||||||||||||
| ```bash | ||||||||||||||||
| cd /guake | ||||||||||||||||
| make dev | ||||||||||||||||
| sudo make install-schemas | ||||||||||||||||
|
||||||||||||||||
| sudo make install-schemas | |
| make install-schemas |
Copilot
AI
Apr 19, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The “Image Details” section claims the Dockerfile provides “Full locale support”, but Dockerfile.dev does not install/configure locales (or run locale-gen). Either add locale setup to the Dockerfile or adjust this bullet so it matches what the image actually contains.
| - **Locale:** Full locale support | |
| - **Locale:** Default Ubuntu locale settings |
Copilot
AI
Apr 19, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The “Use Different Python Version” section suggests building with --build-arg PYTHON_VERSION=..., but Dockerfile.dev does not declare or use an ARG PYTHON_VERSION, so the example won’t have any effect. Either add build-arg support to Dockerfile.dev or adjust the documentation to match the current Dockerfile.
| ```bash | |
| docker build -t guake:py39 --build-arg PYTHON_VERSION=3.9 -f Dockerfile.dev . | |
| `Dockerfile.dev` does not currently support selecting the Python version via | |
| `--build-arg PYTHON_VERSION=...`. To use a different Python version, update | |
| `Dockerfile.dev` to install the version you need, then rebuild the image: | |
| ```bash | |
| docker build -t guake:dev -f Dockerfile.dev . |
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
| @@ -0,0 +1,73 @@ | ||||
| FROM ubuntu:22.04 | ||||
|
|
||||
| LABEL maintainer="guake" | ||||
| LABEL description="Guake Terminal Development Container" | ||||
|
|
||||
| # Prevent interactive prompts during installation | ||||
| ENV DEBIAN_FRONTEND=noninteractive | ||||
| ENV PYTHONUNBUFFERED=1 | ||||
|
|
||||
| # Install system dependencies | ||||
| RUN apt-get update && apt-get install -y \ | ||||
| # Build tools | ||||
| build-essential \ | ||||
| python3-dev \ | ||||
| python3-pip \ | ||||
| git \ | ||||
| # GTK and UI libraries | ||||
| libgtk-3-0 \ | ||||
| libgtk-3-dev \ | ||||
| libvte-2.91-0 \ | ||||
| libvte-2.91-dev \ | ||||
| libkeybinder-3.0-0 \ | ||||
| libkeybinder-3-dev \ | ||||
| # Gettext for translations | ||||
| gettext \ | ||||
| # D-Bus for communication | ||||
| dbus \ | ||||
| # X11 and display | ||||
| libx11-dev \ | ||||
| x11-apps \ | ||||
| x11-utils \ | ||||
| # Additional utilities | ||||
| curl \ | ||||
| wget \ | ||||
| vim \ | ||||
| less \ | ||||
| # Required for GObject introspection | ||||
| gir1.2-gtk-3.0 \ | ||||
| gir1.2-vte-2.91 \ | ||||
| gir1.2-glib-2.0 \ | ||||
| libglib2.0-dev \ | ||||
| # GLib schemas | ||||
| dconf-gsettings-backend \ | ||||
| gsettings-desktop-schemas \ | ||||
| && rm -rf /var/lib/apt/lists/* | ||||
|
Comment on lines
+10
to
+45
|
||||
|
|
||||
| # Install Python dependencies | ||||
| RUN pip install --upgrade pip setuptools wheel && \ | ||||
| pip install pipenv | ||||
|
|
||||
| # Create app directory | ||||
| WORKDIR /guake | ||||
|
|
||||
| # Copy project files | ||||
| COPY . . | ||||
|
|
||||
| # Setup development environment | ||||
| RUN make dev && \ | ||||
| make prepare-install && \ | ||||
|
||||
| make prepare-install && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This command looks incorrect for restarting XQuartz:
pkill -9 Xvfb; true. Xvfb is typically not used on macOS with XQuartz, and this may do nothing or target an unrelated process. Update this step to restart XQuartz (or document the correct process) so the instructions are actionable.