diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/plasma-5/default.nix')
-rw-r--r-- | nixpkgs/pkgs/desktops/plasma-5/default.nix | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/plasma-5/default.nix b/nixpkgs/pkgs/desktops/plasma-5/default.nix new file mode 100644 index 000000000000..781bf1606709 --- /dev/null +++ b/nixpkgs/pkgs/desktops/plasma-5/default.nix @@ -0,0 +1,194 @@ +/* + + # New packages + + READ THIS FIRST + + This module is for official packages in KDE Plasma 5. All available packages are + listed in `./srcs.nix`, although a few are not yet packaged in Nixpkgs (see + below). + + IF YOUR PACKAGE IS NOT LISTED IN `./srcs.nix`, IT DOES NOT GO HERE. + + Many of the packages released upstream are not yet built in Nixpkgs due to lack + of demand. To add a Nixpkgs build for an upstream package, copy one of the + existing packages here and modify it as necessary. + + # Updates + + 1. Update the URL in `./fetch.sh`. + 2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5` + from the top of the Nixpkgs tree. + 3. Use `nox-review wip` to check that everything builds. + 4. Commit the changes and open a pull request. + +*/ + +{ libsForQt5 +, lib +, config +, fetchurl +, gconf +, gsettings-desktop-schemas +}: + +let + maintainers = with lib.maintainers; [ ttuegel nyanloutre ]; + license = with lib.licenses; [ + lgpl21Plus + lgpl3Plus + bsd2 + mit + gpl2Plus + gpl3Plus + fdl12Plus + ]; + + srcs = import ./srcs.nix { + inherit fetchurl; + mirror = "mirror://kde"; + }; + + qtStdenv = libsForQt5.callPackage ({ stdenv }: stdenv) { }; + + packages = self: + let + + propagate = out: + let + setupHook = { writeScript }: + writeScript "setup-hook" '' + if [[ "''${hookName-}" != postHook ]]; then + postHooks+=("source @dev@/nix-support/setup-hook") + else + # Propagate $${out} output + propagatedUserEnvPkgs+=" @${out}@" + + if [ -z "$outputDev" ]; then + echo "error: \$outputDev is unset!" >&2 + exit 1 + fi + + # Propagate $dev so that this setup hook is propagated + # But only if there is a separate $dev output + if [ "$outputDev" != out ]; then + propagatedBuildInputs+=" @dev@" + fi + fi + ''; + in + callPackage setupHook { }; + + propagateBin = propagate "bin"; + + callPackage = self.newScope { + inherit propagate propagateBin; + + mkDerivation = args: + let + inherit (args) pname; + sname = args.sname or pname; + inherit (srcs.${sname}) src version; + + outputs = args.outputs or [ "out" ]; + hasBin = lib.elem "bin" outputs; + hasDev = lib.elem "dev" outputs; + + defaultSetupHook = if hasBin && hasDev then propagateBin else null; + setupHook = args.setupHook or defaultSetupHook; + nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ libsForQt5.wrapQtAppsHook ]; + + meta = + let meta = args.meta or { }; in + meta // { + homepage = meta.homepage or "http://www.kde.org"; + license = meta.license or license; + maintainers = (meta.maintainers or [ ]) ++ maintainers; + platforms = meta.platforms or lib.platforms.linux; + }; + in + qtStdenv.mkDerivation (args // { + inherit pname version meta outputs setupHook src nativeBuildInputs; + }); + }; + + in + { + aura-browser = callPackage ./aura-browser.nix { }; + bluedevil = callPackage ./bluedevil.nix { }; + breeze-gtk = callPackage ./breeze-gtk.nix { }; + breeze-qt5 = callPackage ./breeze-qt5.nix { }; + breeze-grub = callPackage ./breeze-grub.nix { }; + breeze-plymouth = callPackage ./breeze-plymouth { }; + discover = callPackage ./discover.nix { }; + flatpak-kcm = callPackage ./flatpak-kcm.nix { }; + kactivitymanagerd = callPackage ./kactivitymanagerd.nix { }; + kde-cli-tools = callPackage ./kde-cli-tools.nix { }; + kde-gtk-config = callPackage ./kde-gtk-config { inherit gsettings-desktop-schemas; }; + kdecoration = callPackage ./kdecoration.nix { }; + kdeplasma-addons = callPackage ./kdeplasma-addons.nix { }; + kgamma5 = callPackage ./kgamma5.nix { }; + khotkeys = callPackage ./khotkeys.nix { }; + kinfocenter = callPackage ./kinfocenter { }; + kmenuedit = callPackage ./kmenuedit.nix { }; + kpipewire = callPackage ./kpipewire.nix { }; + kscreen = callPackage ./kscreen.nix { }; + kscreenlocker = callPackage ./kscreenlocker.nix { }; + ksshaskpass = callPackage ./ksshaskpass.nix { }; + ksystemstats = callPackage ./ksystemstats.nix { }; + kwallet-pam = callPackage ./kwallet-pam.nix { }; + kwayland-integration = callPackage ./kwayland-integration.nix { }; + kwin = callPackage ./kwin { }; + kwrited = callPackage ./kwrited.nix { }; + layer-shell-qt = callPackage ./layer-shell-qt.nix { }; + libkscreen = callPackage ./libkscreen { }; + libksysguard = callPackage ./libksysguard { }; + milou = callPackage ./milou.nix { }; + oxygen = callPackage ./oxygen.nix { }; + oxygen-sounds = callPackage ./oxygen-sounds.nix { }; + plank-player = callPackage ./plank-player.nix { }; + plasma-bigscreen = callPackage ./plasma-bigscreen.nix { }; + plasma-browser-integration = callPackage ./plasma-browser-integration.nix { }; + plasma-desktop = callPackage ./plasma-desktop { }; + plasma-disks = callPackage ./plasma-disks.nix { }; + plasma-integration = callPackage ./plasma-integration { }; + plasma-mobile = callPackage ./plasma-mobile { }; + plasma-nano = callPackage ./plasma-nano { }; + plasma-nm = callPackage ./plasma-nm { }; + plasma-pa = callPackage ./plasma-pa.nix { inherit gconf; }; + plasma-remotecontrollers = callPackage ./plasma-remotecontrollers.nix { }; + plasma-sdk = callPackage ./plasma-sdk.nix { }; + plasma-systemmonitor = callPackage ./plasma-systemmonitor.nix { }; + plasma-thunderbolt = callPackage ./plasma-thunderbolt.nix { }; + plasma-vault = callPackage ./plasma-vault { }; + plasma-welcome = callPackage ./plasma-welcome.nix { }; + plasma-workspace = callPackage ./plasma-workspace { }; + plasma-workspace-wallpapers = callPackage ./plasma-workspace-wallpapers.nix { }; + polkit-kde-agent = callPackage ./polkit-kde-agent.nix { }; + powerdevil = callPackage ./powerdevil.nix { }; + qqc2-breeze-style = callPackage ./qqc2-breeze-style.nix { }; + sddm-kcm = callPackage ./sddm-kcm.nix { }; + systemsettings = callPackage ./systemsettings.nix { }; + xdg-desktop-portal-kde = callPackage ./xdg-desktop-portal-kde.nix { }; + + thirdParty = let inherit (libsForQt5) callPackage; in { + plasma-applet-caffeine-plus = callPackage ./3rdparty/addons/caffeine-plus.nix { }; + plasma-applet-virtual-desktop-bar = callPackage ./3rdparty/addons/virtual-desktop-bar.nix { }; + bismuth = callPackage ./3rdparty/addons/bismuth { }; + kwin-dynamic-workspaces = callPackage ./3rdparty/kwin/scripts/dynamic-workspaces.nix { }; + kwin-tiling = callPackage ./3rdparty/kwin/scripts/tiling.nix { }; + krohnkite = callPackage ./3rdparty/kwin/scripts/krohnkite.nix { }; + krunner-ssh = callPackage ./3rdparty/addons/krunner-ssh.nix { }; + krunner-symbols = callPackage ./3rdparty/addons/krunner-symbols.nix { }; + kzones = callPackage ./3rdparty/kwin/scripts/kzones.nix { }; + lightly = callPackage ./3rdparty/lightly { }; + parachute = callPackage ./3rdparty/kwin/scripts/parachute.nix { }; + polonium = callPackage ./3rdparty/addons/polonium.nix { }; + }; + + } // lib.optionalAttrs config.allowAliases { + ksysguard = throw "ksysguard has been replaced with plasma-systemmonitor"; + plasma-phone-components = throw "'plasma-phone-components' has been renamed to/replaced by 'plasma-mobile'"; + }; +in +lib.makeScope libsForQt5.newScope packages |