If we try to install a keyboard that's missing some metadata
we shouldn't crash.
Fixes#5384, #5385. Cherry-pick of #5414.
(cherry picked from commit 3bd0173954)
When installing in the shared area the user has to run
`km-package-install` with sudo so that he has sufficient permissions.
In that case we have to do extra work to restart ibus for the
logged-in user instead of root.
Fixes#5309. Partial cherry-pick of #5371.
(cherry picked from commit 0a2dd29e53)
Converting some bitmaps fail with a truncation error. This change
allows to successfully convert the bitmap files.
Fixes#5400. Cherry-pick of #5401.
(cherry picked from commit f519c2447d)
When we update/reinstall an existing keyboard we don't want to
add a new entry to the list of keyboards.
Fixes#5308.
(cherry picked from commit 70b88790df)
# Conflicts:
# linux/keyman-config/keyman_config/install_kmp.py
- don't log regular errors - those are handled and we report them
to the user, but don't want to create a Sentry error
- report some errors, which we want to see on Sentry, as critical
- log hash of username in crash report
(cherry-pick of PR #4914)
If the network is down or the server name can't be resolved we
shouldn't crash. This change logs an error instead.
(cherry picked from commit 1c04d5200c)
When running from source we set the environment to `local` when
reporting to Sentry. This change also adds the package version and
the tier as additional Sentry tags.
This is a follow-up of PR #4581.
This change modifies the reported version number for km-config:
if km-config is installed from a debian package, the package
version will be output as well, e.g.:
`km-config version 14.0.252-beta (package version 14.0.252-1+bionic1)`
Otherwise the output will be identical to before:
`km-config version 14.0.252-beta-local`.
This change also modifies the script that sets the version number so
that builds on Jenkins are now detected in addition to TC.
This fixes#4579.
This improves the implementation for normalizing language tags
when installing a keyboard. Based on the Windows implementation
in `Keyman.System.CanonicalLanguageCodeUtils.pas`.
One difference to the Windows implementation is that the mapping of
3- to 2-letter tags is based on `langtags.json` instead of
`iso639-3.tab`.
Closes#3399.
If a Keyman keyboard is the only installed/selected keyboard in Gnome
and the user uninstalls this in km-config, we have to set the value
for `sources` to an empty array variant. Previously this crashed.
Fixes#4375.
When running unit tests we try to install some keyboards with
invalid URLs which normally results in an issue being reported on
Sentry. This change detects when we're running unit tests and
in that case doesn't initialize Sentry reporting.
When running unit tests we try to install some keyboards with
invalid URLs which normally results in an issue being reported on
Sentry. This change sets an environment variable when running
the tests and modifies the initialization code to not initialize
Sentry reporting when the environment variable `KEYMAN_NOSENTRY`
is set to 1.
This change adds the localization files to the debian package. It
also updates the path to the localization files so that the installed
files will be found.
- Remove "package" from the tooltips text since that might be
confusing to users.
- Also make title of Welcome (Help) dialog optionally say "installed"
instead of always so that we open that dialog via the Help button
we just display the keyboard name.
- Refactor Keyboard Details dialog to remove an unnecessary box.
- Add padding after keyboard details in Keyboard Details dialog.
This change modifies the displayed QR code and its text to closer
match the way things are on Windows, i.e. display a hyperlink
instead of just the text to share online.
When installing a keyboard with a bcp47 tag we now look up the
language tag in the keyboard kmp.json file. This fixes#3399 in
case a script subtag is required for the language and will cause
the keyboard to properly show up in the Linux keyboard selection
list.
This change implements the custom keyman:// protocol handler which
will cause the browser to launch km-config when it encounters a
URL using the keyman protocol.
Related to #3271.