Commit graph

691 commits

Author SHA1 Message Date
Eberhard Beilharz
b764a1c965
fix(linux): Correctly open files linked from help page
This works around the issue where browsers installed as snap package
can't access files under `$HOME/.local`. Instead we now only open
external links with the browser. Local non-html files we open with
the default app, and links to local html file we open in webview
(like we did previously with `welcome.htm` files).

Fixes #9600.
2023-09-20 11:49:53 +02:00
Eberhard Beilharz
a03eca3d81
refactor(linux): Rename defines to clarify purpose 🏘️ 2023-09-18 19:00:29 +02:00
Eberhard Beilharz
456254a896
chore(linux): Log if user not set 2023-09-11 18:21:36 +02:00
Eberhard Beilharz
ffa3324be2 fix(linux): Prevent exception if neither USER, LOGNAME nor SUDO_USER set
Closes #9542.
2023-09-05 09:17:10 +02:00
Eberhard Beilharz
aaef0f3c7f
chore(linux): Add clean target to rules
This allows to completely cleanup after a package build. Also fixes
`keyman-config/build.sh` to do a better job with clean.

Fixes #9518.
2023-08-31 16:18:18 +02:00
Eberhard Beilharz
940d5be5b9
fix(linux): Fix exception in km-kvk2ldml
This change fixes an exception that occurs if the user specifies
an outputfile in a non-existing directory. Also catch several other
related exceptions.

Fixes #9522.
2023-08-29 18:58:07 +02:00
Eberhard Beilharz
ea249da3b3
refactor(linux): Fix warning
Follow-up of #4999 (which mentions different warnings). This
change fixes other warnings that we were still getting.
2023-08-28 20:11:41 +02:00
Darcy Wong
9f651d00e6 chore(common): Update crowdin strings for French 2023-08-24 08:31:56 +07:00
Eberhard Beilharz
8f39a04375
Merge pull request #9027 from keymanapp/fix/linux/8620_keyboards-with-mul-tag
fix(linux): Fix installation of keyboards with lang tag `mul`
2023-07-21 06:34:58 +02:00
Eberhard Beilharz
f9896756f6
Merge pull request #9310 from keymanapp/fix/linux/logging
fix(linux): Fix logging
2023-07-20 22:48:52 +02:00
Eberhard Beilharz
2f25d198f4
fix(linux): Output not connected ibus as info instead of warning
There is nothing the user can do, and it's usually irrelevant
(except when troubleshooting).
2023-07-20 11:11:43 +02:00
Eberhard Beilharz
8a34a5d6ce
refactor(linux): Some refactorings 2023-07-20 11:09:55 +02:00
Eberhard Beilharz
33603c0f71
refactor(linux): Use better way to get username
`getpass.getuser()` tries several different ways to get the username
and is the recommended way of getting the username.
2023-07-20 11:04:04 +02:00
Eberhard Beilharz
8058d50999
fix(linux): Also output username 2023-07-20 10:48:50 +02:00
Eberhard Beilharz
b814bdd9fa
fix(linux): Reword error if uninstalling non-existent keyboard
This change reworks the output we show if the user tries to
uninstall a non-existing keyboard. This could be trying to uninstall
a shared keyboard when a user keyboard exists and vice versa. This
change rewords the message to include the area (shared/user), so
hopefully this makes it a bit clearer. We also now output this as a
warning instead of an error.

Completely suppressing the message as suggested in #9213 doesn't seem
to be the right way as that would lead to the user blaming uninstall
to not work when the real reason are wrong parameters.

Closes #9213.
2023-07-20 10:11:14 +02:00
Eberhard Beilharz
12165d73bc
fix(linux): Fix logging
We can't initialize Sentry during module initialization because our
`initialize_sentry` logs some status info. Setting the logging level
later on is then a no-op, breaking verbose and very-verbose logging.

This change fixes this by putting Sentry initialization into a
separate method that gets called after we set the log level.

Also refactor some common code into methods that appear in all our
executables.
2023-07-19 19:47:28 +02:00
Eberhard Beilharz
152d36a654
fix(linux): Fix installation of keyboards with lang tag mul
We now use the canonical tag without appending the script (unless
necessary).

