23 September 2019 CamBam on Linux


Step 1. Install the Mono framework

CamBam for Linux relies on the Mono .NET framework.

It is highly recommended to install the latest mono framework available for your Linux distribution.

Instructions for various Linux flavours are given on the mono-project download page.

Once the correct mono repositories are set up, install the mono-complete package.

sudo apt-get install mono-complete

Step 2. Download the CamBam system files

Download and extract the following to the ~/.config folder : ~/.config/CamBam plus 1.0

CamBam1.0-mono.system.tgz (253 KB)

tar -C ~/.config --skip-old-files -xzf ~/Downloads/CamBam1.0-mono.system.tgz

Step 3. Download the CamBam program binaries

Download the appropriate program archive for your Linux distribution, then extract the archive into the root of your home folder : ~/CamBam1.0

tar -C ~/ -xzvf ~/Downloads/CamBam1.0-mono-rc3-<release>.tgz

If you have a CamBam license file (CamBamPro.lic) this can be copied into the same folder as the as the program binaries.

Create a program launcher using the 'install-launcher.sh' script located in the CamBam program folder. This will create a 'CamBam 1.0' icon in the Graphics category. Tested on Ubuntu, Mint and Raspberry Pi.


CamBam V1.0 development version (rc-3)

WARNING! These versions are still under development or undergoing periods of public testing. These releases should be used with caution as they may contain bugs or give unexpected results. It is strongly recommended to use a simulator or run air-cuts before running g-code generated from these versions on any CNC machinery.

Released 21 October 2019 build 1.0.7233.21741 (rc-3)

Release notes

Comments and feedback...

Ubuntu 18 based Linux / Mint 19...

CamBam1.0-mono-rc3-ubuntu18.tgz (14.0 MB)

Ubuntu 16 based Linux / Mint 18...

CamBam1.0-mono-rc3-ubuntu16.tgz (14.0 MB)

Ubuntu 14 64 bit...

CamBam1.0-mono-rc3-ubuntu14-64bit.tgz (14.0 MB)

Ubuntu 14 32 bit...

CamBam1.0-mono-rc3-ubuntu14-32bit.tgz (13.9 MB)

Raspberry Pi...

CamBam1.0-mono-rc3-raspi.tgz (13.9 MB)
Raspberry Pi installation notes...

Step 4 - Configuration

Alt+Drag window rotation

Most Linux windows managers use the Alt+Drag mouse/keyboard combination to drag and move windows. This blocks the same default combination used by CamBam to rotate the drawing view.

In CamBam, you can also hold down the Windows Key + Alt then drag to rotate the view.

Another work around for this is to assign a different key combination for windows dragging such as the 'Windows' or 'Super' key.

The details for this vary between Linux distributions and window managers. Some specific examples are shown below.


From a terminal window or a shell script, execute the following:

cd ~/CamBam1.0

Limitations / Problems we are aware of

  • Alt+Dragging for 3D rotation often conflicts with Linux window dragging modes. See distribution specific notes to disable these modes or change them to use the Windows key.
  • Cut/Paste seems flaky on KDE. Invoking Klipper SHIFT+CTRL+V then clear clipboard history seems to fix. Gnome seems OK.
  • Python Scripting is working, but JScript and VBScript are currently not available.
  • Currently no 40 free evaluation uses. CamBam will run as though in expired evaluation mode unless a license file is detected in the program directory. This will restrict gcode output to around 1000 lines for unlicensed use.
  • Crashes when opening files on older Linux systems - please try the V1 development release


For maximum compatibility we recommend installing Mono Framework 4.6 or later libraries.
Older libraries can work, but there are known problems with scripting and printing when using older mono libraries.
If you are not sure which mono libraries are installed, use the following command:

dpkg --list | grep libmono

For Debian/Ubuntu systems, getting the latest libraries may involve adding the mono sources to the list of repositories by using the following commands, then reinstalling the mono-complete package:

Ubuntu 18.04 / Linux Mint 19
sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
Ubuntu 16.04 / Linux Mint 18
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
sudo apt install apt-transport-https ca-certificates
echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

If an older version of mono is already installed, the following command may be needed to first remove it to allow an upgrade.

sudo apt-get remove mono-runtime

Dependencies for maximum compatibility...

