OpenPLC on CachyOS

How to Install OpenPLC Editor on CachyOS (Arch Linux)

OpenPLC Editor is an open-source IEC 61131-3 development environment for ladder logic, structured text, and function block diagrams. Because CachyOS is a rolling-release distribution based on Arch Linux, compiling the editor from source often breaks against cutting-edge system Python and GCC libraries.

Using the official standalone AppImage eliminates Python 3.9/wxPython dependency conflicts, isolates the application, and keeps your system packages clean.

Prerequisites

AppImages require FUSE (Filesystem in Userspace) version 2 to mount and execute properly on Arch-based distributions.

Open your terminal and install fuse2:

Bash

sudo pacman -S --needed fuse2

Step 1: Download OpenPLC Editor AppImage

Create a dedicated local folder for your user applications and download the official AppImage directly from the project release page.

  1. Create the application directory:
    Bashmkdir -p ~/.local/share/apps cd ~/.local/share/apps
  2. Download the AppImage:
  3. Make the AppImage executable:
    Bashchmod +x ~/.local/share/apps/OpenPLC.Editor-*.appimage

Step 2: Extract the Official Application Icon

To give the application a clean look in your desktop application launcher, extract the built-in icon directly from the AppImage payload:

  1. Create your user icons folder:
    Bashmkdir -p ~/.local/share/icons
  2. Extract and copy the icon:
    Bashcd ~/.local/share/apps ./OpenPLC.Editor-*.appimage --appimage-extract "*.png" find squashfs-root -type f -name "open-plc-editor.png" -exec cp {} ~/.local/share/icons/openplc.png \; rm -rf squashfs-root

(Alternative fallback if extraction is skipped):

Bash

curl -sL -o ~/.local/share/icons/openplc.png "https://raw.githubusercontent.com/thiagoralves/OpenPLC_Editor/master/editor/images/bridget.png"

Step 3: Create the Desktop Application Menu Shortcut

Desktop entry files (.desktop) must be placed in ~/.local/share/applications/ to be indexed by desktop environments like KDE Plasma, GNOME, or XFCE.

Important:.desktop files do not expand shell variables like $HOME. You must supply the absolute path to your home directory.

Generate the desktop launcher with this automated script (it automatically inputs your current user path):

Bash

mkdir -p ~/.local/share/applications

cat <<EOF > ~/.local/share/applications/OpenPLC.desktop
[Desktop Entry]
Type=Application
Name=OpenPLC Editor
Comment=IEC 61131-3 PLC Programming Environment
Exec=$HOME/.local/share/apps/$(ls ~/.local/share/apps | grep -i openplc | head -n 1)
Icon=$HOME/.local/share/icons/openplc.png
Terminal=false
Categories=Development;Engineering;IDE;
StartupWMClass=openplc-editor
EOF

Mark the shortcut as executable and refresh your desktop database:

Bash

chmod +x ~/.local/share/applications/OpenPLC.desktop
update-desktop-database ~/.local/share/applications

Step 4: Configure Serial Port Permissions (For Hardware Uploads)

If you plan to flash logic programs to external hardware targets (Arduino, ESP32, Raspberry Pi Pico, Modbus RTU gateways, or serial breakout boards), your user account must belong to the serial communication groups.

On Arch Linux / CachyOS, serial devices are managed by the uucp group (and occasionally dialout or lock):

Bash

sudo usermod -aG uucp,lock $USER

Note: You must log out and log back in (or reboot) for group permissions to take effect.

To verify your active group memberships after re-logging in:

Bash

groups

Quick Reference / Unattended Multi-Machine Setup Script

For quick deployment across other CachyOS or Arch machines, place the downloaded OpenPLC.Editor-*.appimage into ~/Downloads and run this one-liner script:

Bash

#!/usr/bin/env bash
set -e

echo "=== Installing Dependencies ==="
sudo pacman -S --needed fuse2

echo "=== Setting up Directories ==="
mkdir -p ~/.local/share/apps ~/.local/share/icons ~/.local/share/applications

echo "=== Moving and Configuring AppImage ==="
mv ~/Downloads/OpenPLC*.appimage ~/.local/share/apps/
APPIMAGE_PATH=$(ls ~/.local/share/apps/OpenPLC*.appimage | head -n 1)
chmod +x "$APPIMAGE_PATH"

echo "=== Extracting Icon ==="
cd ~/.local/share/apps
"$APPIMAGE_PATH" --appimage-extract "*.png" > /dev/null 2>&1 || true
find squashfs-root -type f -name "*plc*.png" -exec cp {} ~/.local/share/icons/openplc.png \; 2>/dev/null || true
rm -rf squashfs-root

if [ ! -f ~/.local/share/icons/openplc.png ]; then
    curl -sL -o ~/.local/share/icons/openplc.png "https://raw.githubusercontent.com/thiagoralves/OpenPLC_Editor/master/editor/images/bridget.png"
fi

echo "=== Generating Desktop Launcher ==="
cat <<EOF > ~/.local/share/applications/OpenPLC.desktop
[Desktop Entry]
Type=Application
Name=OpenPLC Editor
Comment=IEC 61131-3 PLC Programming Environment
Exec=$APPIMAGE_PATH
Icon=$HOME/.local/share/icons/openplc.png
Terminal=false
Categories=Development;Engineering;IDE;
StartupWMClass=openplc-editor
EOF

chmod +x ~/.local/share/applications/OpenPLC.desktop
update-desktop-database ~/.local/share/applications

echo "=== Adding User to Serial Groups ==="
sudo usermod -aG uucp,lock $USER

echo "=== Installation Complete! OpenPLC Editor is now in your Start Menu. ==="

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.