-
Notifications
You must be signed in to change notification settings - Fork 0
Theming System #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request introduces a centralized theming system to the NixOS configuration, enabling dynamic theme switching and centralized wallpaper management. The system allows users to easily switch between predefined themes and customize color schemes and wallpapers.
- Implements a dynamic theming system with theme definitions in
flake.nix - Adds two default themes (Dracula and Valua) with corresponding color schemes
- Updates UI components to use the new theming system and improves visual consistency
Reviewed Changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| flake.nix | Adds theming infrastructure with dynamic theme selection and wallpaper path resolution |
| modules/nixos/themes/defaults.nix | Defines available themes mapping color schemes to wallpapers |
| modules/nixos/themes/dracula.yaml | Dracula theme color scheme definition |
| modules/nixos/themes/valua.yaml | Valua theme color scheme definition |
| modules/nixos/stylix-config.nix | Updates to use dynamic theme from flake inputs |
| modules/hyprland/hyprpaper.nix | Updates wallpaper configuration to use dynamic theming |
| modules/hyprland/waybar.nix | Changes UI colors from base0E to base0F for consistency |
| modules/home-manager/jetbrains.nix | Replaces individual IDE packages with unified toolbox approach |
| modules/home-manager/cli-tools.nix | Adds dysk tool to package list |
| README.md | Adds documentation for theme management and customization |
| ### Prerequisites | ||
| - NixOS installed with flakes enabled | ||
| - Git for cloning this repository | ||
| - Ensure `/usr/share/wallpaper/` exists and contains all wallpapers you want to use for theming |
Copilot
AI
Jul 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The documentation should include instructions on how to create this directory and set proper permissions, as users may not have write access to /usr/share/ by default.
| - Ensure `/usr/share/wallpaper/` exists and contains all wallpapers you want to use for theming | |
| - Ensure `/usr/share/wallpaper/` exists and contains all wallpapers you want to use for theming. If the directory does not exist, create it and set the appropriate permissions: | |
| ```bash | |
| sudo mkdir -p /usr/share/wallpaper | |
| sudo chmod 755 /usr/share/wallpaper |
| mkdir -p $out/share/applications | ||
| cat > $out/share/applications/jetbrains-toolbox.desktop <<EOF | ||
| [Desktop Entry] | ||
| Type=Application | ||
| Name=JetBrains Toolbox | ||
| Comment=Manage JetBrains IDEs | ||
| Exec=jetbrains-toolbox | ||
| Icon=jetbrains-toolbox | ||
| Terminal=false | ||
| Categories=Development;IDE; | ||
| EOF | ||
| ''; |
Copilot
AI
Jul 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The desktop entry creation uses inconsistent indentation and could be improved with proper string formatting. Consider using pkgs.writeText or a cleaner multiline string approach.
| mkdir -p $out/share/applications | |
| cat > $out/share/applications/jetbrains-toolbox.desktop <<EOF | |
| [Desktop Entry] | |
| Type=Application | |
| Name=JetBrains Toolbox | |
| Comment=Manage JetBrains IDEs | |
| Exec=jetbrains-toolbox | |
| Icon=jetbrains-toolbox | |
| Terminal=false | |
| Categories=Development;IDE; | |
| EOF | |
| ''; | |
| mkdir -p $out/share/applications | |
| cp ${desktopEntryFile} $out/share/applications/jetbrains-toolbox.desktop | |
| ''; | |
| desktopEntryFile = pkgs.writeText "jetbrains-toolbox.desktop" '' | |
| [Desktop Entry] | |
| Type=Application | |
| Name=JetBrains Toolbox | |
| Comment=Manage JetBrains IDEs | |
| Exec=jetbrains-toolbox | |
| Icon=jetbrains-toolbox | |
| Terminal=false | |
| Categories=Development;IDE; | |
| ''; |
This pull request introduces a theming system to the NixOS configuration, allowing for easier customization of themes and wallpapers. It also includes minor updates to existing configurations and documentation. The key changes are grouped into the following themes:
Theming System
flake.nixto defineactiveThemeand dynamically set the color scheme and wallpaper path ([[1]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-206b9ce276ab5971a2489d75eb1b12999d4bf3843b7988cbe8d687cfde61dea0R24-R43),[[2]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-206b9ce276ab5971a2489d75eb1b12999d4bf3843b7988cbe8d687cfde61dea0L39)).themesmodule with default themes (draculaandvalua) defined indefaults.nixand corresponding YAML files for their color schemes ([[1]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-3e0ee6af0eeae086c7af05196ef427e8516af89b509c16f94ae62d2466b22f81R1-R10),[[2]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-4c00a610a9f9a7f2bb7e9bb7dd976bf37201e8dbdddeb64fa78a0dcd719ef68cR1-R21),[[3]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-8f9843d8cdcb2042f3fa3df8e6442246ec70d969a54a2e8cf2cca36ff1ac8cabR1-R21)).stylix-config.nixto use the active theme's color scheme and wallpaper ([modules/nixos/stylix-config.nixL1-R9](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-3b64592e57759d94b8d6c46760daed9140b899040367bc4fcdd47c6ae5a8d3c8L1-R9)).hyprpaper.nixto source the wallpaper path dynamically from the active theme ([modules/hyprland/hyprpaper.nixR4-R7](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-33f165220831fffb53fb634e294bfc6cb033956b121fa6521a464f5675b31a05R4-R7)).Documentation Updates
README.mdto include instructions for changing themes and adding new themes, as well as prerequisites for wallpapers ([[1]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R20),[[2]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R41-R43),[[3]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R134-R150)).UI Enhancements
waybar.nixto use a new color (base0F) for various UI elements, improving consistency with the updated themes ([[1]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-3e8bc2a1c1588f3ebd83b1f0a3b7e7effabf687a67ec72dc24037dcc258ef053L53-R53),[[2]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-3e8bc2a1c1588f3ebd83b1f0a3b7e7effabf687a67ec72dc24037dcc258ef053L66-R66),[[3]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-3e8bc2a1c1588f3ebd83b1f0a3b7e7effabf687a67ec72dc24037dcc258ef053L132-R132),[[4]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-3e8bc2a1c1588f3ebd83b1f0a3b7e7effabf687a67ec72dc24037dcc258ef053L142-R142),[[5]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-3e8bc2a1c1588f3ebd83b1f0a3b7e7effabf687a67ec72dc24037dcc258ef053L191-R194),[[6]](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-3e8bc2a1c1588f3ebd83b1f0a3b7e7effabf687a67ec72dc24037dcc258ef053L216-R219)).Tooling Improvements
dysktool tocli-tools.nixfor enhanced functionality ([modules/home-manager/cli-tools.nixR15](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-7721960484b5e59e32c213f8a4e5e09311a3135ba1d14bcdd2f828d67413b1c5R15)).jetbrains-toolbox-with-desktoppackage injetbrains.nix, simplifying IDE management ([modules/home-manager/jetbrains.nixL1-R29](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-efd88aa678e803d1ec7da651379c27a9284c3158aaacff53ced90ecf2ace9266L1-R29)).These changes collectively improve the customization, usability, and maintainability of the NixOS configuration.