summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
diff options
context:
space:
mode:
authorMichael Weiss <dev.primeos@gmail.com>2018-08-04 16:01:44 +0200
committerGitHub <noreply@github.com>2018-08-04 16:01:44 +0200
commit9ef1406a9918f3414d081563ba34084c5e187a58 (patch)
tree17f911c54c50791681a1cacb35870ffa5ee0fc80 /pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
parentd4893a74e5bcc6570a670d92896779390bb06cda (diff)
downloadnixpkgs-9ef1406a9918f3414d081563ba34084c5e187a58.tar
nixpkgs-9ef1406a9918f3414d081563ba34084c5e187a58.tar.gz
nixpkgs-9ef1406a9918f3414d081563ba34084c5e187a58.tar.bz2
nixpkgs-9ef1406a9918f3414d081563ba34084c5e187a58.tar.lz
nixpkgs-9ef1406a9918f3414d081563ba34084c5e187a58.tar.xz
nixpkgs-9ef1406a9918f3414d081563ba34084c5e187a58.tar.zst
nixpkgs-9ef1406a9918f3414d081563ba34084c5e187a58.zip
signal-desktop: Allow overriding the spell checker language (#44456)
Thought this could be useful for others as well. Unfortunately it will
also override the UI language.

Example usage:

  environment.systemPackages = with pkgs; [
    (signal-desktop.override {
      spellcheckerLanguage = "de_DE";
    })
  ];
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/signal-desktop/default.nix')
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix16
1 files changed, 16 insertions, 0 deletions
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index b7066a501a3..459bdf98b1e 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -3,9 +3,24 @@
 , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
 , libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib
 , cups, expat, udev
+# Unfortunately this also overwrites the UI language (not just the spell
+# checking language!):
+, hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
+# For a full list of available languages:
+# $ cat pkgs/development/libraries/hunspell/dictionaries.nix | grep "dictFileName =" | awk '{ print $3 }'
 }:
 
 let
+  customLanguageWrapperArgs = (with lib;
+    let
+      # E.g. "de_DE" -> "de-de" (spellcheckerLanguage -> hunspellDict)
+      spellLangComponents = splitString "_" spellcheckerLanguage;
+      hunspellDict = elemAt spellLangComponents 0 + "-" + toLower (elemAt spellLangComponents 1);
+    in if spellcheckerLanguage != null
+      then ''
+        --set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \
+        --set LC_MESSAGES "${spellcheckerLanguage}"''
+      else "");
   rpath = lib.makeLibraryPath [
     alsaLib
     atk
@@ -68,6 +83,7 @@ in stdenv.mkDerivation rec {
              --set-rpath ${rpath}:$out/libexec $out/libexec/signal-desktop
     wrapProgram $out/libexec/signal-desktop \
       --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
+      ${customLanguageWrapperArgs} \
       "''${gappsWrapperArgs[@]}"
 
     # Symlink to bin