Juan Pablo Ugarte f58ba90efd
Bump to Sdk 49
2025-09-21 13:57:08 -04:00
2025-09-08 22:08:26 -04:00
2025-09-21 13:57:08 -04:00
2024-03-11 17:58:37 -04:00
2024-08-15 17:45:27 -04:00
2025-09-21 13:57:08 -04:00
2025-09-01 18:03:09 -04:00
2021-07-21 11:34:42 -03:00
2021-07-21 11:34:42 -03:00
2025-05-14 11:40:44 -04:00
2024-09-12 15:30:24 -04:00
2025-09-21 13:57:08 -04:00
2025-09-12 18:02:35 -04:00
2024-03-25 17:38:13 -04:00
2023-06-01 16:51:56 -04:00
2025-09-01 18:03:09 -04:00
2025-05-14 11:40:44 -04:00
2024-09-25 16:48:24 -04:00

Cambalache

Cambalache is a sophisticated RAD tool for GTK 4 and GTK 3, featuring a clean MVC design and a data model-first philosophy. This architectural approach translates to comprehensive feature coverage with minimal developer intervention for basic support.

Data Model Diagram

To support multiple GTK versions, it renders the workspace out-of-process using a custom Wayland compositor widget based on wlroots.

Merengue Diagram


License

Cambalache is distributed under the GNU Lesser General Public License, version 2.1 (LGPL) as described in the COPYING file.

Tools are distributed under the GNU General Public License, version 2 (GPL) as described in the COPYING.GPL file.


Source Code

Source code lives on GNOME GitLab here

git clone https://gitlab.gnome.org/jpu/cambalache.git

Dependencies

  • Python 3 - Cambalache is written in Python
  • Meson build system
  • GTK 3 and 4
  • python-gi - Python GTK bindings
  • python3-lxml - Python libxml2 bindings
  • Casilda - Workspace custom compositor

Flathub

Flathub is the place to get and distribute apps for all of desktop Linux. It is powered by Flatpak, allowing Flathub apps to run on almost any Linux distribution.

Instructions on how to install Flatpak can be found here.

You can get the official build here

Installation

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user flathub ar.xjuan.Cambalache

Flatpak

Build Dependencies

Use the following commands to install build dependencies:

flatpak remote-add --user --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
flatpak install --user org.gnome.Sdk//master
flatpak install --user org.gnome.Platform//master

Building Your Bundle

Build your bundle with the following commands:

flatpak-builder --force-clean --repo=repo build ar.xjuan.Cambalache.json
flatpak build-bundle repo cambalache.flatpak ar.xjuan.Cambalache
flatpak install --user cambalache.flatpak

Or if you have make installed in your host:

make install

This will create the Flatpak repository, then the bundle and install it.

Running

flatpak run --user ar.xjuan.Cambalache//master

Manual Installation

This is a regular Meson package and can be installed the usual way.

# Configure project in _build directory
meson setup --wipe --prefix=~/.local _build .

# Build and install in ~/.local
ninja -C _build install

To run it from .local/ you might need to setup a few environment variables depending on your distribution:

export PYTHONPATH=~/.local/lib/python3/dist-packages/
export LD_LIBRARY_PATH=~/.local/lib/x86_64-linux-gnu/
export GI_TYPELIB_PATH=~/.local/lib/x86_64-linux-gnu/girepository-1.0/
cambalache

Docker

While Docker is not meant for UI applications, it is possible to build an image with Cambalache and run it.

Build the Image

docker build -t cambalache .

Running on Linux

On Wayland:

docker run \
    -e XDG_RUNTIME_DIR=/tmp \
    -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
    -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY  \
    --user=$(id -u):$(id -g) \
    cambalache

On X Server:

xhost +local:
docker run -v /tmp/.X11-unix:/tmp/.X11-unix cambalache

Note: There is no official support for Docker, please use Flatpak if possible.


MS Windows

Instructions to run in MS Windows are here

Note: There is no official support for Windows yet, these instructions should be taken with a grain of salt as they might not work on all Windows versions or be obsolete.


MacOS

Instructions to run in MacOS are here

Note: There is no official support for MacOS yet, these instructions should be taken with a grain of salt as they might not work on all MacOS versions or be obsolete.


Running from Sources

To run it without installing, use the run-dev.sh script. It will automatically compile Cambalache under the .local directory and set up all environment variables needed to run the app from the source directory. (Follow manual installation to ensure you have everything needed)

./run-dev.py

This is meant for Cambalache development only.


Contributing

If you are interested in contributing, you can open an issue here and/or a merge request here


Contact

You can hang with us and ask us questions on Matrix at #cambalache:gnome.org

Join us on Matrix


Financial Support

You can financially support Cambalache development on Liberapay or Patreon like all these people did.

Liberapay

  • Liberapay is a recurrent donations platform
  • Run by a non-profit organization
  • Source code is public
  • No commission fee
  • ~5% payment processing fee

Patreon

  • Patreon is a membership platform for creators
  • Run by private company
  • No source code available
  • ~8% commission fee
  • ~8% payment processing fee

cmb-catalog-gen

This tool is used to generate Cambalache catalogs from GIR files.

A catalog is a XML file with all the necessary data for Cambalache to produce UI files with widgets from a particular library, this includes the different GTypes, with their properties, signals and everything else except the actual object implementations.

Description
Cambalache is a new RAD tool for Gtk 4 and 3 with a clear MVC design and data model first philosophy.
Readme 17 MiB
Languages
Python 95.9%
Meson 1.5%
C 1.2%
CSS 0.7%
Makefile 0.6%
Other 0.1%