Hello,
I want to compile the keyman beta with some branding.
I have downloaded keyman “origin-beta” release.
I am running “make release” under src/
I am getting below error, please help
Hello,
I want to compile the keyman beta with some branding.
I have downloaded keyman “origin-beta” release.
I am running “make release” under src/
I am getting below error, please help
What happens when you try and run the command W:\GitHub\keyman\windows\bin\buildtools\mkver.exe
from the command prompt? Do you get a similar error?
should I perform this in VS x86_64 command prompt?
Yes, that would be appropriate.
Can you paste the results for the commands:
SET KEYMAN_ROOT
SET USERDEFINES
SET GIT_BASH_FOR_KEYMAN
type W:\GitHub\keyman\windows\src\global\delphi\general\keymanversion_build.inc
type W:\GitHub\keyman\resources\VERSION.md
One more file to check:
type W:\GitHub\keyman\windows\src\version.txt
Okay, I’m not sure why that version.txt
file shows that line. Try updating it to
PRODUCTVERSION 11,0,1500,0
Looks like you are using Delphi 10.3; we are still on Delphi 10.2 and have not yet updated to 10.3 (that will happen most likely in the Keyman 12.0 timeframe). Can you get hold of version 10.2?
Hello @Marc
that worked.
For branding build and release.
Should I use make build or release?
for release it is expecting certificates that are not test certificates.
You will need to use make release
to make your own installers. You should use Authenticode code signing digital certificates, which you can purchase from a variety of vendors, such as Verisign, Thawte, etc.
Note that you will need to make significant changes to executable metadata, especially around product name and organisation name, before distributing your version of Keyman (the name “Keyman” is a registered trademark).
We have not yet completed our work on making branded versions of the open source version of Keyman, so we welcome pull requests which make it easier to rebrand and customise
Sure, I will start working on it.
could you please given me couple of instructions
Are we try to creating parametric to brand name, company name, url?
should we map these parameters in UserDefines.mak?
Could you give me one example?
Can
I will contribute towards branding.
Much of the branding for Keyman Desktop is in windows/src/desktop/kmshell/xml/localedef.dtd. We should probably be building this from a template, given it has a hard coded version number. The mkver
app allows some rewriting of templates but I don’t think it currently supports embedding arbitrary strings, which it would need to for optimum support. Then you would rename localedef.dtd to localedef.dtd.in and in the build run mkver to complete it, in the same way as we do for windows/src/desktop/inst/download.in.
The xsl files have references to logos and icons which would need to be parameterised in similar ways. Overrides for the defaults could be defined in UserDefines.mak, yes.
It might be best to start with small-scale pull requests that are easy to check rather than making all the changes in one PR.
The installer similarly has hard coded strings which you should override.
Keyman.exe itself has hard coded graphics for the Keyman menu and On Screen Keyboard. These would need to be parameterised. Note that the strings themselves are all in locale.xml, so you could parameterise the graphics also in locale.xml.
One of the challenges which I haven’t yet figured out is how to have differently branded versions of Keyman running without causing conflicts. This is on my agenda for a future version of Keyman.
I am working on getting most of the display font fixed via xsl’s
------- vs --------
those blue text is picking up some "a href " class, please point to the code.
even the keyboard list as the same problem
If I can fix these, I am ready to make a small pull request to fix localization of display fonts
&
Any Caption that is starting with & in the system tray menu is switching to hyperlink.
Please advise
SK_UIFontName
as the parameter everywhere. We don’t want to use both fonts. Then you can just update SK_UIFontName
on your version.procedure TKeymanMenuItem.DrawItemShared(ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState; BarColor, SelColor, SelBorderColor: TColor);
in windows\src\engine\keyman\KeymanMenuItem.pas:205. That further calls a function called TCleartypeDrawCharacter.DrawText
. You can see how the font color is changed by TClearTypeDrawCharacter.SelectFallbackFont
. You might want to update that code to change the default fallback fonts because the Code2000 font series are now pretty outdated.