惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
博客园 - 【当耐特】
量子位
博客园 - 叶小钗
有赞技术团队
有赞技术团队
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
博客园 - 司徒正美
爱范儿
爱范儿
美团技术团队
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
罗磊的独立博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
I
InfoQ
D
DataBreaches.Net
宝玉的分享
宝玉的分享

Danb Blog

August 2026: What I've Been Working On · Danb Blog Great Tech: Intel 2500k CPU · Danb Blog July 2026: What I've Been Working On · Danb Blog My Experience with Ubuntu Desktop 26.04 · Danb Blog Thumbnails for Orca 3MF in GNOME Files · Danb Blog Cheaper Sodastream Gas with a Big Tank · Danb Blog June 2026: What I've Been Working On · Danb Blog Running Snyk On Forgejo/Codeberg Actions · Danb Blog Tuta & Proton: An Open Source Client Does Not Result in an Open Source Service · Danb Blog May 2026: What I've Been Working On · Danb Blog 3D Printing Parts for my Greenhouse, Round 2 · Danb Blog Great Devices: Nexus 7 2013 · Danb Blog R36S Console RetroArch Stuck Menu Issue · Danb Blog April 2026: What I've Been Working On · Danb Blog Basic OpenCode Sandboxing with Docker · Danb Blog Games Played in 2025 · Danb Blog March 2026: What I've Been Working On · Danb Blog Shivam Mathur's "node-docker" Images are Awesome for PHP CI · Danb Blog February 2026: What I've Been Working On · Danb Blog Your BookStackApp project was assigned as a project for my Software Architecture course · Danb Blog My Sovol SV08 3D Printer Setup in 2026 · Danb Blog January 2026: What I've Been Working On · Danb Blog Epson Printer: The administrator password you entered was not recognized · Danb Blog Pressure to Follow Process · Danb Blog Online Shopping Email Notifications · Danb Blog My HomeLab Setup in 2026 · Danb Blog Reporting to the CMA: Google Android Developer Verification · Danb Blog OPNsense & Dnsmasq: Responding with specific DNS servers · Danb Blog An Impromptu Introduction to ZFS Drive Replacement at 1am · Danb Blog Experience with UK Medical Cannabis for Ankylosing Spondylitis · Danb Blog
Linux Label Printing with the Phomemo D30 · Danb Blog
2025-09-20 · via Danb Blog

I was looking to buy a new label printer, and found the modern consumer market is mainly comprised of cheap bluetooth-based thermal printers which are then managed via an app. In theory this is great, but in practice these printers usually require specific questionable applications to be used, often with sign-up/in requirements and widely scoped permission needs. Therefore the use of a specific app is a disqualifier for me.

After a little research, I landed on the Phomemo D30. I liked the look, replacement labels seemed cheap, and I found a couple of existing projects on GitHub specificially to support this printer for Linux.

I could connect to the printer direct with Bluetooth from my Fedora 42 KDE system like any other bluetooth device. To actually print, I chose to try the polskafan/phomemo_d30 Python based library. It was a little old, and therefore did not run on my host system Python version, so I decided to wrap it up in a docker container rather than get my main PC messy with libraries. I needed to specifically use rfcomm on the host system to pass bluetooth through to the container. With that done, i was able to successfully print from Linux!

Animation showing running a command, with a label printing from the portable printer

I probably don’t get the full range of functionality as you would with the app, such as various fonts, symbols, decoration etc… But ultimately I only need text printing, and this works very well with that since it will auto-fit and auto-scale text with multi-line support. Overall, I’m really happy with this cheap, private, and effective solution which serves as yet another great example of the utility of Open Source, and the wonderful community memebers like Polskafan who are building & sharing such libraries.

As referenced above, I wrapped this in a container setup, the Dockerfile of which can be found on Codeberg here along with some more detailed usage guidance.