For maximum compatibility, we recommend installing the mono-complete package.

On distributions that support aptitude / apt-get, the following commands can be used to install mono and the required libraries:

sudo apt-get install mono-complete

Minimal dependencies...

For a minimal installation, the following packages may suffice...

  • mono-runtime
  • libmono-system-windows-forms4.0-cil
  • libmono-system-web4.0-cil
  • libmono-system-design4.0-cil
  • libmono-system-numerics4.0 (for python scripting)

The following commands can be used to install the minimally required libraries...

sudo apt-get install mono-runtime
sudo apt-get install libmono-system-windows-forms4.0-cil
sudo apt-get install libmono-system-web4.0-cil
sudo apt-get install libmono-system-design4.0-cil
sudo apt-get install libmono-system-numerics4.0-cil

Linux Mint 18.*, 19.* (with cinnamon)

From the system menu navigate to Preferences > Windows

In the 'Behaviour' section, under 'Moving and Resizing Windows', change the 'Special key to move and resize windows' to '<Super>'


Ubuntu 16, Ubuntu 14, Ubuntu 12.*

To disable ALT+Drag window dragging:

Install the dconf-editor package

sudo apt-get install dconf-editor

Start dconf-editor the browse to the following key:

org » gnome » desktop » wm » preferences » mouse-button-modifier

Change the value to '<Super>' or perhaps '<Alt> + <Super>'


Ubuntu 11.10 (Oneiric Ocelot)

To disable ALT+Drag window dragging:

To disable alt dragging...

gconftool-2 --set /apps/metacity/general/mouse_button_modifier --type string disabled

Or to use the Windows key rather than Alt...

gconftool-2 --set /apps/metacity/general/mouse_button_modifier --type string '<SUPER>'

To restore the behaviour to the Alt key...

gconftool-2 --set /apps/metacity/general/mouse_button_modifier --type string '<Alt>'

Alternatively, install the graphical GConf tool : gconf-editor to change the above setting.


The latest version of Ubuntu installs the core Mono packages.

Use the apt-get methods listed above to install the other required libraries.


Ubuntu 10.04 (Lucid Lynx)


The default source repositories for this release have out of date versions of the Mono framework and libraries so an alternative repository needs to be specified.

Open the 'Ubuntu Software Center' application.

Edit - Software Sources

Click the Other Software tab, then the Add button.

Add the following apt line, then click Add Source:

deb http://badgerports.org lucid main

Next we need to authenticate this source.

The following link contains more details on using the badgerports repository as well as a link to a key file that needs to be downloaded:

In the Ubuntu Software Center, Software Sources section, select the Authentication tab, then Import Key File and select the PGP key you downloaded : (directhex.ppa.asc)

Close the software sources window and the packages cache should then rebuild.

