Horizon DE v0.4.42-alpha - Release Notes
·
119 commits
to main
since this release
Welcome to the release notes for the Horizon Desktop Environment! This release brings a wealth of new features, essential bug fixes, and under-the-hood refinements that improve both functionality and performance.
🖥️ Experience Horizon
Horizon is not just a toolkit — it powers an entire desktop environment.
The best way to experience it today is through Austral OS, where Horizon drives the full system UI.
🚀 New Features & Enhancements
File Management (ArkFM & Views)
- Hidden Files Toggle: Added support for toggling hidden files visibility via menu and shortcuts, complete with dynamic text updates in the global menu.
- Terminal Integration: Added an "Open in Terminal" option to file and context menus.
- Enhanced Selections: Implemented multi-selection support using Ctrl-click and Shift-click (range selection) in
IconViewandTableView. - Thumbnail Previews: Integrated background thumbnail generation via
horizon-lens. Implemented thumbnail support inFileIconView, rotating previews for directories inFolderPreviewWidget, andThumbnailCacheintegration inFileCoverFlowView. - File Operations: Implemented multi-file compression (with GZ format support) avoiding filename collisions. Added file trash, restore, and empty functionality with full UI integration.
- Navigation & Filtering: Added a path navigation button with directory update and go-up functionality. Implemented file filtering in
FileDialog(with PDF filter integration) and GTK bookmark support in the sidebar.
Desktop & UI Components
- Global Systems: Introduced global undo/redo and zoom systems with automated menu management, widget discovery, and event dispatching.
- Dock Customization: Added autohide functionality and vertical positioning on the left and right screen edges for the dock. Items can be dragged for reordering in both horizontal and vertical layouts.
- RibbonToolbar: Introduced the
RibbonToolbarcomponent with active tab highlighting, custom styling, gradient headers, and mouse wheel scrolling. - Visuals & Theming: Implemented dynamic theme color keys for icons, updated WebView backgrounds to utilize
ThemeManager, and enabled the winshadows plugin. Dynamic CPU usage color tracking added. - Terminal & Navigation: Added keyboard selection mode to
TerminalWidgetand global keyboard shortcuts for tab navigation (Ctrl+Tab,Ctrl+Shift+Tab,Ctrl+W) inTabCollection. Keyboard navigation and auto-scrolling were also added toTableViewandIconView.
System Integration & Under the Hood
- XDG Portal Service: Implemented
xdg-desktop-portal-horizonservice with appearance settings andFileChooserportal support. Added D-Bus interface for asynchronous thumbnail requests. - Audio & Session: Implemented persistent audio settings, ensuring PipeWire services start properly during initialization. Session initialization transitions from static DISPLAY exports to dynamic socket polling for Wayland and XWayland.
- Packaging: Switched default packaging to a component-based model with automatic meta-package generation and improved CMake logic.
- Internationalization: Added
I18n::get_valid_system_localefor proper system locale validation against/usr/share/i18n/SUPPORTED. Localized context menu items for file operations.
🛠️ Bug Fixes
- Fixed environment variable handling (
DISPLAY) during session initialization and login mode. - Corrected vterm callbacks, terminal data flushing, and key event propagation after terminal copy/paste.
- Solved event propagation and selection clearing bugs in
TableViewandIconView. - Prevented accidental dock item clicks during drag operations and fixed use-after-free bugs in drag callbacks.
- Adjusted window resize dimensions based on dock positioning to ensure correct hit-testing.
- Added timeouts to systemd service commands to prevent session startup hangs.
- Corrected CTRL modifier mapping and signal-based clipboard shortcuts with control character filtering.
🧹 Refactoring & Chores
- Replaced widget lifecycle checks with atomic alive flags to prevent asynchronous use-after-free errors (e.g., in
DownloadView). - Restructured
RibbonToolbarlayout calculations, window background rendering, and tab activation handling. - Optimized handling of file deletions for bulk operations and optimized network status indicator rendering.
- Implemented an internal clipboard buffer in
TextBoxandTextareato improve clipboard data handling.