summary refs log tree commit diff
path: root/pkgs/applications/kde
diff options
context:
space:
mode:
authorK900 <me@0upti.me>2023-03-18 01:39:35 +0300
committerK900 <me@0upti.me>2023-04-20 11:53:36 +0300
commit9f5fbf001faab4f57118064d8bca27c12c623a9d (patch)
tree83f4a4594fe4ede798c01401a9ab04f9e00c2b83 /pkgs/applications/kde
parent590436c1ca3aac4ab6afa388d22779add6d0a5cb (diff)
downloadnixpkgs-9f5fbf001faab4f57118064d8bca27c12c623a9d.tar
nixpkgs-9f5fbf001faab4f57118064d8bca27c12c623a9d.tar.gz
nixpkgs-9f5fbf001faab4f57118064d8bca27c12c623a9d.tar.bz2
nixpkgs-9f5fbf001faab4f57118064d8bca27c12c623a9d.tar.lz
nixpkgs-9f5fbf001faab4f57118064d8bca27c12c623a9d.tar.xz
nixpkgs-9f5fbf001faab4f57118064d8bca27c12c623a9d.tar.zst
nixpkgs-9f5fbf001faab4f57118064d8bca27c12c623a9d.zip
plasma-mobile: 23.1 -> 23.04.0, (partially) absorb into kde/gear
Diffstat (limited to 'pkgs/applications/kde')
-rw-r--r--pkgs/applications/kde/alligator.nix42
-rw-r--r--pkgs/applications/kde/angelfish.nix77
-rw-r--r--pkgs/applications/kde/audiotube.nix64
-rw-r--r--pkgs/applications/kde/calindori.nix46
-rw-r--r--pkgs/applications/kde/default.nix18
-rw-r--r--pkgs/applications/kde/kalk.nix50
-rw-r--r--pkgs/applications/kde/kasts.nix67
-rw-r--r--pkgs/applications/kde/kclock.nix46
-rw-r--r--pkgs/applications/kde/keysmith.nix39
-rw-r--r--pkgs/applications/kde/koko.nix81
-rw-r--r--pkgs/applications/kde/krecorder.nix42
-rw-r--r--pkgs/applications/kde/ktrip.nix47
-rw-r--r--pkgs/applications/kde/kweather.nix48
-rw-r--r--pkgs/applications/kde/neochat.nix73
-rw-r--r--pkgs/applications/kde/plasmatube/default.nix50
-rw-r--r--pkgs/applications/kde/qmlkonsole.nix42
-rw-r--r--pkgs/applications/kde/tokodon.nix59
17 files changed, 891 insertions, 0 deletions
diff --git a/pkgs/applications/kde/alligator.nix b/pkgs/applications/kde/alligator.nix
new file mode 100644
index 00000000000..4470141af29
--- /dev/null
+++ b/pkgs/applications/kde/alligator.nix
@@ -0,0 +1,42 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kconfig
+, kcoreaddons
+, ki18n
+, kirigami-addons
+, kirigami2
+, qtquickcontrols2
+, syndication
+}:
+
+mkDerivation rec {
+  pname = "alligator";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kconfig
+    kcoreaddons
+    ki18n
+    kirigami-addons
+    kirigami2
+    qtquickcontrols2
+    syndication
+  ];
+
+  meta = with lib; {
+    description = "RSS reader made with kirigami";
+    homepage = "https://invent.kde.org/plasma-mobile/alligator";
+    # https://invent.kde.org/plasma-mobile/alligator/-/commit/db30f159c4700244532b17a260deb95551045b7a
+    #  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+    license = with licenses; [ gpl2Only gpl3Only ];
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/kde/angelfish.nix b/pkgs/applications/kde/angelfish.nix
new file mode 100644
index 00000000000..6de8e703bd7
--- /dev/null
+++ b/pkgs/applications/kde/angelfish.nix
@@ -0,0 +1,77 @@
+{ lib
+, mkDerivation
+, cmake
+, corrosion
+, extra-cmake-modules
+, kconfig
+, kcoreaddons
+, kdbusaddons
+, ki18n
+, kirigami-addons
+, kirigami2
+, knotifications
+, kpurpose
+, kwindowsystem
+, qtfeedback
+, qtquickcontrols2
+, qqc2-desktop-style
+, qtwebengine
+, rustPlatform
+, srcs
+
+# These must be updated in tandem with package updates.
+, cargoShaForVersion ? "23.03.80"
+, cargoSha256 ? "sha256-nXWQNXVlPWRQdDPXR5NsHJR6kaLxV7UxPC0OIubH/4c="
+}:
+
+# Guard against incomplete updates.
+# Values are provided as callPackage inputs to enable easier overrides through overlays.
+if cargoShaForVersion != srcs.angelfish.version
+then builtins.throw ''
+  angelfish package update is incomplete.
+         Hash for cargo dependencies is declared for version ${cargoShaForVersion}, but we're building ${srcs.angelfish.version}.
+         Update the cargoSha256 and cargoShaForVersion for angelfish.
+'' else
+
+mkDerivation rec {
+  pname = "angelfish";
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    src = srcs.angelfish.src;
+    name = "${pname}-${srcs.angelfish.version}";
+    sha256 = cargoSha256;
+  };
+
+  nativeBuildInputs = [
+    cmake
+    corrosion
+    extra-cmake-modules
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  buildInputs = [
+    kconfig
+    kcoreaddons
+    kdbusaddons
+    ki18n
+    kirigami-addons
+    kirigami2
+    knotifications
+    kpurpose
+    kwindowsystem
+    qtfeedback
+    qtquickcontrols2
+    qqc2-desktop-style
+    qtwebengine
+  ];
+
+  meta = with lib; {
+    description = "Web browser for Plasma Mobile";
+    homepage = "https://invent.kde.org/plasma-mobile/angelfish";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/kde/audiotube.nix b/pkgs/applications/kde/audiotube.nix
new file mode 100644
index 00000000000..0bd22ee06f6
--- /dev/null
+++ b/pkgs/applications/kde/audiotube.nix
@@ -0,0 +1,64 @@
+{ lib
+, mkDerivation
+
+, extra-cmake-modules
+, wrapGAppsHook
+
+, gst_all_1
+, kcoreaddons
+, kcrash
+, ki18n
+, kirigami2
+, kirigami-addons
+, qtimageformats
+, qtmultimedia
+, qtquickcontrols2
+, python3Packages
+}:
+
+mkDerivation rec {
+  pname = "audiotube";
+
+  nativeBuildInputs = [
+    extra-cmake-modules
+    wrapGAppsHook
+    python3Packages.wrapPython
+    python3Packages.pybind11
+  ];
+
+  buildInputs = [
+    kcoreaddons
+    kcrash
+    ki18n
+    kirigami2
+    kirigami-addons
+    qtimageformats
+    qtmultimedia
+    qtquickcontrols2
+  ] ++ (with gst_all_1; [
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gstreamer
+  ]) ++ pythonPath;
+
+  pythonPath = with python3Packages; [
+    yt-dlp
+    ytmusicapi
+  ];
+
+  preFixup = ''
+    buildPythonPath "$pythonPath"
+    qtWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH")
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+  dontWrapGApps = true;
+
+  meta = with lib; {
+    description = "Client for YouTube Music";
+    homepage = "https://invent.kde.org/plasma-mobile/audiotube";
+    # https://invent.kde.org/plasma-mobile/audiotube/-/tree/c503d0607a3386112beaa9cf990ab85fe33ef115/LICENSES
+    license = with licenses; [ bsd2 cc0 gpl2Only gpl3Only ];
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/kde/calindori.nix b/pkgs/applications/kde/calindori.nix
new file mode 100644
index 00000000000..bb10fa7bb10
--- /dev/null
+++ b/pkgs/applications/kde/calindori.nix
@@ -0,0 +1,46 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kcalendarcore
+, kconfig
+, kcoreaddons
+, kdbusaddons
+, ki18n
+, kirigami2
+, knotifications
+, kpeople
+, kservice
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+  pname = "calindori";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kcalendarcore
+    kconfig
+    kcoreaddons
+    kdbusaddons
+    ki18n
+    kirigami2
+    knotifications
+    kpeople
+    kservice
+    qtquickcontrols2
+  ];
+
+  meta = with lib; {
+    description = "Calendar for Plasma Mobile";
+    homepage = "https://invent.kde.org/plasma-mobile/calindori";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index 6a57ccf9ee6..3ffb345a347 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -235,6 +235,24 @@ let
       umbrello = callPackage ./umbrello.nix {};
       yakuake = callPackage ./yakuake.nix {};
       zanshin = callPackage ./zanshin.nix {};
+
+      # Plasma Mobile Gear
+      alligator = callPackage ./alligator.nix {};
+      angelfish = callPackage ./angelfish.nix { inherit srcs; };
+      audiotube = callPackage ./audiotube.nix {};
+      calindori = callPackage ./calindori.nix {};
+      kalk = callPackage ./kalk.nix {};
+      kasts = callPackage ./kasts.nix {};
+      kclock = callPackage ./kclock.nix {};
+      keysmith = callPackage ./keysmith.nix {};
+      koko = callPackage ./koko.nix {};
+      krecorder = callPackage ./krecorder.nix {};
+      ktrip = callPackage ./ktrip.nix {};
+      kweather = callPackage ./kweather.nix {};
+      neochat = callPackage ./neochat.nix {};
+      plasmatube = callPackage ./plasmatube {};
+      qmlkonsole = callPackage ./qmlkonsole.nix {};
+      tokodon = callPackage ./tokodon.nix {};
     };
 
 in lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/applications/kde/kalk.nix b/pkgs/applications/kde/kalk.nix
new file mode 100644
index 00000000000..8d63991fb08
--- /dev/null
+++ b/pkgs/applications/kde/kalk.nix
@@ -0,0 +1,50 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+, bison
+, flex
+
+, gmp
+, mpfr
+
+, kconfig
+, kcoreaddons
+, ki18n
+, kirigami2
+, kunitconversion
+, qtfeedback
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+  pname = "kalk";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    bison
+    flex
+  ];
+
+  buildInputs = [
+    gmp
+    mpfr
+
+    kconfig
+    kcoreaddons
+    ki18n
+    kirigami2
+    kunitconversion
+    qtfeedback
+    qtquickcontrols2
+  ];
+
+  meta = with lib; {
+    description = "Calculator built with kirigami";
+    homepage = "https://invent.kde.org/plasma-mobile/kalk";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/kde/kasts.nix b/pkgs/applications/kde/kasts.nix
new file mode 100644
index 00000000000..59b45539820
--- /dev/null
+++ b/pkgs/applications/kde/kasts.nix
@@ -0,0 +1,67 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+, wrapGAppsHook
+
+, gst_all_1
+, kconfig
+, kcoreaddons
+, ki18n
+, kirigami-addons
+, kirigami2
+, networkmanager-qt
+, qtkeychain
+, qtmultimedia
+, qtquickcontrols2
+, syndication
+, taglib
+, threadweaver
+}:
+
+let
+  inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad;
+in
+mkDerivation rec {
+  pname = "kasts";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gstreamer
+
+    kconfig
+    kcoreaddons
+    ki18n
+    kirigami-addons
+    kirigami2
+    networkmanager-qt
+    qtkeychain
+    qtmultimedia
+    qtquickcontrols2
+    syndication
+    taglib
+    threadweaver
+  ];
+
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+  dontWrapGApps = true;
+
+  meta = with lib; {
+    description = "Mobile podcast application";
+    homepage = "https://apps.kde.org/kasts/";
+    # https://invent.kde.org/plasma-mobile/kasts/-/tree/master/LICENSES
+    license = with licenses; [ bsd2 cc-by-sa-40 cc0 gpl2Only gpl2Plus gpl3Only gpl3Plus lgpl3Plus ];
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/kde/kclock.nix b/pkgs/applications/kde/kclock.nix
new file mode 100644
index 00000000000..6212fa8b040
--- /dev/null
+++ b/pkgs/applications/kde/kclock.nix
@@ -0,0 +1,46 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kconfig
+, kcoreaddons
+, kdbusaddons
+, ki18n
+, kirigami-addons
+, kirigami2
+, knotifications
+, plasma-framework
+, qtmultimedia
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+  pname = "kclock";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kconfig
+    kcoreaddons
+    kdbusaddons
+    ki18n
+    kirigami-addons
+    kirigami2
+    knotifications
+    plasma-framework
+    qtmultimedia
+    qtquickcontrols2
+  ];
+
+  meta = with lib; {
+    description = "Clock app for plasma mobile";
+    homepage = "https://invent.kde.org/plasma-mobile/kclock";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/kde/keysmith.nix b/pkgs/applications/kde/keysmith.nix
new file mode 100644
index 00000000000..eaca7f68e24
--- /dev/null
+++ b/pkgs/applications/kde/keysmith.nix
@@ -0,0 +1,39 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kdbusaddons
+, ki18n
+, kirigami2
+, kwindowsystem
+, libsodium
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+  pname = "keysmith";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kdbusaddons
+    ki18n
+    kirigami2
+    kwindowsystem
+    libsodium
+    qtquickcontrols2
+  ];
+
+  meta = with lib; {
+    description = "OTP client for Plasma Mobile and Desktop";
+    license = licenses.gpl3;
+    homepage = "https://github.com/KDE/keysmith";
+    maintainers = with maintainers; [ samueldr shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/kde/koko.nix b/pkgs/applications/kde/koko.nix
new file mode 100644
index 00000000000..3543a7284bf
--- /dev/null
+++ b/pkgs/applications/kde/koko.nix
@@ -0,0 +1,81 @@
+{ lib
+, mkDerivation
+
+, fetchurl
+, cmake
+, extra-cmake-modules
+
+, exiv2
+, kconfig
+, kcoreaddons
+, kdeclarative
+, kfilemetadata
+, kguiaddons
+, ki18n
+, kio
+, kirigami2
+, knotifications
+, kpurpose
+, kquickimageedit
+, qtgraphicaleffects
+, qtlocation
+, qtquickcontrols2
+}:
+
+let
+  # URLs snapshotted through
+  # https://web.archive.org/save/$url
+  # Update when stale enough I guess?
+  admin1 = fetchurl {
+    url = "https://web.archive.org/web/20210714035424if_/http://download.geonames.org/export/dump/admin1CodesASCII.txt";
+    sha256 = "0r783yzajs26hvccdy4jv2v06xfgadx2g90fz3yn7lx8flz4nhwm";
+  };
+  admin2 = fetchurl {
+    url = "https://web.archive.org/web/20210714035427if_/http://download.geonames.org/export/dump/admin2Codes.txt";
+    sha256 = "1n5nzp3xblhr93rb1sadi5vfbw29slv5lc6cxq21h3x3cg0mwqh3";
+  };
+  cities1000 = fetchurl {
+    url = "https://web.archive.org/web/20210714035406if_/http://download.geonames.org/export/dump/cities1000.zip";
+    sha256 = "0cwbfff8gzci5zrahh6d53b9b3bfv1cbwlv0k6076531i1c7md9p";
+  };
+in
+mkDerivation rec {
+  pname = "koko";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    exiv2
+    kconfig
+    kcoreaddons
+    kdeclarative
+    kfilemetadata
+    kguiaddons
+    ki18n
+    kio
+    kirigami2
+    knotifications
+    kpurpose
+    kquickimageedit
+    qtgraphicaleffects
+    qtlocation
+    qtquickcontrols2
+  ];
+
+  prePatch = ''
+    ln -s ${admin1}     src/admin1CodesASCII.txt
+    ln -s ${admin2}     src/admin2Codes.txt
+    ln -s ${cities1000} src/cities1000.zip
+  '';
+
+  meta = with lib; {
+    description = "Image gallery mobile application";
+    homepage = "https://apps.kde.org/koko/";
+    # LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
+    license = [ licenses.lgpl3Only licenses.lgpl21Only ];
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/kde/krecorder.nix b/pkgs/applications/kde/krecorder.nix
new file mode 100644
index 00000000000..71164d1b02d
--- /dev/null
+++ b/pkgs/applications/kde/krecorder.nix
@@ -0,0 +1,42 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kconfig
+, kcoreaddons
+, ki18n
+, kirigami2
+, kirigami-addons
+, kwindowsystem
+, qtmultimedia
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+  pname = "krecorder";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kconfig
+    kcoreaddons
+    ki18n
+    kirigami2
+    kirigami-addons
+    kwindowsystem
+    qtmultimedia
+    qtquickcontrols2
+  ];
+
+  meta = with lib; {
+    description = "Audio recorder for Plasma Mobile";
+    homepage = "https://invent.kde.org/plasma-mobile/krecorder";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/kde/ktrip.nix b/pkgs/applications/kde/ktrip.nix
new file mode 100644
index 00000000000..5377dd10658
--- /dev/null
+++ b/pkgs/applications/kde/ktrip.nix
@@ -0,0 +1,47 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kconfig
+, kcontacts
+, kcoreaddons
+, ki18n
+, kirigami-addons
+, kirigami2
+, kitemmodels
+, kpublictransport
+, qqc2-desktop-style
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+  pname = "ktrip";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kconfig
+    kcontacts
+    kcoreaddons
+    ki18n
+    kirigami-addons
+    kirigami2
+    kitemmodels
+    kpublictransport
+    qqc2-desktop-style
+    qtquickcontrols2
+  ];
+
+  meta = with lib; {
+    description = "Public transport trip planner";
+    homepage = "https://apps.kde.org/ktrip/";
+    # GPL-2.0-or-later
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/kde/kweather.nix b/pkgs/applications/kde/kweather.nix
new file mode 100644
index 00000000000..d6a1f999ce6
--- /dev/null
+++ b/pkgs/applications/kde/kweather.nix
@@ -0,0 +1,48 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kconfig
+, kholidays
+, ki18n
+, kirigami-addons
+, kirigami2
+, knotifications
+, kquickcharts
+, kweathercore
+, plasma-framework
+, qtcharts
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+  pname = "kweather";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kconfig
+    kholidays
+    ki18n
+    kirigami-addons
+    kirigami2
+    knotifications
+    kquickcharts
+    kweathercore
+    plasma-framework
+    qtcharts
+    qtquickcontrols2
+  ];
+
+  meta = with lib; {
+    description = "Weather application for Plasma Mobile";
+    homepage = "https://invent.kde.org/plasma-mobile/kweather";
+    license = with licenses; [ gpl2Plus cc-by-40 ];
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/kde/neochat.nix b/pkgs/applications/kde/neochat.nix
new file mode 100644
index 00000000000..4df33add679
--- /dev/null
+++ b/pkgs/applications/kde/neochat.nix
@@ -0,0 +1,73 @@
+{ mkDerivation
+, lib
+
+, cmake
+, extra-cmake-modules
+, pkg-config
+, wrapQtAppsHook
+
+, cmark
+, kconfig
+, kdbusaddons
+, ki18n
+, kio
+, kirigami-addons
+, kirigami2
+, kitemmodels
+, knotifications
+, kquickimageedit
+, libpulseaudio
+, libquotient
+, libsecret
+, olm
+, qcoro
+, qqc2-desktop-style
+, qtgraphicaleffects
+, qtkeychain
+, qtmultimedia
+, qtquickcontrols2
+, sonnet
+}:
+
+mkDerivation {
+  pname = "neochat";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    cmark
+    kconfig
+    kdbusaddons
+    kio
+    ki18n
+    kirigami-addons
+    kirigami2
+    kitemmodels
+    knotifications
+    kquickimageedit
+    libpulseaudio
+    libquotient
+    libsecret
+    olm
+    qcoro
+    qtgraphicaleffects
+    qtkeychain
+    qtmultimedia
+    qtquickcontrols2
+    qqc2-desktop-style
+    sonnet
+  ];
+
+  meta = with lib; {
+    description = "A client for matrix, the decentralized communication protocol";
+    homepage = "https://apps.kde.org/en/neochat";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/applications/kde/plasmatube/default.nix b/pkgs/applications/kde/plasmatube/default.nix
new file mode 100644
index 00000000000..555b9f801c2
--- /dev/null
+++ b/pkgs/applications/kde/plasmatube/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, mkDerivation
+, cmake
+, extra-cmake-modules
+, wrapGAppsHook
+, gst_all_1
+, kcoreaddons
+, kdeclarative
+, ki18n
+, kirigami2
+, mpv
+, qtmultimedia
+, qtquickcontrols2
+}:
+
+mkDerivation {
+  pname = "plasmatube";
+
+  nativeBuildInputs = [
+    extra-cmake-modules
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    kcoreaddons
+    kdeclarative
+    ki18n
+    kirigami2
+    mpv
+    qtmultimedia
+    qtquickcontrols2
+  ] ++ (with gst_all_1; [
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gstreamer
+  ]);
+
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+  dontWrapGApps = true;
+
+  meta = {
+    description = "Youtube player powered by an invidious server";
+    homepage = "https://invent.kde.org/plasma-mobile/plasmatube";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/kde/qmlkonsole.nix b/pkgs/applications/kde/qmlkonsole.nix
new file mode 100644
index 00000000000..da892fb47c0
--- /dev/null
+++ b/pkgs/applications/kde/qmlkonsole.nix
@@ -0,0 +1,42 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+
+, kconfig
+, ki18n
+, kirigami-addons
+, kirigami2
+, kcoreaddons
+, qtquickcontrols2
+, kwindowsystem
+, qmltermwidget
+}:
+
+mkDerivation {
+  pname = "qmlkonsole";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kconfig
+    ki18n
+    kirigami-addons
+    kirigami2
+    qtquickcontrols2
+    kcoreaddons
+    kwindowsystem
+    qmltermwidget
+  ];
+
+  meta = with lib; {
+    description = "Terminal app for Plasma Mobile";
+    homepage = "https://invent.kde.org/plasma-mobile/qmlkonsole";
+    license = with licenses; [ gpl2Plus gpl3Plus cc0 ];
+    maintainers = with maintainers; [ balsoft ];
+  };
+}
diff --git a/pkgs/applications/kde/tokodon.nix b/pkgs/applications/kde/tokodon.nix
new file mode 100644
index 00000000000..bf40a5a0015
--- /dev/null
+++ b/pkgs/applications/kde/tokodon.nix
@@ -0,0 +1,59 @@
+{ lib
+, mkDerivation
+
+, cmake
+, extra-cmake-modules
+, pkg-config
+
+, kconfig
+, kdbusaddons
+, ki18n
+, kirigami2
+, kirigami-addons
+, knotifications
+, qqc2-desktop-style
+, qtbase
+, qtkeychain
+, qtmultimedia
+, qtquickcontrols2
+, qttools
+, qtwebsockets
+, kitemmodels
+, pimcommon
+}:
+
+mkDerivation {
+  pname = "tokodon";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    pkg-config
+  ];
+
+  buildInputs = [
+    kconfig
+    kdbusaddons
+    ki18n
+    kirigami2
+    kirigami-addons
+    knotifications
+    qqc2-desktop-style
+    qtbase
+    qtkeychain
+    qtmultimedia
+    qtquickcontrols2
+    qttools
+    qtwebsockets
+    kitemmodels
+    pimcommon
+  ];
+
+  meta = with lib; {
+    description = "A Mastodon client for Plasma and Plasma Mobile";
+    homepage = "https://invent.kde.org/network/tokodon";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ matthiasbeyer ];
+  };
+}