Now click 'Get Software' then search for and install the following packages: (Before you click install, select the More info button. The version reported should read ... if not then the adding the new source repository didn't work).

  • mono-runtime
  • libmono-system-windows-forms4.0-cil
  • libmono-system-web4.0-cil
  • libmono-system-design4.0-cil
  • libmono-system-numerics4.0-cil

To disable ALT+Drag window dragging:

System - Preferences - Windows

Then set the Movement key to use the Super (Windows Logo) key, rather than Alt. This will allow you to use Alt - Dragging for rotation in CamBam.

Forum Comments


Linux Mint

Use the same instructions as Ubuntu

To disable ALT+Drag window dragging:

Use the gconftool-2 as per Ubuntu. Note, if using the graphical configuration editor, metacity is not listed so the command line tool still needs to be used. There is a similar setting under marco but this seems to be ignored.


Raspberry Pi

Make sure the latest Mono framework is installed.

Rasbian 10...
sudo apt install apt-transport-https dirmngr gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/debian stable-raspbianbuster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
Rasbian 9...
sudo apt install apt-transport-https dirmngr gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/debian stable-raspbianstretch main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
Now install mono-complete...
sudo apt install mono-complete

OpenGL mode does not work at the moment (We will investigate using OpenGL ES for later releases). Change the System – Configuration – Display Mode to GDI for now, then restart CamBam. OpenGL_Legacy says it works, but is slow and horrible (it is likely using software emulation).

To disable ALT+Drag window dragging:

For Raspbian with openbox lxde window manager, edit the following configuration file:

nano ~/.config/openbox/lxde-pi-rc.xml

If this file does not exist, try the following configuration file:

sudo nano /etc/X11/openbox/lxde-pi-rc.xml

Use CTRL+W to search for "A-Left" (include the double quotes in the search).
You should find the following section. Change the three "A-Left" texts to "W-Left"
(W stands for the Windows key).

<context name="Frame">
      <mousebind button="W-Left" action="Press">
        <action name="Focus"/>
        <action name="Raise"/>
      <mousebind button="W-Left" action="Click">
        <action name="Unshade"/>
      <mousebind button="W-Left" action="Drag">
        <action name="Move"/>

Save the file then run the following command or just restart your raspberry pi.

openbox --reconfigure


To disable ALT+Drag window dragging:

Applications -> Configure Desktop -> Window Behaviour -> Window Behaviour -> Window Actions
On bottom section: Inner Window, Titlebar & Frame
Modifier key : Alt (default)
Set Left button: Nothing



To disable ALT+Drag window dragging:

Computer -> System Settings -> Window Behaviour -> Window Behaviour -> Window Actions
On bottom section: Inner Window, Titlebar & Frame
Modifier key : Alt (default)
Set Left button: Nothing


Use the apt-get methods listed above to install the mono-runtime and other required libraries.


<< 1 >> 
#  Ken Sribnick 13/11/2013 18:34:11
I recently made a CNC mill for home woodworking.
For the last three weeks, I have been 'learning'
to install CamBam0.9.8N on my Linux laptop hoping
to later pass files to Windows/Mach3 when milling.

CamBam just loaded for the first time, but
indicates: "Your evaluation has expired," "Some
functionality will be disabled," and "Plugins

Do you have a way for a first-time user to get
a current release Linux evaluation copy?
To be honest, if I buy your software and don't
end up using it, my wife will be hard to face.

Thank you in advance,

Ken Sribnick
Amateur Ukulele Maker
Dallas, Texas USA
Reply Quote   16  
#  anon 18/11/2013 10:25:31
CamBam just loaded for the first time, but
indicates: "Your evaluation has expired," "Some
functionality will be disabled," and "Plugins

I am sorry about this Ken, but the Linux version currently does not support the 40 fully functional evaluation sessions due to incompatibilities with the code we use to make this happen in Windows.

In recognition of this, we have increased the free g-code limit from 500 to 1000 lines, which may be adequate for many small jobs and to get an idea if CamBam will work for you.

You are welcome to install CamBam on other Windows machines or a VM to test the full functionality. However, other than the g-code line limit, the only other difference should be the ability to use plugins.
Reply Quote   14  
#  anon 20/02/2014 14:54:11
Seems the package is broken on Ubuntu 13.10. Cambam opens fine, but if you select a .cb file the program crashes. Strangely, if you continue to try open the file sometimes it suddenly works. I would really appreciate if this could be fixed. Surely it can be only a minor bug.
Kind regards,
Reply Quote   15  
#  Mike Kirkpatrick 07/01/2018 00:19:19
To disable Alt+Drag window dragging on Linux XFCE (Jessie) go to Applications Menu->Settings->Window Manager Tweaks and choose the Accessibility tab. Choose a different key from the choice gadget referenced by "Key used to grab and move windows".

Reply Quote   14  
#  Bill Stoner 05/06/2018 17:36:05
Linux version of 1.0 alpha. When attempting to exit a point collection edit screen using the cancel button, received an "Error setting value" Warning message. Seems reasonable since I did leave a blank field, however, clicking 'OK' does not put you back in the edit screen and you are stuck there. Tried several different escape methods, but nothing works. Can't even kill the app. The Point Edit screen and the warning message appear to be separate processes that don't shutdown when you kill the main app. I did finally get the edit screen to update the errant field by continually entering a 0 on the keyboard and banging on the OK button in the warning screen. Not a game stopper, just an annoyance.

Worth noting that I am have good results drawing 2d objects and generating g-code for linuxcnc. No problems so far.
Reply Quote   15  
#  Kimokee 11/01/2019 17:06:11
Greetings, I have tied running in Linux but no icons appear on the tool bar.
Reply Quote   10  
#  kimokee 11/01/2019 21:40:04
OK I got Icons with version 1.0 but the menu is extremely faint to see any Ideas I am running a Debian machine LMDE 3 with the latest mono any ideas?
Reply Quote   11  
#  Tim Hawkins 16/08/2020 20:25:27
Have you considered releasing Cambam for Linux under either flatpak or appimage formats, its a single self installing image that packages all the dependancies, and is install-able on almost any distribution from a single release.


PS: don't bother with snap, which is pretty much Ubuntu only, which kind of defeats the purpose.

PPS: i run Fedora and Centos
Reply Quote   4  
#  TonyCureington 22/09/2020 22:30:20
I agree with Tim Hawkins, a single file is the way to go for most users. I use an AppImage FreeCAD binary.... allows me to test out the latest version without having to install libs and such - and I can easily revert back to the older version if needed. A single file makes life simple for folks not wanting to play system admin installing packages... and maintain those packages. I would like to give CamBam a try, but honestly it's not worth the effort/time at the moment given other easier to test packages available that may meet my needs. If one of them meets my needs, you have just lost a paying customer. Loading packages may be easy, but nothing is easier than a single file I've learned by using different FreeCAD AppImages. https://appimage.org/ However, I must say, thanks for making this available on Linux! I may be back... :-)
Reply Quote   3  
#  TonyCureington 01/10/2020 23:25:24
I just tried running under Ubuntu and got the below error... looked and looked and could not find a solution.

tony@ubuntu-qemu:~/CamBam1.0$ ./cambam.sh
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: A null reference or invalid value was found [GDI+ status: InvalidParameter]
at CamBam.CamBamMain.Main () [0x000f3] in <2ad4f26eed014673a6b4706ec777765b>:0

tony@ubuntu-qemu:~/CamBam1.0$ uname -a
Linux ubuntu-qemu 5.4.0-42-generic #46~18.04.1-Ubuntu SMP Fri Jul 10 07:21:24 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

tony@ubuntu-qemu:~/CamBam1.0$ cat /etc/os-release
VERSION="18.04.5 LTS (Bionic Beaver)"
PRETTY_NAME="Ubuntu 18.04.5 LTS"
Reply Quote   1  
#  dunk 30/12/2021 13:04:53
Great to see a Linux version.

Something i'm struggling with is font sizes and widget sizes.
I'm on Ubuntu 20.04.3 LTS but i presume this is an issue for any Gnome based OS.

Fonts and Widget sizes should match the system's defaults but on my system are only about 2/3 of the correct size.
Reading a little online is seems this is a problem with Mono (the .NET implementation used) rather than CamBam it's self so i'm are probably stuck with it.

Get my glasses.

Limitations of this approach:
- I'm too lazy and forgetful. Being realistic, it's not going to happen every time.

Install gnome-tweaks and adjust the font size:
Fonts -> Scaling Factor

Limitations of this approach:
- It changes the font size for everything on the system.
- It only changes the font size (and any widget that scales to fit it's contents) not the default widgets but it's fairly usable.

Use a xpra session to run CamBam and connect to it locally.
The "run_scaled" script at https://github.com/kaueraal/run_scaled wraps xpra nicely.
The following worked for me:

(cd ~/CamBam1.0/ && wget https://raw.githubusercontent.com/kaueraal/run_scaled/master/run_scaled)
sudo chmod +x ~/CamBam1.0/run_scaled
sudo apt install xvfb xpra x11-xserver-utils

Start CamBam with something like:

~/CamBam1.0/run_scaled --opengl=no --scale=1 ~/CamBam1.0/cambam.sh

Note that you pass "--scale=1" to the script so it launches CamBam at the default size.
Now you can scale the whole window using the little green "xpra" icon in the top toolbar.

Picture -> Scaling -> 125%

Limitations of this approach:
- Starting a whole headless X server feels like complete overkill but works well for me. I've not found anything to complain about so far.

Hope this helps someone.
Reply Quote   1  

name: Rate this article

Name, url and e-mail are optional. E-mail addresses will NOT be displayed, but please provide one if you would like a reply.
If your comment or url is not displayed immediately, it may be awaiting approval.
The following BBCode formatting codes are supported : [b], [i], [u], [code], [quote], [list], [*]
Your comments...

Submit Comment