diff --git a/common/default.nix b/common/default.nix index 6a6991b..571da36 100644 --- a/common/default.nix +++ b/common/default.nix @@ -2,7 +2,7 @@ # # SPDX-License-Identifier: MIT -{ lib, ... }: +{ pkgs, lib, ... }: { imports = [ # Filesystem configuration @@ -62,5 +62,12 @@ securix.graphical-interface = { variant = "kde"; terminalVariant = "kitty"; + + kde = { + lookAndFeelPackages = [ + pkgs.securixThemes.example + ]; + defaultLookAndFeel = "org.acmecorp.example"; + }; }; } diff --git a/default.nix b/default.nix index 3fec19a..3d0c532 100644 --- a/default.nix +++ b/default.nix @@ -25,10 +25,16 @@ let defaultEdition = "acmecorp-bureautix"; + pkgs' = pkgs.extend ( + final: prev: { + securixThemes = final.callPackage ./themes { }; + } + ); + securix = import securixSrc { edition = defaultEdition; defaultTags = [ defaultEdition ]; - inherit pkgs; + pkgs = pkgs'; # We override to use our own Disko which contains a patch for the office_v1 layout. sourcesOverrides = sources': diff --git a/themes/default.nix b/themes/default.nix new file mode 100644 index 0000000..8b39d1d --- /dev/null +++ b/themes/default.nix @@ -0,0 +1,57 @@ +# SPDX-FileCopyrightText: 2025 Ryan Lahfa +# +# SPDX-License-Identifier: MIT + +{ mkPlasmaLookAndFeelPackage }: +{ + example = mkPlasmaLookAndFeelPackage { + name = "Example"; + version = "0.01"; + + metadata = { + id = "org.acmecorp.example"; + description = "Example - Example theme based on Breeze Light"; + + # Credits: + # + # Wallpaper comes from https://unsplash.com/fr/@bernardhermant + # https://unsplash.com/fr/photos/un-mur-blanc-avec-une-horloge-sur-le-cote-0D5KCGpz-_4 + # Icon comes from freepik.com + + authors = { + rlahfa = { + name = "Ryan Lahfa"; + email = "ryan.lahfa.ext@numerique.gouv.fr"; + }; + }; + + # https://spdx.org/licenses/etalab-2.0.html + license = "etalab-2.0"; + }; + + defaults = { + kdeglobals = { + KDE.widgetStyle = "Breeze"; + General.ColorScheme = "BreezeLight"; + Icons.Theme = "breeze"; + }; + # Default wallpaper. + Wallpaper.Image = "GeometricWhite"; + plasmarc.Theme = "default"; + kcminputrc.Mouse.cursorTheme = "breeze_cursors"; + kwinrc = { + "org.kde.kdecoration2" = { + library = "org.kde.breeze"; + theme = "Breeze"; + }; + }; + KSplash.Theme = "org.kde.Breeze"; + }; + + icons = ./example-org/icons; + wallpapers = ./example-org/wallpapers; + launcherIcon = "example-launch"; + previews = ./example-org/previews; + splash = null; + }; +} diff --git a/themes/example-org/icons/hicolor/128x128/emblems/example-launcher.png b/themes/example-org/icons/hicolor/128x128/emblems/example-launcher.png new file mode 100644 index 0000000..7d0a261 Binary files /dev/null and b/themes/example-org/icons/hicolor/128x128/emblems/example-launcher.png differ diff --git a/themes/example-org/icons/hicolor/128x128/emblems/example-launcher.png.license b/themes/example-org/icons/hicolor/128x128/emblems/example-launcher.png.license new file mode 100644 index 0000000..fe33c68 --- /dev/null +++ b/themes/example-org/icons/hicolor/128x128/emblems/example-launcher.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2025 Freepik + +SPDX-License-Identifier: FreepikLicense diff --git a/themes/example-org/wallpapers/GeometricWhite/contents/images/1920x1080.png b/themes/example-org/wallpapers/GeometricWhite/contents/images/1920x1080.png new file mode 100644 index 0000000..88e8d5d Binary files /dev/null and b/themes/example-org/wallpapers/GeometricWhite/contents/images/1920x1080.png differ diff --git a/themes/example-org/wallpapers/GeometricWhite/contents/images/1920x1080.png.license b/themes/example-org/wallpapers/GeometricWhite/contents/images/1920x1080.png.license new file mode 100644 index 0000000..ea25dc3 --- /dev/null +++ b/themes/example-org/wallpapers/GeometricWhite/contents/images/1920x1080.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2025 Bernard Hermant + +SPDX-License-Identifier: UnsplashFreeLicense diff --git a/themes/example-org/wallpapers/GeometricWhite/metadata.json b/themes/example-org/wallpapers/GeometricWhite/metadata.json new file mode 100644 index 0000000..9b4a218 --- /dev/null +++ b/themes/example-org/wallpapers/GeometricWhite/metadata.json @@ -0,0 +1,9 @@ +{ + "KPlugin": { + "Authors": [ { "Email": "", "Name": "Bernard Hermant" } ], + "Website": "...", + "Id": "GeometricWhite", + "License": "", + "Name": "Geometric White" + } +} diff --git a/themes/example-org/wallpapers/GeometricWhite/metadata.json.license b/themes/example-org/wallpapers/GeometricWhite/metadata.json.license new file mode 100644 index 0000000..d0cba39 --- /dev/null +++ b/themes/example-org/wallpapers/GeometricWhite/metadata.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2025 Ryan Lahfa + +SPDX-License-Identifier: MIT