Configurable Bar Scroll Actions
@ iNiR (snowarch)Open Source Contributor @ iNiR (snowarch)
Overview
Contributed to the iNiR desktop shell by implementing configurable scroll behavior for the system bar and global workspace scroll inversion. The feature enhanced usability and flexibility for users of scroll-based compositors like Niri and Hyprland.
Responsibilities
- Designed and implemented a configurable scroll action system for bar edges
- Abstracted input handling into reusable logic (
performScrollAction) - Integrated feature across multiple components (Bar, Overview, Settings UI)
- Ensured compatibility with both Niri and Hyprland compositors
Key Achievements
- Introduced user-configurable scroll actions (brightness, volume, workspace, none)
- Implemented global scroll inversion affecting all workspace navigation contexts
- Feature accepted upstream and integrated via maintainer cherry-pick (PR #53)
- Replaced hardcoded behaviors with a flexible, config-driven system
Technologies Used
QML, Quickshell, Linux desktop environment tooling, Niri compositor, Hyprland, JSON config systems
Projects
Bar Scroll Customization & Workspace Scroll Inversion (PR #53)
Implemented a system allowing users to customize scroll behavior on bar edges and invert workspace navigation direction globally.
- Created dynamic scroll routing system based on user configuration
- Added UI controls for selecting scroll actions and toggling inversion
- Integrated logic across bar, workspace switcher, and overview components
- Ensured cross-compositor compatibility (Niri and Hyprland)
Learnings
Gained experience in building configurable UI systems, handling input abstraction, and contributing to large-scale open-source projects. Learned how to collaborate with maintainers, adapt code based on review feedback, and design features that align with real user workflows.