feat: Add named proxy profiles + picker dropdown in new-download dialog (Related to #165 )
- Dominant language
- Rust
- Stars
- 586
- Forks
- 43
- Avg merge
- 5h 26m
- Merged PRs (30d)
- 131
Description
### Preflight checklist
- [x] I searched [existing issues](https://github.com/ja7ad/hydra/issues?q=is%3Aissue) and this has not been proposed already.
- [x] I checked the [README](https://github.com/ja7ad/hydra/blob/main/README.md) and this is not already supported.
### Component
Desktop GUI (Hydra Download Manager)
### Problem
0.4.4 added a per-download proxy override, but it's a single free-text field.
This solves the "override per download" need but not the actual pain point:
having to retype a full proxy address every time you add a download.
Concretely, for anyone running a local SOCKS/HTTP proxy (e.g. a v2ray client
exposing a local port for filtered/restricted networks), there's no way to:
- Save a proxy as a named profile (e.g. "Local v2ray SOCKS") for reuse
- Pick from a dropdown instead of typing an address each time
- Have "recently used" or "favorite" proxies persist across dialog sessions
### Proposed solution
- **Proxy profile manager**: a small settings section to add/edit/delete
proxy profiles, each with a name, address, and type (SOCKS5 / HTTP).
- **New-download dialog**: replace the current free-text field with a
dropdown offering "System default", "No proxy", and the list of saved
profiles, plus an "Add new..." option that opens a small inline form.
- Keep the raw text field available as a fallback/advanced option for
genuine one-off proxies, but make profiles the primary, low-friction path.
### Alternatives considered
_No response_
### Platforms this should cover
- [x] Linux
- [x] macOS
- [x] Windows
- [ ] Android / iOS (via `libhydra`)
### Additional context
_No response_
### Compatibility
- [ ] This changes existing behavior (flags, defaults, output format, or the C ABI).
### Contribution
- [ ] I'm willing to open a pull request implementing this.
Contributor guide
Research direction
Start by tracing the existing per-download proxy override in the desktop GUI and locating the settings and new-download dialog entry points. Then determine how proxy settings persist across sessions and how the dialog represents the current override. Done means reusable named SOCKS5/HTTP profiles, profile management, dropdown choices, an add-new flow, and the raw fallback are supported on the listed desktop platforms.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100