Commit graph

177 commits

Author SHA1 Message Date
Eberhard Beilharz
d10a3322d7
fix(linux): fix crash trying to display QR code
Fixes #5526.
2021-07-30 09:45:04 +02:00
Eberhard Beilharz
7446d8d711
fix(linux): Don't crash with corrupt keyboard
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)
2021-07-02 12:02:51 +02:00
Eberhard Beilharz
e2c1732e53
Merge pull request #5413 from keymanapp/fix/linux/cherry/issue-5309
fix(linux): Fix restarting ibus when running with `sudo` 🍒
2021-07-02 10:06:55 +02:00
Eberhard Beilharz
207b843508
Merge pull request #5411 from keymanapp/fix/linux/cherry/issue-5310
fix(linux): Save QR code in temporary directory 🍒
2021-07-02 10:06:44 +02:00
Eberhard Beilharz
cf03a2b2e0
fix(linux): Fix restarting ibus when running with sudo
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)
2021-07-01 11:12:37 +02:00
Eberhard Beilharz
13e02788ca
fix(linux): Save QR code in temporary directory
Fixes #5310. Partial cherry-pick of #5373.

(cherry picked from commit 768de5f66b)
2021-07-01 11:05:49 +02:00
Eberhard Beilharz
0a67c59ad5
fix(linux): Improve bitmap conversion
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)
2021-07-01 11:01:21 +02:00
Eberhard Beilharz
ea0807e259
fix(linux): Don't add duplicate entries when reinstalling keyboard
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
2021-06-25 09:53:19 +02:00
Eberhard Beilharz
c8eccb53e9
fix(linux): Fix crash with incomplete metadata (#4908)
(cherry picked from commit 31a0de32fe)
2021-04-26 09:16:43 +02:00
Eberhard Beilharz
2773a5aa5e
fix(linux): Don't crash if kmp file vanishes (fixes #4907)
(cherry picked from commit 319b7d20ee)
2021-04-23 11:53:15 +02:00
Eberhard Beilharz
127bc02ef1
feat(linux): Improve Sentry crash reporting
- 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)
2021-04-22 10:12:07 +02:00
Eberhard Beilharz
a28e37f4ed
fix(linux): Don't crash on network problem (fixes #4911)
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)
2021-04-20 11:04:31 +02:00
Eberhard Beilharz
59c45c4671
fix(linux): don't crash on legacy non-Unicode files
If we encounter a legacy non-Unicode file we now simply ignore the
file instead of crashing.

