Repository navigation
Releases: mishan/gtkhx
Releases · mishan/gtkhx
Release list
1.4.1b2
Changes since 1.4.1b1. Flatpak users can now install from GtkHx's own repository, which keeps them updated:
flatpak install --user https://dl.gtkhx.org/gtkhx-beta.flatpakrefFiles
- Downloading a folder that holds files of 4 GB or more no longer fails partway
- File names in non-Roman scripts, such as Japanese, no longer go missing from file listings
Voice and Video
- Cameras you plug in or unplug show up right away, in Settings and on the camera button
- A chosen camera that isn't plugged in stays chosen in Settings, marked as missing
- Chat says when someone in your voice room turns their camera on or starts sharing their screen
- No video is downloaded while the window is minimized
- On a metered connection you receive one video at a time, and click another to switch; Settings → Voice can turn this off
- Video no longer sometimes stays blank, or fails to start, after someone turns their camera on
- Screen readers can now name the camera and screen-share buttons and the users list's video icon
- Join and leave sounds are right again after switching voice rooms
Chat
- Load Older no longer gets stuck on "Loading…" when the server turns it down
- A private chat you closed no longer reopens when the server answers late
- Names with accented characters no longer show "is now known as" at every status change
- Server broadcasts show accented characters correctly
News
- Accented characters in threaded news show correctly: folder and category names, subjects, authors and posts
- A news folder, category or article the server refuses no longer stays stuck loading; you can try again
- Posting into a category, or making one inside a folder, with an accented name works on more servers
- Loading and posting news no longer flashes by in the Tasks list
Hotline Protocol
- HOPE secure logins now compress the connection with the Compression setting's choice (GZIP, LZ4 or ZSTD) when the server supports it
- Closing a server's agreement window now declines it, like the Disagree button
- An empty server agreement no longer opens an empty window
- Older servers that refuse GtkHx's once-a-minute check that the connection is alive no longer cause an error each time
- Sending a message, loading the user list and fetching chat history no longer appear in the Tasks list
Updates
- The Flatpak tells you when a new version is out, and can update and restart into it; Settings → General can turn this off
- Windows, macOS and Flatpak test builds show their real version, such as 1.4.1b2, in About instead of 1.4.1-dev
Code Modernization
- HOPE secure login and its ciphers moved to hx-libs, the Hotline library GtkHx shares with hxd-ng and hx-ng
Translations
- The Flatpak download now includes the translations
Full Changelog: v1.4.1b1...v1.4.1b2
1.4.1b1
Files
- Large folders open several times faster, and sorting by name is faster too
- Renaming in place now replaces the name instead of adding to it
- Moving a file and renaming it in one step no longer leaves it under its old name
- Get Info can save just a comment on Janus servers
- The right-click menu's last items are no longer cut off
- Local folders no longer show "(4096 items)" as their size
- Very long folder names no longer break the path sent to the server
Docking
- A new dock, built on mullion-gtk in place of libpanel; your layout carries over
- A pane's tabs sit in its top corner as icons, in sight where the pane has room for them and otherwise while you are in the pane; Pane Titles puts tab strips with titles back
- Drag a tab onto another pane's tabs, onto a pane, or onto an edge to split it
- Drag a tab out of the window to give it a window of its own, and back to dock it
- Reset Layout puts the default layout back at once, rather than at the next launch
- Alt with the arrows moves between panes, and with Shift moves the pane; Alt+Enter zooms one to fill the window
- A pane closes when its last panel is moved out or closed
- A panel's toolbar button and menu item always bring it back after it was undocked
Voice and Video
- Changing the microphone, speaker or camera in Settings now switches a call in progress
- Video tiles fill the panel, each at its stream's shape, instead of fixed-height strips
- Click a tile to bring it into focus at the top of the panel; click it again to show everyone alike
- Each tile has controls to focus, mute, or stop watching someone, and you can watch them again from the bar below
- The users list shows who has a camera or screen share on, even when GtkHx can't play video
Chat
- Chat history shows line breaks and accented characters correctly
- Very long scrollbacks stay fast as new messages arrive and while scrolling
- Nickname completion is faster on busy servers
- A link whose text isn't its address shows the real address before opening it, and every link shows its address on hover
- Email addresses are links again
- Dismissing a selection with a click no longer also opens the link under it
- Chat settings now reach every connection, not just the one in focus
- Settings → Chat can turn off opening links with a single click
Hotline Protocol
- A rejected login now shows the server's own message
- Fixed HOPE-encrypted connections misreading a message split across frames
- No more error at every login on servers that refuse your saved GIF icon
- Sending text is faster on servers without Unicode
- GtkHx now tells servers it is GtkHx (client version 254) instead of the Hotline 1.8.5 client
Code Modernization
- The file browser is now Rust
- GtkHx now reads tracker listings with code shared with the hxd-ng server
- The chat view is now Rotulus, a standalone GTK 4 widget published on crates.io
- Moved to gtk-rs 0.22; building now needs Rust 1.92
Development
- Performance benchmarks, from single functions up to the running app
- End-to-end tests of GtkHx's own file requests against real servers
- The test servers now include hlservd, the Hotline 1.9 server
- A reference guide to the Hotline protocol and its extensions
Translations
- The Local / Remote selector in the file browser is now translated
Full Changelog: v1.4.0...v1.4.1b1
1.4.0
- Video
- Video chat and screen sharing, on servers that support it
- A dockable Video panel shows everyone's camera and screen, plus your own preview
- Choose a camera in Settings → Voice
- Camera tiles keep the same order, by user, instead of shuffling between calls
- Voice
- Fixed occasional audio problems after joining or rejoining voice
- Themes and Icons
- Themes now color the whole window, not just the chat
- Richer chat colors, and each nickname keeps its own color
- New icons that match the desktop and follow the theme's colors
- The original pixel-art icons live on in the new Classic theme
- New Neon Doll theme
- Settings → General can keep the system's window colors around a themed chat
- Files
- The file browser is now its own window, one per connection
- Clearer layout, with labeled Download and Upload buttons
- Right-click a file for Open, Preview, Get Info, Rename, Delete and more
- User Interface
- Slimmer window chrome, so chat gets much more of the window
- The server banner and connection status now sit in the header bar
- The status bar is gone, and the toolbar is optional (off by default)
- Pane titles and action bars can be hidden
- Chat tabs stay hidden until there is a second conversation
- Settings opens with Ctrl+,
- Hotline Protocol
- Fixed file transfers with Windows clients and servers
- macOS
- GtkHx now asks for camera and microphone access
- Fixed a crash on macOS versions too old to run GtkHx
- Code Modernization
- GtkHx now shares its Hotline protocol code with the hxd-ng server
- Translations
- Translated the new strings
1.4.0b1
What's Changed
- release: name the macOS artifacts by architecture, not by runner by @mishan in #644
- release: split snapshot and release into separate workflows by @mishan in #645
- ci: drop the build-output caches from the release path by @mishan in #646
- macos: declare the minimum OS the bundle actually needs by @mishan in #647
- Consume shared hxproto from hx-libs by @mishan in #650
- Take the protocol C ABI back from hxproto into gtkhx-proto-ffi by @mishan in #651
- Vendor git dependencies into the Flatpak build by @mishan in #652
- Consume shared file transfer codecs by @mishan in #653
- Consume shared HFS sidecar codecs by @mishan in #654
- Relink binaries when only Rust changed by @mishan in #658
- Slim the window chrome: header banner, pane controls, optional bars by @mishan in #657
- Files: a window per connection, with a clearer two-panel layout by @mishan in #659
- Add video chat and screen sharing over the voice session by @mishan in #656
- Prepare the tree for 1.4.0: metadata, changelog, translations, docs by @mishan in #661
- Harden video: portal hangs, a closed panel's stream, refused requests by @mishan in #662
- Reach the camera through the Camera portal inside the Flatpak by @mishan in #663
- Gate the Camera portal's remote to Unix, fixing the Windows build by @mishan in #664
- Fix macOS bundle.sh parse error under bash 3.2 by @mishan in #665
Full Changelog: v1.3.2...v1.4.0b1
1.3.2
1.3.1
1.3.0
- Connections (formerly Bookmarks)
- Bookmarks are now Settings → Connections; the separate Bookmarks window is gone
- Each connection can override your nickname and icon for that server, or
inherit the defaults from Settings → Identity - Bookmarks are now kept in a single TOML file
- Legacy bookmark files are imported if the TOML file does not exist
- Connections can be exported to legacy Hotline bookmark files
- Built-in bookmarks can now be deleted
- Build
- GtkHx is now available for macOS and Windows
- Code Modernization
- GtkHx is now mostly Rust code
- Config
- The settings file (gtkhxrc) is now gtkhx.toml
- GtkHx will migrate the old gtkhxrc if one is present and no gtkhx.toml exists
- Fixed bugs in preferences along the way
- Hotline Protocol
- Fixed old bug with resumable file transfers
- Ensure that multi-byte names > 32 bytes get truncated at a character boundary
- Multiple Connections
- Users may now be connected to more than one server at a time, and switch between connections with tabs
- Sound
- Replaced libcanberra with rodio for notification sound playback
- Translations
- Updated existing translations
- Added Japanese translations
- User Interface
- Button icons now default to their original size, rather than upscaled
- Brand new hxchat widget for Chat (replaces forked version of HexChat's xtext)
- Significantly better performance
- Markdown support (toggleable)
- Icon display next to speaker (toggleable)
- Speaker grouping, so doesn't have to keep appearing on every consecutive line
- Right clicking on a speaker's name or icon will now pop up a "user" popup menu
- Chat history can be searched via Ctrl-F
- Ctrl-U now works to clear any input in the app
- [Enter] in the Connect dialog now connects
- Handle character conversion on user list and user info
- Closed panels/windows will not reopen on startup
- Docking a window will now highlight the pane that is being targeted
- Panel foreground state is now persisted
1.3.0b7
- Now Rustier than ever!
- Fixed chatpost click sound
- Multiple connections
- Preferences migrated to gtkhx.toml
- Updated translations
- Added Japanese translations
- Bug fixes
- Dock fixes
1.3.0b6
- Hotline Protocol
- Fixed old bug with resumable file transfers
- User Interface
- Brand new hxchat widget for Chat (replaces forked version of HexChat's xtext)
- Significantly better performance
- Markdown support (toggleable)
- Icon display next to speaker (toggleable)
- Speaker grouping, so doesn't have to keep appearing on every consecutive line
- Right clicking on a speaker's name or icon will now pop up a "user" popup menu
- Chat history can be searched via Ctrl-F
- Ctrl-U now works to clear any input in the app
- [Enter] in the Connect dialog now connects
- Brand new hxchat widget for Chat (replaces forked version of HexChat's xtext)