Skip to content

Horizon DE v0.4.42-alpha - Release Notes

Choose a tag to compare

@austral-os austral-os released this 29 May 17:42
· 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.

👉 Explore Austral OS


🚀 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 IconView and TableView.
  • Thumbnail Previews: Integrated background thumbnail generation via horizon-lens. Implemented thumbnail support in FileIconView, rotating previews for directories in FolderPreviewWidget, and ThumbnailCache integration in FileCoverFlowView.
  • 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 RibbonToolbar component 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 TerminalWidget and global keyboard shortcuts for tab navigation (Ctrl+Tab, Ctrl+Shift+Tab, Ctrl+W) in TabCollection. Keyboard navigation and auto-scrolling were also added to TableView and IconView.

System Integration & Under the Hood

  • XDG Portal Service: Implemented xdg-desktop-portal-horizon service with appearance settings and FileChooser portal 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_locale for 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 TableView and IconView.
  • 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 RibbonToolbar layout 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 TextBox and Textarea to improve clipboard data handling.