GNOME Control Center: List and handle IPP print services for the New Architecture
Work Summary
Finalized the new printing architecture for GNOME, creating a merge request for GCC 50 that adds support for driverless IPP printers and printer applications with intuitive grouping. Resolved duplicate printer entries by updating discovery from cupsGetDests() to cupsEnumDests().
Introduction
1 contributor full-size (350 hours), Level of difficulty: Hard
Modern printing on Linux is centered around driverless IPP printers and Printer Applications. Instead of managing traditional queue-centric workflows, desktop tooling now needs to discover, group, and manage IPP print services in a way that matches the new printing architecture.
This project extended GNOME Control Center to better support that model. The work focused on presenting driverless IPP printers and Printer Applications cleanly inside the desktop printer settings experience, improving service discovery behavior, and reducing duplicate entries.
Project Goals
- Add support for the new OpenPrinting architecture in GNOME Control Center.
- Improve discovery and grouping of driverless IPP printers and Printer Applications.
- Resolve duplicate printer listings and make the UI more intuitive.
- Prepare the work for upstream integration in newer GNOME Control Center releases.
Current Outcome
The project was completed successfully in GSoC 2025. The resulting work finalized the new printing architecture support for GNOME Control Center, including an upstream merge request for GCC 50 and a discovery update from cupsGetDests() to cupsEnumDests() to avoid duplicate printer entries.
Mentors
Till Kamppeter, Shivam Mishra, Mohit Verma
Desired knowledge
C/C++, GTK, DNS-SD/Avahi, CUPS/IPP
Code License
GPL-2+ and LGPL-2+