Merge pull request #1615 from keymanapp/beta-p5s4-alpha

Merge P5S4 beta pull requests to alpha
This commit is contained in:
Marc Durdin 2019-02-22 07:34:18 +11:00 committed by GitHub
commit fa206bcf2d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 1645 additions and 1487 deletions

View file

@ -15,7 +15,7 @@
- It is helpful to be using the [packages.sil.org](http://packages.sil.org) repo
- Install packages required for building and developing KMFL and Keyman for Linux
`sudo apt install cdbs debhelper libx11-dev autotools-dev build-essential dh-autoreconf flex bison libibus-1.0-dev python3-setuptools meson libjson-glib-dev libgtk-3-dev help2man python3-lxml python3-magic python3-numpy python3-pil python3-pip python3-requests python3-requests-cache python3 python3-gi gir1.2-webkit-3.0 dconf-cli`
`sudo apt install cdbs debhelper libx11-dev autotools-dev build-essential devtools dh-autoreconf flex bison libibus-1.0-dev python3-setuptools meson libjson-glib-dev libgtk-3-dev libxml2-utils help2man python3-lxml python3-magic python3-numpy python3-pil python3-pip python3-requests python3-requests-cache python3 python3-gi gir1.2-webkit-3.0 dconf-cli`
### Compiling from Command Line
@ -83,6 +83,31 @@ Nightly builds upload the most recent new master build to https://downloads.keym
Jenkins now continuously builds Debian packages on every commit to master
Periodically test packages will be uploaded to https://launchpad.net/~keymanapp/+archive/ubuntu/keyman-daily
### Launchpad
This section is primarily for "Keyman for Linux" team members, and not needed for general building.
1. If you don't have one, create an account at https://launchpad.net
2. Request to join the ["Keyman for Linux"](https://launchpad.net/~keymanapp) team.
3. Create a [GPG](https://help.ubuntu.com/community/GnuPrivacyGuardHowto) key and associate it to your launchpad account
4. Set the following environment variables in your ~/.profile or ~/.bashrc (so you don't have to set them every time)
`export GPGKEY=[key_id]` using the `key_id` of your GPG key
`DEBEMAIL="your.email.address@example.org"`
`DEBFULLNAME="Firstname Lastname"`
`export DEBEMAIL DEBFULLNAME`
To upload the packages to launchpad, run the following script from the `linux/` directory:
```
./scripts/launchpad.sh [UPLOAD="yes"] [TIER="<tier>"] [PROJECT="<project>"] [DIST="<dist>"] [PACKAGEVERSION="<version>"]
```
**Parameters**
UPLOAD="yes" do the dput for real
TIER="\<tier>" alpha, beta, or stable, default beta
PROJECT="\<project>" only upload this project
DIST="\<dist>" only upload for this distribution
PACKAGEVERSION="\<version>" normally use the default so don't specify it. But if you change packaging and run another upload you need to increment the number at the end of `PACKAGEVERSION`. e.g. next one is `1~sil2` then `1~sil3`...
Refer to https://help.launchpad.net/Packaging/PPA/Uploading for troubleshooting and setting up for dput upload.
### Testing
Tests to be created as there are no current tests

View file

@ -3,6 +3,9 @@
## 12.0 alpha
* Started work on Keyman for Linux 12
## 2019-02-18 11.0.109 beta
* create appstream appdata for keyman-config (#1543)
## 2019-02-15 11.0.108 beta
* handle keyboard package install/uninstall when languages aren't defined (#1585)

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="inputmethod">
<id>com.github.ibus.ibus-keyman</id>
<metadata_license>FSFAP</metadata_license>
<name>ibus-keyman</name>
<summary>Keyman input method for IBus</summary>
<description>
<p>
This input method provides the Keyman IM engine for IBus. With this module, you can
use keyboard layouts designed for Keyman version 11 or earlier under the IBus
platform.
</p>
<p>
Originally created in 1993 to type Lao on Windows, Keyman is now a free and
open source keyboarding platform which allows anyone to write a keyboard layout
for their language. Keyman is available for many platforms, including Windows,
macOS, iOS, Android, Linux and the web.
</p>
<p>
Keyboard layouts are defined with a clear and easy to understand keyboard
grammar. Keyman's contextual input model means keyboard layouts can be
intelligent and make it simple to type even the most complex languages.
Keyboard layouts are distributed through an open catalog to all major desktop
and mobile platforms.
</p>
<p>
Input methods are typing systems allowing users to input complex languages.
</p>
</description>
<url type="homepage">https://www.keyman.com/linux</url>
</component>

View file

@ -0,0 +1 @@
debian/com.github.ibus.ibus-keyman.metainfo.xml /usr/share/metainfo

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="inputmethod">
<id>com.github.ibus.ibus-kmfl</id>
<metadata_license>FSFAP</metadata_license>
<name>ibus-kmfl</name>
<summary>KMFL input method for IBus</summary>
<description>
<p>
This package provides the KMFL (Keyboard Mapping for Linux) input method
engine for IBus. With this module, you can use keyboard layouts designed
for Keyman for Windows 6.0 under the IBus platform.
</p>
<p>
Originally created in 1993 to type Lao on Windows, Keyman is now a free and
open source keyboarding platform which allows anyone to write a keyboard layout
for their language. Keyman is available for many platforms, including Windows,
macOS, iOS, Android, Linux and the web.
</p>
<p>
Keyboard layouts are defined with a clear and easy to understand keyboard
grammar. Keyman's contextual input model means keyboard layouts can be
intelligent and make it simple to type even the most complex languages.
Keyboard layouts are distributed through an open catalog to all major desktop
and mobile platforms.
</p>
<p>
Input methods are typing systems allowing users to input complex languages.
</p>
</description>
<url type="homepage">https://www.keyman.com/linux</url>
</component>

View file

@ -0,0 +1 @@
debian/com.github.ibus.ibus-kmfl.metainfo.xml /usr/share/metainfo

View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2019 Daniel Glassey <wdg@debian.org> -->
<component type="desktop-application">
<id>com.keyman.config</id>
<metadata_license>FSFAP</metadata_license>
<project_license>MIT</project_license>
<project_group>Keyman</project_group>
<name>Keyman Keyboards</name>
<summary>Configure keyboards for Keyman for Linux</summary>
<description>
<p>
Originally created in 1993 to type Lao on Windows, Keyman is now a free and
open source keyboarding platform which allows anyone to write a keyboard layout
for their language. Keyman is available for many platforms, including Windows,
macOS, iOS, Android, Linux and the web.
</p>
<p>
Keyboard layouts are defined with a clear and easy to understand keyboard
grammar. Keyman's contextual input model means keyboard layouts can be
intelligent and make it simple to type even the most complex languages.
Keyboard layouts are distributed through an open catalog to all major desktop
and mobile platforms.
</p>
<p>
Install, uninstall and view information about Keyman keyboard packages.
</p>
</description>
<launchable type="desktop-id">km-config.desktop</launchable>
<screenshots>
<screenshot type="default">
<caption>The Keyman Keyboards main window with a keyboard welcome window.</caption>
<image type="source" width="920" height="518">https://keyman.com/go/linux/11.0/linux-configuration.png</image>
</screenshot>
</screenshots>
<url type="homepage">https://keyman.com/linux/</url>
<url type="bugtracker">https://github.com/keymanapp/keyman/issues</url>
<url type="contact">https://community.software.sil.org/c/keyman</url>
</component>

View file

@ -1,5 +1,6 @@
./keyman_config/icons/* /usr/share/keyman/icons/
debian/km-config.desktop /usr/share/applications
debian/com.keyman.config.appdata.xml /usr/share/metainfo
./icons/24/km-config.png /usr/share/icons/hicolor/24x24/apps/
./icons/32/km-config.png /usr/share/icons/hicolor/32x32/apps/
./icons/48/km-config.png /usr/share/icons/hicolor/48x48/apps/

View file

@ -232,15 +232,11 @@ function TfrmEditor.DoOpenFile: Boolean;
begin
RefreshOptions;
if FileExists(FileName) then
FEditorFrame.LoadFromFile(FileName);
UpdateEditorFormat;
if not FileExists(FileName) then
begin
FEditorFrame.LoadFromFile(FileName);
UpdateEditorFormat;
end
else
begin
TextFileFormat := tffUTF8;
UpdateEditorFormat;
case EditorFormat of // I1423 - default template
efXML: SetEditorText(GetXMLTemplate);
efHTML: SetEditorText(GetHTMLTemplate);

File diff suppressed because it is too large Load diff

View file

@ -464,9 +464,15 @@ procedure TframeTouchLayoutBuilder.Save(const AFilename: string);
var
s: string;
begin
if (FFilename = '') and (AFilename <> '') then
begin
Load(AFilename, not FileExists(AFilename), False);
end;
if not IsModified and FileExists(AFilename) then // I4047 // I4147
Exit;
s := GetLayoutJS;
if s = '' then
Exit;
FSavedLayoutJS := s;

View file

@ -370,7 +370,6 @@ begin
try
BaseFileName := FGlobalProject.FileName;
FileType := FileTypeFromParamType;
if FileType = ftOther then Exit;
if ShowModal = mrOk then
begin
@ -385,7 +384,6 @@ begin
begin
{ locate an existing file, add it to the project }
FFileType := FileTypeFromParamType;
if FFileType = ftOther then Exit;
dlgOpenFile.Filter := GetFileTypeFilter(FFileType, FDefaultExtension);
dlgOpenFile.DefaultExt := FDefaultExtension;

View file

@ -86,6 +86,10 @@ async function loadSettings() {
// Setup callbacks
//
window.addEventListener('resize', function() {
editor.layout();
});
const model = editor.getModel();
context.reloadSettings();

View file

@ -281,6 +281,13 @@ BOOL ProcessGroup(LPGROUP gp)
fOutputKeystroke = TRUE; // I4933
return FALSE; // I4933
}
if (Uni_IsSurrogate1(*pdeletecontext) && Uni_IsSurrogate2(*(pdeletecontext+1))) {
// 2 backspaces to delete both parts of surrogate pair
// This only needs to be done for non-legacy apps as legacy apps
// will receive a BKSP WM_KEYDOWN event which results in deleting
// both parts in one action
_td->app->QueueAction(QIT_BACK, BK_BACKSPACE);
}
}
_td->app->QueueAction(QIT_BACK, BK_BACKSPACE); // I4933
}

View file

@ -4,4 +4,16 @@ keyman-debug-etw.man will be installed with Keyman Engine so that debug log file
Microsoft Message Analyzer. You can import the layout file keyman-debug-etw.asset into Microsoft Message Analyzer
to provide a good default layout for Keyman log files.
To manually install the provider, run:
wevtutil im keyman-debug-etw.man
To uninstall it (a good idea often before installing):
wevtutil um keyman-debug-etw.man
You may need to manually edit the file to add the paths for keyman32.dll, e.g.:
<provider name="Keyman-Debug-ETWProvider" guid="{DA621615-E08B-4283-918E-D2502D3757AE}" symbol="ProviderGuid" message="$(string.Provider.Name)" messageFileName="C:\Program Files (x86)\Common Files\Keyman\Keyman Engine\keyman32.dll" resourceFileName="C:\Program Files (x86)\Common Files\Keyman\Keyman Engine\keyman32.dll">
Debug log files are written to %LOCAL_APP_DATA%\Keyman\Diag.