- Python 50.2%
- JavaScript 34.6%
- Shell 9%
- C 4%
- Dockerfile 2.2%
| cups-legacy | ||
| docker | ||
| linux | ||
| printer-app | ||
| replacement/src/js | ||
| .env.example | ||
| apply-pm64d.py | ||
| bootstrap-local.sh | ||
| CHANGES-V2.txt | ||
| CHANGES-V3.txt | ||
| CHANGES-V4.txt | ||
| CHANGES.txt | ||
| docker-compose.yml | ||
| Dockerfile | ||
| README.md | ||
snake-label-PM64D fork kit v5
This fork bundles the upstream typingbeaver/snake-label project with the PM64D extension, the Linux printing pieces, and a Docker deployment.
What is included
- Docker Compose deployment for the PM64D fork
- PM64D 100 x 150 mm and 102 x 152 mm output-profile patch, with 102 x 152 mm as the PM64D default
- legacy CUPS PPD + raster-to-TSPL filter
- direct Linux TSPL helper
- PAPPL / Printer Application groundwork
- local bootstrap script
Docker
The Docker build fetches the public upstream typingbeaver/snake-label repository and applies the included PM64D patch during the image build. The resulting web app presents this fork's branding while still running fully client-side after it has been served.
cp .env.example .env
# adjust SNAKE_LABEL_PORT if desired
docker compose build
docker compose up -d
Default URL:
http://HOST:8080
The container does not need USB access. Printing happens through the browser and the locally installed Linux/CUPS printer.
Pinning an upstream branch/tag
.env contains:
SNAKE_LABEL_REF=master
Change this to an upstream branch/tag supported by git clone --branch if you want to pin the build.
Local development fork
./bootstrap-local.sh
cd app
npm install
npm run dev
The bootstrap script clones upstream snake-label, applies the PM64D patch, and prepares the forked UI with upstream attribution in the footer.
PM64D CUPS bridge
Requirements on Arch/CachyOS:
sudo pacman -S cups python-pillow poppler
Install the PPD/filter queue:
./cups-legacy/install-legacy-cups.sh
sudo systemctl restart cups
The installer currently creates PM64D-PPD and detects usb:///PM64D?... automatically.
Check options:
lpoptions -p PM64D-PPD -l
Included presets currently cover 100x150, 102x152, 101x152/4x6-ish, 75x100, 60x40, 50x30, 40x30 plus CUPS custom sizes, 203 dpi, gap/continuous media, direction and density.
Direct TSPL helper
The tested PM64D hardware identifies as USB 2e3c:5760 (QIN LabelPrinter) and accepts TSPL over USB/CUPS with CRLF command endings.
See linux/pm64d-print.py and linux/test-pm64d-tspl.sh.
Future path
printer-app/ contains the groundwork for replacing the legacy PPD/raw workflow with a modern PAPPL/IPP Printer Application. The PPD is deliberately a compatibility bridge, not the long-term architecture.