1. Fixed infinite loop when closing last tab: - Return False instead of True when page already removed (prevents double-processing) - Remove from tracking BEFORE calling close_page_finish to prevent re-trigger - Properly schedule new tab creation only once 2. Fixed modified flag not clearing after save: - Update widget.original_request in _mark_tab_as_saved - Update widget.modified = False - Manually call _on_tab_modified_changed to clear indicator - Update tab page title when saving 3. Fixed header bar height and left spacing: - Added CSS to reduce headerbar min-height to 38px - Set headerbar padding-left to 0px to eliminate left gap - Made tabs more compact (min-height: 26px, reduced padding) - Reduced tabbar padding and margins All critical issues from testing resolved!
Roster
A modern HTTP client for GNOME, built with GTK 4 and libadwaita.
Features
- Send HTTP requests (GET, POST, PUT, DELETE)
- Configure custom headers and request bodies
- View response headers and bodies
- Track request history with persistence
- Beautiful GNOME-native UI
Dependencies
- GTK 4
- libadwaita 1
- Python 3
- HTTPie (http command)
Building
meson setup builddir
meson compile -C builddir
sudo meson install -C builddir
Usage
Roster uses HTTPie as the backend for making HTTP requests. Ensure HTTPie is installed:
pip install httpie
# or on Fedora
sudo dnf install httpie
Then run Roster from your application menu or with the roster command.
Description
Languages
Python
98.6%
Meson
1.4%