A secure, memory-safe implementation of a Tailscale GUI management applet for the System76 COSMIC desktop environment. This project demonstrates secure systems programming practices while providing essential functionality for Tailscale network (tailnet) management.
The GUI Scale applet provides a user-friendly interface for managing Tailscale configurations within the COSMIC desktop environment. It showcases secure systems programming practices while maintaining high usability standards.
- Secure Tailscale network (tailnet) management
- Memory-safe implementation in Rust
- Utilizes Rust's ownership system for memory-safety operations
- No unsafe code blocks used
- All external data properly validated
- Buffer overflow protection through Rust's bounds checking
- Comprehensive error handling
- Integration with system security policies
- Proper permission handling for system operations
- Does not run while the Tailscale operator configuration is set to root.
- Minimal system privilege requirements
- Does not run as root
- Proper permission handling for system operations
The applet implements a layered security approach:
- Privilege Management
- Minimal required permissions
- Proper capabilitiy isolation
- Error Handling
- Uses Rust's built-in error types (Result and Option), as well as return other types, such as String and bool, to test for and handle any errors that occurred during runtime
- No information leakage
You must first have Tailscale installed and then run:
sudo tailscale set --operator=$USERThis makes it where the applet doesn't need sudo (root) to do its job.
-
Download the
gui-scale-applet.flatpakbundle from the Releases page. -
Install the required runtime dependency:
flatpak install --user flathub org.freedesktop.Platform//24.08- Install the flatpak bundle:
flatpak install --user gui-scale-applet.flatpak- Clone the repository:
git clone https://github.com/cosmic-utils/gui-scale-applet.git
cd gui-scale-applet
git checkout flatpak- Build and install:
just install-localOr to create a distributable bundle:
just bundleflatpak uninstall --user com.bhh32.gui-scale-applet