Fixes #8620.
2023-07-19 12:01:52 +02:00
Eberhard Beilharz
8624ebcfb0
Merge pull request #9245 from keymanapp/refactor/linux/refactor
refactor(linux): Refactor image loading
2023-07-13 12:32:07 +02:00
Eberhard Beilharz
e1dc9574c3
Merge pull request #9215 from keymanapp/chore/linux/newtests
chore(linux): Add unit tests for dconf_util.py
2023-07-13 12:31:26 +02:00
Eberhard Beilharz
87ccb6e945
chore(linux): Use different backend for unit tests 2023-07-11 17:36:22 +02:00
Eberhard Beilharz
8b9f3eb2c5
chore(linux): Add another test 2023-07-11 17:33:46 +02:00
Eberhard Beilharz
3cc9f09d82
fix(linux): Replace deprecated Image.ANTIALIAS
Fixes #9244.
2023-07-11 12:14:26 +02:00
Eberhard Beilharz
eedf7545c8
refactor(linux): Refactor some code 2023-07-11 12:13:45 +02:00
Eberhard Beilharz
847556b176
Merge pull request #9193 from keymanapp/chore/update-data
chore: Update standards data
2023-07-11 08:59:25 +02:00
Eberhard Beilharz
74643d39ed
chore(linux): Add unit tests for dconf_util.py
Tests were generated by ChatGPT (although it didn't get it quite
right - was missing the parameter in `self.settings.reset`).
2023-07-07 18:29:31 +02:00
Eberhard Beilharz
e450e645ff
Merge pull request #9212 from keymanapp/chore/linux/tests
chore(linux): Add support for `--no-integration` flag to build files
2023-07-07 10:21:27 +02:00
Eberhard Beilharz
0f8fe48167
fix(linux): Fix Linux build
New langtags.json adds data that a test on Linux uses, so this
change adjust the test.
2023-07-06 19:47:46 +02:00
Eberhard Beilharz
75d507ca83
Merge pull request #9017 from keymanapp/feat/linux/8619_multiple-languages
feat(linux): Allow to install keyboard for multiple languages
2023-07-06 16:37:28 +02:00
Eberhard Beilharz
d20cc6978c
chore(linux): Add support for --no-integration flag to build files
This allows to use the `linux/build.sh` file to specify the
`--no-integration` flag which makes it easier to specify jobs on CI
because it then doesn't need to know all subprojects.
2023-07-06 12:39:21 +02:00
Eberhard Beilharz
6b4b4fda61
Merge pull request #9165 from keymanapp/fix/linux/4769_tags
fix(linux): Remove tags from package description
2023-07-05 16:26:29 +02:00
Eberhard Beilharz
d60f30e7d9
Merge pull request #9166 from keymanapp/fix/linux/9005_AboutPage
fix(linux): Add scrollbar to About dialog
2023-07-05 16:15:33 +02:00
Eberhard Beilharz
f7a593deac
Merge pull request #9167 from keymanapp/fix/linux/vertical_align
fix(linux): Fix vertical alignment of labels in About dialog
2023-07-05 14:53:49 +02:00
Eberhard Beilharz
55fbd1a814
Merge pull request #9168 from keymanapp/refactor/linux/extractions
refactor(linux): Extract methods
2023-07-05 14:53:33 +02:00
Eberhard Beilharz
c6419a9e4c
chore(linux): Add clarifying comment 2023-07-05 11:57:23 +02:00
Eberhard Beilharz
9f5ac8eb4a
fix(linux): Fix uninstalling keyboard for multiple languages with ibus
After this change uninstalling a keyboard will remove all installed
language/keyboard combinations for that particular keyboard.
Previously we only uninstalled for the first language listed in the
keyboard.
2023-07-05 11:57:23 +02:00
Eberhard Beilharz
1b63cf59b4
chore(linux): Address code review comments 2023-07-05 11:56:55 +02:00
Eberhard Beilharz
e02b1514da
refactor(linux): Some refactorings 2023-07-05 11:56:54 +02:00
Eberhard Beilharz
66461b7677
feat(linux): Remove message box if same kbd version already installed
We no longer ask the user if he tries to install a keyboard that is
already installed with the same version. The only time we ask is for
downgrades.

A similar change is implemented in `km-package-install` where we
changed the logic to match `install_window.py`. We now silently
install the new version unless it's a downgrade in which case we
output a error message and exit. This change also introduces the
`--force` parameter which allows to install the downgrade. For
upgrades or re-installing the same version it will cause an
uninstall of the current version first.
2023-07-05 11:56:54 +02:00
Eberhard Beilharz
4775c522bb
refactor(linux): Allow to install keyboard for multiple languages
This change makes it possible to install the same keyboard again
for a different language. It won't be visible in the GUI if the
keyboard is installed for more than language, but it will show up
for the installed languages in the keyboard dropdown.

Closes #8619.
2023-07-05 11:56:53 +02:00
Eberhard Beilharz
9b7070b8a6
fix(linux): Remove tags from package description
This is a temporary workaround - see discussion on #8057. While
this is not the perfect solution it should improve things in most
cases.

Fixes #4769.
2023-07-05 11:43:32 +02:00
Eberhard Beilharz
76f0979f3c
fix(linux): Add scrollbar to About dialog
Fixes #9005.
2023-07-05 11:42:51 +02:00
Eberhard Beilharz
d7d5d3220e
fix(linux): Fix vertical alignment of labels in About dialog 2023-07-05 11:41:16 +02:00
Eberhard Beilharz
595b19b9a0
refactor(linux): Extract methods 2023-07-05 11:40:42 +02:00
Eberhard Beilharz
ad1919da29
refactor(linux): Revert type hints
Turns out `list[str] | None` doesn't work with Python < 3.9 which
comes with Ubuntu 20.04 Focal, so we revert that change.
2023-07-05 11:39:33 +02:00
Eberhard Beilharz
481cb4a281
refactor(linux): Code refactoring 2023-07-05 11:39:33 +02:00
Darcy Wong
cf1a1bb4ab chore(common): Update crowdin strings for Spanish - Latin America 2023-06-19 12:35:45 -05:00
Darcy Wong
ff10aaea34 chore(common): Add crowdin strings for Spanish (es) 2023-06-19 11:42:26 -05:00
Eberhard Beilharz
be5c307fc0
refactor(linux): Rename OptionsView to KeyboardOptionsView 2023-06-13 20:05:49 +02:00
Eberhard Beilharz
ead69e7ee4
refactor(linux): Extract widgets to separate classes and files 2023-06-13 20:05:48 +02:00
Eberhard Beilharz
e95948c2da
refactor(linux): Extract methods 2023-06-13 19:42:14 +02:00