Add spell-checking settings: disable spell checker and select languages
Description
Please add spell-checking settings to Proton Pass, especially to the desktop application.
Currently, Proton Pass performs spell checking automatically, but there does not appear to be any user-accessible setting to control it. On Linux, this can result in valid words being underlined in red when Proton Pass uses a different language from the language being typed.
For example, using Proton Pass Desktop on EndeavourOS (Arch Linux) and regularly work in both Estonian and English. English text is currently shown with red spell-check underlines, and I cannot find any way in Proton Pass to either select the correct language or disable spell checking.
Requested settings
Please add the following options under Proton Pass settings:
- Enable spell checking — on/off
- Spell-check languages — allow one or more languages to be selected simultaneously
- Ideally, allow automatic language detection as an additional option
For example:
- Estonian (
et) - English (United Kingdom) (
en-GB) - English (United States) (
en-US)
It is important to support multiple languages simultaneously because many users regularly enter notes, item names and other text in more than one language.
Expected behaviour
If spell checking is enabled, Proton Pass should use the languages selected by the user.
If spell checking is disabled, no spell-check underlines should be shown.
The selected setting should persist between application restarts.
Technical note
Proton Pass Desktop is Electron-based, and Electron already provides APIs for controlling spell checking and selecting spell-check languages, including:
session.setSpellCheckerEnabled(false)
session.setSpellCheckerLanguages(['et', 'en-GB', 'en-US'])
Therefore, the underlying Electron functionality already exists; Proton Pass mainly needs to expose it as a user preference.
This would be particularly useful on Linux, where relying only on the operating system locale is insufficient for multilingual users.
-
Edmund Laugasson
commented
Used Markdown syntax, unfortunately here comments do not respect it. You can copy Markdown code and paste it into plain text editor, e.g. search https://duckduckgo.com/?q=plain+text+editor - there are also online plain text editors available. Then in turn copy from plain text editor that Markdown code and paste it e.g. into LibreOffice Writer and you will see formatted output. Problem is, that when copying Markdown code here from web browser directly, then it comes as HTML and not Markdown. Even you use CTRL+SHIFT+V e.g. in LibreOffice Writer to paste without formatting, you will still get Markdown code and not formatted output.
Also this is possible to store plain text file with Markdown code as *.md and then open that file with LibreOffice Writer, also Okular (KDE document viewer), etc app, that can show Markdown. E.g. in Android there is good text editor Markor, that is capable to show Markdown rendered output. Markor can be found in F-droid https://f-droid.org/en/packages/net.gsantner.markor/ -
Edmund Laugasson
commented
Close Proton Pass, also from system tray
To turn off spelling:
```bash
python - <<'PY'
import json
from pathlib import Pathp = Path.home() / ".config/Proton Pass/Partitions/app/Preferences"
data = json.loads(p.read_text())
data.setdefault("browser", {})
data["browser"]["enable_spellchecking"] = Falsep.write_text(json.dumps(data, separators=(",", ":")))
PY
```After that you may check:
```bash
cat ~/.config/"Proton Pass"/Partitions/app/Preferences
```You will see something like:
```json
{"browser":{"enable_spellchecking":false},"migrated_user_scripts_toggle":true,"spellcheck":{"dictionaries":["et","en-GB","en-US"],"dictionary":"","use_spelling_service":false}}
```Whenever you need turn spelling back on:
```json
"enable_spellchecking":true
```You can check results, after changing settings:
```bash
grep -o '"browser"[^}]*}' \
~/.config/"Proton Pass"/Partitions/app/Preferences
```... you suppose to see e.g. when turned off:
```json
"browser":{"enable_spellchecking":false}
```Now are red lines gone and speller turned off. For now manually, hopefully in future there will be also appropriate options in GUI of Proton Pass
-
Edmund Laugasson
commented
I found and verified a working Linux workaround.
Installed appropriate dictionaries:
```bash
yay -Sy hunspell-et --needed
sudo pacman -Sy hunspell-en_gb hunspell-en_us hyphen-en --needed
```Proton Pass Desktop stores its Electron spell-checker configuration in:
`~/.config/Proton Pass/Partitions/app/Preferences`
By default, my configuration contained only:
```json
"spellcheck":{"dictionaries":["et"],"dictionary":""}
```After changing it to:
```json
"spellcheck":{"dictionaries":["et","en-GB","en-US"],"dictionary":""}
```and restarting Proton Pass, multilingual spell checking started working correctly.
Proton Pass then automatically downloaded the corresponding Electron/Chromium dictionaries:
```text
~/.config/Proton Pass/Dictionaries/et-EE-3-0.bdic
~/.config/Proton Pass/Dictionaries/en-GB-10-1.bdic
~/.config/Proton Pass/Dictionaries/en-US-10-1.bdic
```The setting also persists after restarting Proton Pass.
This confirms that Proton Pass already supports multiple spell-check languages internally through Electron. What is missing is a user-facing setting to manage these languages and to disable spell checking when desired.
Steps to change manually for now:
```bash
# ensure all Proton Pass processes are closed:
pgrep -af proton-pass# just in case backup current settings:
cp ~/.config/"Proton Pass"/Partitions/app/Preferences \
~/.config/"Proton Pass"/Partitions/app/Preferences.bak# then change language:
python - <<'PY'
import json
from pathlib import Pathp = Path.home() / ".config/Proton Pass/Partitions/app/Preferences"
data = json.loads(p.read_text())
data.setdefault("spellcheck", {})
data["spellcheck"]["dictionaries"] = ["et", "en-GB", "en-US"]
data["spellcheck"]["dictionary"] = ""p.write_text(json.dumps(data, separators=(",", ":")))
PY# then start Proton Pass and check:
grep -o '"spellcheck"[^}]*}' \
~/.config/"Proton Pass"/Partitions/app/Preferences# suppose to see output:
"spellcheck":{"dictionaries":["et","en-GB","en-US"],"dictionary":""}# you can also check:
find ~/.config/"Proton Pass" -type f \
\( -iname '*.bdic' -o -path '*/Dictionaries/*' \) \
-print# usually output:
~/.config/Proton Pass/Dictionaries/en-GB-10-1.bdic
~/.config/Proton Pass/Dictionaries/et-EE-3-0.bdic
~/.config/Proton Pass/Dictionaries/en-US-10-1.bdic
```