diff --git a/modules/home/hunspell.nix b/modules/home/hunspell.nix new file mode 100644 index 0000000..7590c1e --- /dev/null +++ b/modules/home/hunspell.nix @@ -0,0 +1,29 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.sydnix.hunspell; +in { + options.sydnix.hunspell = { + enable = lib.mkEnableOption "Hunspell"; + package = lib.mkPackageOption pkgs "hunspell" {}; + dictionaries = lib.mkOption { + description = '' + Hunspell dictionary packages to install. + ''; + default = _: []; + type = lib.types.anything // { + merge = + _loc: defs: dicts: lib.concatMap (f: f dicts) (lib.getValues defs); + check = lib.isFunction; + }; + }; + }; + + config = lib.mkIf cfg.enable { + home.sessionVariables.DICPATH = + lib.makeSearchPath + "share/hunspell" + (cfg.dictionaries pkgs.hunspellDicts); + + home.packages = [ cfg.package ]; + }; +} diff --git a/modules/home/users/msyds/emacs/lisp/syd/prose.el b/modules/home/users/msyds/emacs/lisp/syd/prose.el index 33c4dd9..9222d70 100755 --- a/modules/home/users/msyds/emacs/lisp/syd/prose.el +++ b/modules/home/users/msyds/emacs/lisp/syd/prose.el @@ -35,8 +35,7 @@ :general (:states '(normal visual) "z =" #'syd-jinx-or-ispell) :config - ;; Default is "en_US"; fuck that! - (jinx-languages "en" t)) + (jinx-languages "en_GB en_US ko_KR" t)) (defvar syd-prose-mode-hook (list #'syd-prose-set-visual-fill-column-center diff --git a/modules/home/users/msyds/emacs/nix/jinx.nix b/modules/home/users/msyds/emacs/nix/jinx.nix index cd8ac94..de0d4d0 100755 --- a/modules/home/users/msyds/emacs/nix/jinx.nix +++ b/modules/home/users/msyds/emacs/nix/jinx.nix @@ -6,28 +6,16 @@ in { enable = lib.mkEnableOption "Jinx spell-check"; }; - config = lib.mkIf cfg.enable - (let - my-aspell = pkgs.aspellWithDicts - (dicts: with dicts; [ - en en-computers en-science - ]); - in { - sydnix.impermanence.directories = - let xdg-config-home = - lib.removePrefix "${config.home.homeDirectory}/" - (lib.removePrefix "~/" - config.xdg.configHome); - in [ "${xdg-config-home}/enchant" ]; + config = lib.mkIf cfg.enable { + sydnix.impermanence.directories = + let xdg-config-home = + lib.removePrefix "${config.home.homeDirectory}/" + (lib.removePrefix "~/" + config.xdg.configHome); + in [ "${xdg-config-home}/enchant" ]; - sydnix.emacs = { - emacsPackages = epkgs: [ - epkgs.jinx - ]; - extraWrapProgramArgs = [ - "--prefix" "PATH" ":" (lib.makeBinPath [my-aspell]) - "--set" "ASPELL_CONF" "dict-dir ${my-aspell}/lib/aspell" - ]; - }; - }); + sydnix.emacs.emacsPackages = epkgs: [ + epkgs.jinx + ]; + }; } diff --git a/modules/home/users/msyds/hunspell.nix b/modules/home/users/msyds/hunspell.nix new file mode 100644 index 0000000..fb6e49b --- /dev/null +++ b/modules/home/users/msyds/hunspell.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.sydnix.users.msyds.hunspell; +in { + options.sydnix.users.msyds.hunspell = { + enable = lib.mkEnableOption "Hunspell"; + }; + + config = lib.mkIf cfg.enable { + sydnix.hunspell = { + enable = true; + dictionaries = ds: with ds; [ + en_US + en_GB-ise # en_GB with -ise endings. + ko_KR + ]; + }; + }; +} diff --git a/users/msyds/default.nix b/users/msyds/default.nix index 3adbb4d..150dbc7 100644 --- a/users/msyds/default.nix +++ b/users/msyds/default.nix @@ -35,6 +35,7 @@ waybar.enable = true; }; users.msyds = { + hunspell.enable = true; emacs.enable = true; impermanence.enable = true; syncthing.enable = true;