NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.3k stars 13.54k forks source link

Package request: klassy #272566

Open Haskellered opened 9 months ago

Haskellered commented 9 months ago

Project description

Quoting their github repository;

Klassy (formerly ClassiK/ClassikStyles) is a highly customizable binary Window Decoration and Application Style plugin for recent versions of the KDE Plasma desktop.

Metadata


Add a :+1: reaction to issues you find important.

keenanweaver commented 9 months ago

For any potential packager of Klassy, here is a previous PR that was closed: https://github.com/NixOS/nixpkgs/pull/242819

I still use it on my machines.

StellarCommandHub commented 9 months ago

+++

I was about to make a request. I really want a declarative way to install this.

Haskellered commented 9 months ago

Oh haha Atm I don't even use KDE Plasma but might in the future and klassy would be a must if I did.

xand3r8 commented 2 months ago

+++ Surprised this still hasn't been packaged considering how big the project is, commenting hoping this will still get packaged

chermnyx commented 2 months ago
{
  klassy,
  cmake,
  kdePackages,
  libsForQt5,
  hicolor-icon-theme,
  xdg-utils,
  stdenv,
}:
stdenv.mkDerivation rec {
  # based on https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/kde/plasma/breeze/default.nix
  # & archlinux package
  pname = "klassy";
  name = pname;

  src = klassy;

  # dependencies from aur package
  buildInputs =
    [
      hicolor-icon-theme
      xdg-utils
    ]
    ++ (with kdePackages; [
      wrapQtAppsHook
      # breeze-icons
      frameworkintegration
      kcmutils
      kcolorscheme
      kconfig
      kcoreaddons
      kdecoration
      kguiaddons
      ki18n
      kiconthemes
      kirigami
      kwidgetsaddons
      kwindowsystem
      qtbase
      qtsvg
      qtdeclarative
    ]);

  nativeBuildInputs = [
    cmake
    kdePackages.extra-cmake-modules
  ];

  outputs = [
    "out"
    "dev"
    "qt5"
  ];
  # We can't add qt5 stuff to dependencies or the hooks blow up,
  # so manually point everything to everything. Oof.
  cmakeFlags = [
    "-DQt5_DIR=${libsForQt5.qtbase.dev}/lib/cmake/Qt5"
    "-DQt5Core_DIR=${libsForQt5.qtbase.dev}/lib/cmake/Qt5Core"
    "-DQt5DBus_DIR=${libsForQt5.qtbase.dev}/lib/cmake/Qt5DBus"
    "-DQt5Gui_DIR=${libsForQt5.qtbase.dev}/lib/cmake/Qt5Gui"
    "-DQt5Network_DIR=${libsForQt5.qtbase.dev}/lib/cmake/Qt5Network"
    "-DQt5Qml_DIR=${libsForQt5.qtdeclarative.dev}/lib/cmake/Qt5Qml"
    "-DQt5QmlModels_DIR=${libsForQt5.qtdeclarative.dev}/lib/cmake/Qt5QmlModels"
    "-DQt5Quick_DIR=${libsForQt5.qtdeclarative.dev}/lib/cmake/Qt5Quick"
    "-DQt5Widgets_DIR=${libsForQt5.qtbase.dev}/lib/cmake/Qt5Widgets"
    "-DQt5X11Extras_DIR=${libsForQt5.qtx11extras.dev}/lib/cmake/Qt5X11Extras"
    "-DQt5Xml_DIR=${libsForQt5.qtbase.dev}/lib/cmake/Qt5Xml"

    "-DKF5Auth_DIR=${libsForQt5.kauth.dev}/lib/cmake/KF5Auth"
    "-DKF5Codecs_DIR=${libsForQt5.kcodecs.dev}/lib/cmake/KF5Codecs"
    "-DKF5Config_DIR=${libsForQt5.kconfig.dev}/lib/cmake/KF5Config"
    "-DKF5ConfigWidgets_DIR=${libsForQt5.kconfigwidgets.dev}/lib/cmake/KF5ConfigWidgets"
    "-DKF5CoreAddons_DIR=${libsForQt5.kcoreaddons.dev}/lib/cmake/KF5CoreAddons"
    "-DKF5FrameworkIntegration_DIR=${libsForQt5.frameworkintegration.dev}/lib/cmake/KF5FrameworkIntegration"
    "-DKF5GuiAddons_DIR=${libsForQt5.kguiaddons.dev}/lib/cmake/KF5GuiAddons"
    "-DKF5IconThemes_DIR=${libsForQt5.kiconthemes.dev}/lib/cmake/KF5IconThemes"
    "-DKF5Kirigami2_DIR=${libsForQt5.kirigami2.dev}/lib/cmake/KF5Kirigami2"
    "-DKF5WidgetsAddons_DIR=${libsForQt5.kwidgetsaddons.dev}/lib/cmake/KF5WidgetsAddons"
    "-DKF5WindowSystem_DIR=${libsForQt5.kwindowsystem.dev}/lib/cmake/KF5WindowSystem"

    "-DKF5I18n_DIR=${libsForQt5.ki18n.dev}/lib/cmake/KF5I18n"

    "-DBUILD_TESTING=ON"
    "-DBUILD_QT6=ON"
    "-DBUILD_QT5=ON"
  ];

  # Move Qt5 plugin to Qt5 plugin path
  postInstall = ''
    mkdir -p $qt5/${libsForQt5.qtbase.qtPluginPrefix}/styles
    mv $out/${kdePackages.qtbase.qtPluginPrefix}/styles/klassy5.so $qt5/${libsForQt5.qtbase.qtPluginPrefix}/styles
  '';
}

and then somewhere in the configuration:

klassy = pkgs.kdePackages.callPackage ./klassy.nix { inherit (inputs) klassy; };

If someone is interested in doing a PR based on this code you're free to do so

Postboote1 commented 2 months ago

hello

is Klassy now in the Nixos Packages? Because i can't find it

Haskellered commented 2 months ago

If someone is interested in doing a PR based on this code you're free to do so

The problem is this only supports KDE Plasma 5.

Moe1369 commented 3 weeks ago

If someone is interested in doing a PR based on this code you're free to do so

The problem is this only supports KDE Plasma 5.

Not anymore