A GTK4 application written in Rust that discovers and lists SMB (Samba) printers available on the local network.
It is also small project for me to learn Rust. So, the code might be ugly, but for now it works... at least most of the time. It is still in early development, so expect bugs, crashes, and missing features.
DO NOT use this in production or expect it to work flawlessly.
Samba Printer Finder focuses on one thing: discovering SMB printers on your Network and letting you install them through a simple GTK4 UI. Nothing more, nothing less.
Prebuilt binaries are available for Linux (AppImage and deb) and MacOS (dmg) on the GitHub Releases page.
If you prefer to build from source, see the Build instructions section below.
- Connect to SMB shares using provided credentials.

- Display printer names and their network addresses in a GTK4 interface.

- Select a printer, alter its properties and install it using CUPS.

You need the following dependencies installed on your system:
- Rust (latest stable version)
- GTK4 development libraries (https://gtk-rs.org/gtk4-rs/stable/latest/book/installation.html)
- CUPS development libraries
- Samba development libraries
sudo apt install libgtk-4-dev libcups2-dev libsamba-dev build-essentialsudo dnf install gtk4-devel cups-devel samba-devel gccsudo pacman -S gtk4 cups samba base-develbrew install gtk4 cups samba- Clone the repository.
- Navigate to the project directory.
- Build the project using Cargo:
cargo build --release - Run the application:
cargo run --release
Windows is not officially supported. You may be able to build and run the application using WSL2, but this is untested. Just use the Windows file explorer, it has almost feature parity with this application, except for a nice GTK4 interface.
- Better error handling and user feedback (currently errors are logged to the console only).
- UI/UX improvements.
- Workgroup selection (currently a placeholder).
- Save SMB credentials securely to avoid prompting on every start.
- Localization and internationalization support.
- Unit tests and integration tests.
- Packaging:
- AppImage and Flatpak are first priority for Linux.
- Deb/RPM packages are possible.
- AUR package for Arch Linux could be created in the future.
- macOS: no plans yet, but .dmg or Homebrew formula could be considered.
- Snap: Just... no...
- Load custom PPD files for printers without built-in CUPS support.
- Support for non-SMB printers (IPP, LPD, etc.).
- Advanced printer management (default printer, print jobs). Use system settings.
- Deleting/uninstalling printers. Use system settings.
- Libadwaita support. If this really bothers you, PR are open.
See LICENSE.