3

aspell creates following files in my home:

.aspell.en.prepl
.aspell.en.pws

How can I change the location globally, i.e. to $HOME/.cache/aspell ?

I need to reference the $HOME environment variables in /etc/aspell.conf. I tried the following, but it does not seem to work:

home-dir $HOME/.cache/

How can I set home-dir globally, to be each users ~/.cache directory ?

CLARIFICATION

I don't run aspell manually. Applications such as Thunderbird run it themselves. Therefore, using a shell alias is not really a solution.

  • It looks like environment variables are not expanded in .aspell.conf, only an hardcoded path such as /home/user/.cache works. What you can do instead is to create a wrapper that would replace $(command -v aspell) and would look something like that: HOME=~/.cache aspell "@$" – Arkadiusz Drabczyk Apr 15 at 13:50
  • Or just an alias, if that's enough. – Arkadiusz Drabczyk Apr 15 at 13:56
  • 1
    If you clarified that you don't use aspell directly you can still follow my advice and replace aspell with a wrapper. – Arkadiusz Drabczyk Apr 17 at 3:39
  • Do you ever start the applications that uses aspell with a working directory that is anything other than your home directory? – Kusalananda Apr 24 at 15:18
2
+125

Other application do use aspell over library, environnement variables won't work in that case at least not without affecting the main application (Thunderbird or other).

I did patched aspell to create a custom version that match this question the repo is here and here is the patch to use this custom version you need to uninstall the system's version packages (aspell, libaspell, aspell-[en/fr/etc]) especially libaspell you may force the removal of the packages if the dependency are extended to other packages that you don't want to remove. (uninstalling system's packages can be avoided if you setup your environnement variables to use /use/local before /usr for aspell and libaspell... this may be set by default depending on the used distro)

Installation:

git clone https://github.com/Intika-Linux-Apps/Aspell.git
cd Aspell
./autogen
./configure
make install

Then install the needed dictionary from here for instance for the English dictionary you would do:

wget https://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-2019.10.06-0.tar.bz2
tar -xvf aspell6-en-2019.10.06-0.tar.bz2
cd aspell6-en-2019.10.06-0/
./configure
make install

Note:

  • There is an issue about this here also there is here a related discussion.
  • The patch in this answer can be implemented with LD_PRELOAD by injecting a custom patching library that would change the targeted variable value for the running application... (i would need to implement that custom library... then it would be loaded by setting the env. variable LD_PRELOAD for Thunderbird or other app using aspell)... any way as there is already an open issue for the matter this should be fixed mainstream later on.
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.