Skip to content

Conversation

@FinnPL
Copy link
Owner

@FinnPL FinnPL commented Jul 22, 2025

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

  • Added a theming structure in flake.nix to define activeTheme and 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)).
  • Introduced a new themes module with default themes (dracula and valua) defined in defaults.nix and 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)).
  • Updated stylix-config.nix to 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)).
  • Updated hyprpaper.nix to 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

  • Updated the README.md to 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

  • Updated waybar.nix to 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

  • Added the dysk tool to cli-tools.nix for enhanced functionality ([modules/home-manager/cli-tools.nixR15](https://github.com/FinnPL/NixOS-Configuration/pull/1/files#diff-7721960484b5e59e32c213f8a4e5e09311a3135ba1d14bcdd2f828d67413b1c5R15)).
  • Replaced individual JetBrains IDE packages with a unified jetbrains-toolbox-with-desktop package in jetbrains.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.

Copilot AI review requested due to automatic review settings July 22, 2025 18:19
Copy link

Copilot AI left a 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
Copy link

Copilot AI Jul 22, 2025

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.

Suggested change
- 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

Copilot uses AI. Check for mistakes.
Comment on lines +7 to +18
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
'';
Copy link

Copilot AI Jul 22, 2025

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.

Suggested change
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;
'';

Copilot uses AI. Check for mistakes.
@FinnPL FinnPL merged commit 6476690 into main Jul 22, 2025
6 checks passed
@FinnPL FinnPL deleted the changes branch July 22, 2025 19:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants