mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-22 07:37:40 +00:00
Merge pull request #1615 from keymanapp/beta-p5s4-alpha
Merge P5S4 beta pull requests to alpha
This commit is contained in:
commit
fa206bcf2d
15 changed files with 1645 additions and 1487 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
1
linux/ibus-keyman/debian/install
Normal file
1
linux/ibus-keyman/debian/install
Normal file
|
|
@ -0,0 +1 @@
|
|||
debian/com.github.ibus.ibus-keyman.metainfo.xml /usr/share/metainfo
|
||||
|
|
@ -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>
|
||||
1
linux/ibus-kmfl/debian/install
Normal file
1
linux/ibus-kmfl/debian/install
Normal file
|
|
@ -0,0 +1 @@
|
|||
debian/com.github.ibus.ibus-kmfl.metainfo.xml /usr/share/metainfo
|
||||
42
linux/keyman-config/debian/com.keyman.config.appdata.xml
Normal file
42
linux/keyman-config/debian/com.keyman.config.appdata.xml
Normal 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>
|
||||
|
|
@ -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/
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -86,6 +86,10 @@ async function loadSettings() {
|
|||
// Setup callbacks
|
||||
//
|
||||
|
||||
window.addEventListener('resize', function() {
|
||||
editor.layout();
|
||||
});
|
||||
|
||||
const model = editor.getModel();
|
||||
|
||||
context.reloadSettings();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue