#:use-module (conf home program)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
+ #:use-module (gnu packages aspell)
#:use-module (gnu packages emacs)
#:use-module (gnu packages emacs-xyz)
#:use-module (gnu packages freedesktop)
(dotfiles
(list "emacs/.config/emacs/conf/conf-keys.el")))))
+(define emacs-language-service
+ (service home-program-service-type
+ (home-program-configuration
+ (packages
+ (list aspell
+ aspell-dict-en))
+ (dotfiles
+ (list "emacs/.config/emacs/conf/conf-language.el")))))
+
(define emacs-package-service
(service home-program-service-type
(home-program-configuration
emacs-document-service
emacs-email-service
emacs-keys-service
+ emacs-language-service
emacs-package-service
emacs-pass-service
emacs-service))
--- /dev/null
+;; Copyright (c) 2022 Jakub Czajka <jakub@ekhem.eu.org>
+;; License: GPL-3.0 or later.
+;;
+;; conf-language.el - configuration for the spell checker.
+
+(require 'conf-package)
+
+(set-language-environment "UTF-8")
+
+(use-package flyspell
+ :when
+ (conf:executables-p (list "aspell"))
+ :ensure t
+ :bind
+ (:map flyspell-mode-map
+ ("C-x ," . flyspell-buffer)
+ ("C-x <" . flyspell-goto-next-error))
+ :custom
+ (ispell-program-name "aspell")
+ (ispell-dictionary "en"))
+
+(use-package flyspell
+ :after
+ (org)
+ :hook
+ (org-mode . flyspell-mode)
+ (org-mode . flyspell-prog-mode))
+
+(provide 'conf-language)