summary refs log tree commit diff
path: root/pkgs/applications/accessibility/squeekboard/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/accessibility/squeekboard/default.nix')
-rw-r--r--pkgs/applications/accessibility/squeekboard/default.nix70
1 files changed, 70 insertions, 0 deletions
diff --git a/pkgs/applications/accessibility/squeekboard/default.nix b/pkgs/applications/accessibility/squeekboard/default.nix
new file mode 100644
index 00000000000..cca36c38e77
--- /dev/null
+++ b/pkgs/applications/accessibility/squeekboard/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, gnome
+, glib
+, gtk3
+, wayland
+, wayland-protocols
+, libxml2
+, libxkbcommon
+, rustPlatform
+, feedbackd
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "squeekboard";
+  version = "1.14.0";
+
+  src = fetchFromGitLab {
+    domain = "source.puri.sm";
+    owner = "Librem5";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ayap40pgzcpmfydk5pbf3gwhh26m3cmbk6lyly4jihr9qw7dgb0";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    cargoUpdateHook = ''
+      cat Cargo.toml.in Cargo.deps > Cargo.toml
+    '';
+    name = "${pname}-${version}";
+    sha256 = "0148ynzmapxfrlccikf20ikmi0ssbkn9fl5wi6nh6azflv50pzzn";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    glib
+    wayland
+    wrapGAppsHook
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  buildInputs = [
+    gtk3
+    gnome.gnome-desktop
+    wayland
+    wayland-protocols
+    libxml2
+    libxkbcommon
+    feedbackd
+  ];
+
+  meta = with lib; {
+    description = "A virtual keyboard supporting Wayland";
+    homepage = "https://source.puri.sm/Librem5/squeekboard";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ artturin ];
+    platforms = platforms.linux;
+  };
+}