Add shaders#42
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR adds comprehensive screen shader support to the Aether visual theming application, enabling users to apply over 80 GLSL shader effects via hyprshade. The changes include a new Shader Manager component, automatic shader installation on startup, extensive shader library covering various visual effects and accessibility features, and updated documentation with usage examples.
Key changes:
- Added ShaderManager component with UI for discovering and toggling hyprshade shaders
- Implemented automatic shader installation from application directory to hyprshade config location
- Created 80+ GLSL shader files spanning multiple categories (color grading, era vibes, accessibility, artistic effects)
Reviewed Changes
Copilot reviewed 99 out of 99 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/main.js | Added _installShaders() method to install shader files on application startup via symlinks |
| src/components/ShaderManager.js | New component providing UI for listing, toggling, and managing hyprshade screen shaders |
| src/components/SettingsSidebar.js | Integrated ShaderManager into the settings sidebar UI |
| src/components/wallpaper-editor/SelectiveColorControls.js | New component for HSL-style selective color adjustments (not shader-related) |
| shaders/*.glsl | 80+ new GLSL shader files for various visual effects, color grading, and accessibility |
| README.md | Added shader manager documentation, usage examples, and shader categories listing |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| this._adjustments[colorName] = {...adjustments[colorName]}; | ||
| } | ||
| }); | ||
| // TODO: Update UI sliders to reflect loaded values |
There was a problem hiding this comment.
TODO comment indicates incomplete implementation. The setAdjustments method loads adjustment values but doesn't update the UI sliders to reflect these values, which could cause a mismatch between the stored state and what's displayed to the user.
| lightness: 0, | ||
| }; | ||
| }); | ||
| // TODO: Reset all sliders to 0 |
There was a problem hiding this comment.
TODO comment indicates incomplete implementation. The clearAdjustments method resets internal state but doesn't update the UI sliders, leaving them displaying incorrect values after a clear operation.
| let child = this.get_first_child(); | ||
| while (child) { | ||
| const next = child.get_next_sibling(); | ||
| this.remove(child); | ||
| child = next; | ||
| } |
There was a problem hiding this comment.
[nitpick] Consider using the GTK convenience method remove_all() if available, or extracting this row removal logic into a helper method since it's a common pattern. This would improve code maintainability and reduce duplication.
| let child = this.get_first_child(); | |
| while (child) { | |
| const next = child.get_next_sibling(); | |
| this.remove(child); | |
| child = next; | |
| } | |
| this.remove_all(); |
Copilot
This pull request adds a new Shader Manager feature to the visual theming application for Omarchy, enabling users to apply and manage screen shaders using hyprshade. It introduces over 80 GLSL shader files covering a wide range of effects, updates the documentation to reflect these additions, and provides detailed usage instructions and examples for integrating shaders into Hyprland. The changes significantly enhance customization and accessibility options for desktop theming.
Shader Manager and Documentation Updates
README.mdto document this new functionality, shader categories, and manual binding examples. [1] [2]README.mdto includehyprshadeas an optional component for shader effects.New Shader Files
shaders/directory, including effects for color correction, accessibility (color blindness simulation), artistic looks, era vibes, and visual enhancements such as CRT glitches, chromatic shifts, and more. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]Accessibility and Customization
.glslshader files that will automatically appear in the Shader Manager. [1] [2]User Experience Enhancements