This fixes #4876.
2021-04-12 17:38:57 +02:00
Eberhard Beilharz
ebe49cfc6f
fix(linux): Fix crash if <kbd>.json doesn't contain description
This fixes #4823.
2021-03-31 19:19:05 +02:00
Eberhard Beilharz
c9de93d478
fix(linux): Fix crash if query doesn't contain bcp47 tag (#4800) 2021-03-26 19:35:03 +01:00
Eberhard Beilharz
63cefab0eb
chore(linux): Improve Sentry environment setting
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.
2021-03-04 16:01:52 +01:00
Eberhard Beilharz
96c688551d
Merge pull request #4581 from keymanapp/chore/linux/sentry
chore(linux): Don't report to Sentry in dev environment
2021-03-04 15:57:08 +01:00
Eberhard Beilharz
33bf5750b0
fix(linux): Improve version number
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.
2021-03-03 20:01:34 +01:00
Eberhard Beilharz
0158e17636
chore(linux): Don't report to Sentry in dev environment
When the environment variable KEYMAN_NOSENTRY is set we'll skip
reporting to Sentry. This is helpful on development machines.
2021-03-03 19:37:27 +01:00
Eberhard Beilharz
bb20389dc4
fix(linux): Also use staging site for beta versions 2021-02-09 17:31:07 +01:00
Eberhard Beilharz
69402fbd79
fix(linux): Use new parameter 2021-02-08 17:57:10 +01:00
Eberhard Beilharz
42f3f36013
fix(linux): improve BCP 47 canonicalization
This is based on #4425. Also a few additional bug fixes that showed
up on the way.
2021-02-08 17:50:05 +01:00
Eberhard Beilharz
693f13a953
fix(linux): Improve fix for #3399
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.
2021-02-03 19:08:03 +01:00
Eberhard Beilharz
a54a711943
fix(linux): Don't crash if uninstalling last keyboard
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.
2021-02-02 17:26:08 +01:00
Eberhard Beilharz
e862d3bfe5
chore(linux): Don't report on Sentry when running unit tests
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.
2021-01-27 16:27:28 +01:00
Eberhard Beilharz
88637bb818
chore(linux): Don't report on Sentry when running unit tests
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.
2021-01-27 15:59:49 +01:00
Darcy
1bf3fe936b fix(linux): Remove version.sh
Remove version.sh and determine version/tier from the .md files
2020-10-09 13:55:18 +07:00
Darcy Wong
9bcb343e03
Merge pull request #3593 from keymanapp/fix/linux/json-decoder
fix(linux/config): Catch if kmp.json is invalid JSON
2020-09-18 11:42:11 +07:00
Darcy
07d18fa63a chore(linux/config): Tweak error message about keyboard being damaged 2020-09-18 11:19:16 +07:00
Darcy
f95acb6b98 fix(linux/config): Display dialog when metadata is invalid 2020-09-18 11:00:49 +07:00
Darcy
5ff61520e6 fix(linux/config): Catch if kmp.json is invalid JSON 2020-09-17 14:02:48 +07:00
Darcy
a409bfd791 fix(linux/config): Check if file exists before creating hard link 2020-09-17 12:57:55 +07:00
Eberhard Beilharz
55125650fd
feat(linux): Package localizations
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.
2020-08-24 19:31:18 +02:00
Eberhard Beilharz
3e5c0aefac
Merge pull request #3495 from keymanapp/feat/linux/terminology
feat(linux): Small UI improvements
2020-08-24 10:36:48 +02:00
Eberhard Beilharz
1c8da049ab
feat(linux): Small UI improvements
- 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.
2020-08-20 15:22:50 +02:00
Eberhard Beilharz
678a5c0273
feat(linux): Add link to share online
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.
2020-08-20 14:58:15 +02:00
Eberhard Beilharz
11f018366b
feat(linux): Add i18n for Linux 2020-08-19 19:22:33 +02:00
Eberhard Beilharz
d331518805
Merge pull request #3408 from keymanapp/feat/linux/issue3399
fix(linux): Lookup language tag from keyboard
2020-08-17 16:11:41 +02:00
Eberhard Beilharz
536b074937
chore(linux): Add TODO comment
This should be properly implemented and fixed based on langtags.json
once the algorithm is implemented for Windows.
2020-08-17 16:00:38 +02:00
Eberhard Beilharz
d9c71574f4
chore(linux): Merge branch 'master' into feat/linux/staging-hosts
# Conflicts:
#	linux/keyman-config/keyman_config/__init__.py
2020-08-13 15:49:48 +02:00
Eberhard Beilharz
4652a04581
feat(linux): Hook up Sentry for km-config 2020-07-24 19:43:18 +02:00
Eberhard Beilharz
9047103028
fix(linux): Lookup language tag from keyboard
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.
2020-07-24 17:54:10 +02:00
Eberhard Beilharz
dd1a257872
chore(linux): Unstage downloads
Currently there's no staging site for downloads.keyman.com.
2020-07-24 10:28:50 +02:00
Eberhard Beilharz
03cb1b210c
feat(linux): Add staging for downloads.keyman.com 2020-07-24 09:06:46 +02:00
Eberhard Beilharz
26fc7b48d2
feat(linux): Use new staging site names 2020-07-24 09:06:26 +02:00
Eberhard Beilharz
8fbdebc9df
feat(linux): keyman:// protocol handler
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.
2020-07-23 17:35:26 +02:00
Eberhard Beilharz
5618133d5d
Merge pull request #3376 from keymanapp/refactor/linux
refactor(linux): Small refactorings
2020-07-21 09:13:06 +02:00
Eberhard Beilharz
d86f381e03
fix(linux): Fix imports of GTK related modules
The version specification needs to come before importing methods.
2020-07-20 18:23:59 +02:00
Eberhard Beilharz
78b4187928
fix(linux): Use language from search when installing keyboard
When installing a keyboard install it under the language the user
searched for (if any).

This fixes #3282.
2020-07-20 11:10:05 +02:00
Eberhard Beilharz
ba0a329cfd
feat(linux): Use staging URLs for alpha version 2020-07-17 19:22:51 +02:00