Releases: cachebag/nmrs
nmrs-gui 1.5.0
[1.5.0] - 2026-03-19
Fixed
- Custom
~/.config/nmrs/style.cssis now applied after the saved theme, ensuring it always takes precedence over any predefined theme (#274) by @cachebag - Fixed header status label inflating natural width with long status strings (#279) by @pwsandoval
[1.1.0] - 2025-12-19
Fixed
- Corrected binary name for
.desktopfile +postInstallhook for Nix flake (#146) @JonnieCache
A Wayland-compatible NetworkManager frontend built with GTK4.
Installation
Arch Linux (AUR)
yay -S nmrsManual Installation
Download the binary, extract, and move to your PATH:
tar -xzf nmrs-gui-1.5.0-x86_64-linux.tar.gz
sudo mv nmrs-gui /usr/local/bin/nmrsSee CHANGELOG.md for full details.
Release nmrs 2.2.0
What's Changed
- refactor(nmrs):
#[must_use]added across public interface by @cachebag in #264 - refactor(nmrs-gui): elide use of
WiredDevicesContextand just useNetworksContextinstead by @cachebag in #265 - refactor(#223): convert bdaddr into bluez dbus object path by @cachebag in #266
- feat(#177): concurrency protection by @cachebag in #268
- fix(#273): user CSS now overrides selected theme by @cachebag in #274
- fix(#243) set proper package name and version in nix flake by @JonnieCache in #275
- fix(#278): header status label inflates natural width with long status strings by @pwsandoval in #279
- feat(#283): expose
WirelessHardwareEnabledthrough API by @cachebag in #284 - fix(ci): nix workflow hardening by @cachebag in #286
- chore(nmrs): bump to 2.2.0 by @cachebag in #285
New Contributors
- @pwsandoval made their first contribution in #279
Full Changelog: nmrs-v2.0.1...nmrs-v2.2.0
Release nmrs 2.0.1 - 'Hello, there!'
nmrs 2.0.1
Welcome to the 'Hello, there!' release.
See CHANGELOG.md for details.
What's Changed
- refactor: device type registry system for future extensibility summary by @cachebag in #172
- feat(nmrs): input validation by @cachebag in #173
- ci: auto-update nix hashes on PRs by @cachebag in #182
- fix(#175): race condition in signal subscription by @cachebag in #195
- fix(nmrs): signal stream cleanup by @cachebag in #197
- Release nmrs 2.0.0 by @cachebag in #198
- fix(network): Make forget() and forget_vpn() idempotent by @ruthwik-01 in #200
- fix(#180): wire fixsha into CI by @cachebag in #203
- fix(nmrs-gui): hyprland config steps in README + process name by @Rifat-R in #205
- chore: bump resolver + MSRV by @cachebag in #206
- fix(nmrs): complete ipv6 support by @cachebag in #208
- Update README.md by @cachebag in #209
- fix: replace magic number with named constant for device activation states by @AK78gz in #230
- fix(tests): idempotence enforcement for
forget_vpn()by @shubhsingh5901 in #232 - refactor(bluetooth): replace println! with debug! by @Rifat-R in #234
- docs: introduce mdbook by @cachebag in #236
- refactor: add context to D-Bus operation errors by @stoutes in #240
- refactor(#224): replace hardcoded root paths with Default impl by @pluiee in #242
- feat(#215): validate bluetooth address in
populate_bluez_info&BluetoothIdentity::newby @pluiee in #246 - feat(#260): new
WifiModeandmodetoWifiConnectionBuilderby @cachebag in #263
New Contributors
- @ruthwik-01 made their first contribution in #200
- @Rifat-R made their first contribution in #205
- @AK78gz made their first contribution in #230
- @shubhsingh5901 made their first contribution in #232
- @stoutes made their first contribution in #240
- @pluiee made their first contribution in #242
Full Changelog: nmrs-v1.3.5...nmrs-v2.0.1
Release nmrs 2.0.0 - 'Sleep is the Cousin of Death'
nmrs 2.0.0
Welcome to the 'Sleep is the Cousin of Death' release.
This marks a point of the project that's considerably more stable than 1.0.0, due to my mishaps around the extensibility of the public API's structs/enums.
Some things worth noting explicitly include the ability to develop nmrs on macOS or Windows via the Docker image provided, and extensive refactors made to make the code a bit more digestible and more importantly, maintainable in the future. And of course, Bluetooth support which is really nothing but a kick-starter to introduce more devices without breaking the API (thanks to those refactors).
Now, more than ever, I am happy to accept contributions to this project as my personal life is going to take priority for the following year as I get married and begin looking for a job before I graduate in the Fall.
I'll of course chip away at this whenever I get the time as it is my personal labor of love, but I can't promise that development from me be as continuous as it has been in the last few months.
Added
- Configurable timeout values for connection and disconnection operations (#185)
- Builder pattern for VpnCredentials and EapOptions (#188)
- Bluetooth device support (#198)
- Input validation before any D-Bus operations (#173)
CI: adjust workflow to auto-update nix hashes on PRs (#182)- More helpful methods to network_manager facade (#190)
- Explicitly clean up signal streams to ensure unsubscription (#197)
Fixed
Changed
- Various enums and structs marked non-exhaustive (#198)
- Expose NMWiredProxy and propogate speed through + write in field and display for BT device type (#198)
- refactor: device type registry system for future extensibility summary by @cachebag in #172
Full Changelog(1.0.0 to 2.0.0): nmrs-v1.0.0...nmrs-v2.0.0
Release nmrs 1.3.5 - 'Size Doesn't Matter'
nmrs 1.3.5
Welcome to the 'Size Doesn't Matter' release.
Changed
Full Changelog: nmrs-v1.3.0...nmrs-v1.3.5
Release nmrs-v1.3.0 - 'Throat Punch'
nmrs 1.3.0
Welcome to the 'Throat Punch' release.
Changed
- refactor: dedupe DBus proxy construction by @cachebag in #165
- Better error context and debugging by @cachebag in #168
Full Changelog: gui-v1.1.0...nmrs-v1.3.0
Release nmrs-v1.2.0 - 'Day by day'
Welcome to the 'Day by day' release.
Fixed
- perf: borrowed slice adjusted for empty ssid check by @cachebag in #154
- fix: change
Dockerfileto only configurenmrsby @cachebag in #162
Changed
- refactor: condense device finding logic under one helper by @cachebag in #158
- refactor(nmrs): unify connection builder pattern by @cachebag in #161
Added
- feat: docker image for reproducing testing/dev environment by @cachebag in #159
- CI: SemVer checks by @cachebag in #163
Full Changelog: gui-v1.1.0...nmrs-v1.2.0
Release nmrs-v1.1.0 - 'Bazinga'
nmrs-gui-v1.1.0 -
Not the cleanest release. 1.1.0 includes the following:
- Full support for Ethernet devices.
- Device state monitoring via subscriptions to signals on D-Bus.
- Other bug fixes regarding connecting/disconnecting networks, forgetting networks, etc.
Release nmrs-gui-v0.5.0-beta - 'these things happen'
Welcome to the 'these things happen' release.
- 2025-12-15
Changed
- Core: Refactored connection monitoring from polling to event-driven D-Bus signals for faster response times and lower CPU usage (#46)
- Core: Replaced
tokiowithfutures-timerfor runtime-agnostic async support (fixes GTK/glib compatibility)
Added
- Core:
ActiveConnectionStateandConnectionStateReasonenums for detailed connection status tracking (#46) - Core:
monitor_network_changes()API for real-time network list updates via D-Bus signals - Core:
NetworkManageris nowClone - Core+GUI: Full support for Ethernet devices (#88)
Fixed
- Core:
forget()now verifies device is disconnected before deleting saved connections (#124) - Core:
list_networks()preserves security flags when deduplicating APs (#123) - Core: Fixed race condition in signal subscription where rapid state changes could be missed
- GUI: Fixed UI freeze when connecting/forgetting networks
- GUI: Supply option to provide cert paths for WPA-EAP connections #56