Improve desktop integration and Debian packaging#13
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR improves Wiretray's desktop integration and prepares the project for Debian-based installation.
The main goal is to make Wiretray behave more like a normal Linux desktop application: install it, open it from the application menu, keep the tray process running in the background, and optionally start it automatically on login.
What's included
Autostart on login
Adds an autostart option to the settings window.
When enabled, Wiretray creates an XDG autostart entry under:
This allows the tray/background process to start automatically after login.
Tray startup from settings
The settings application now starts the tray process automatically when needed.
This means users can open Wiretray from the application menu without manually running
wiretrayfrom the terminal.Expected flow:
Single tray instance
Adds single-instance protection for the tray process.
This prevents multiple tray icons from being created when Wiretray is started from different places, such as autostart, the settings app, or the terminal.
Debian packaging
Adds Debian package support through
cargo-deb.The package installs the main binaries, desktop launcher, application icon, GSettings schema, README, and maintainer scripts needed to update desktop integration files during installation.
Development workflow
Adds a development script for running the settings application with the local GSettings schema.
The script also builds the tray binary first, avoiding cases where the settings app starts an outdated local tray binary during development.
Validation
Tested:
cargo fmtcargo checkcargo clippy -- -D warningscargo deb.debinstallationNotes
This PR does not add many visible hotspot features, but it improves how Wiretray behaves as a desktop application.
Users can now install it through a
.deb, open it from the app menu, keep the tray process managed automatically, and enable startup on login without touching the terminal.