diff --git a/Makefile b/Makefile index 45d4050..312d86d 100644 --- a/Makefile +++ b/Makefile @@ -16,6 +16,8 @@ OSX_FONT := build/$(FONT_PREFIX)-OSX.ttf OSX_PACKAGE := build/$(FONT_PREFIX)-OSX-$(VERSION) LINUX_PACKAGE := $(FONT_PREFIX)-Linux-$(VERSION) DEB_PACKAGE := fonts-emojione-svginot +WINDOWS_TOOLS := windows +WINDOWS_PACKAGE := build/$(FONT_PREFIX)-Win-$(VERSION) # There are two SVG source directories to keep the emojione assets separate # from the additions @@ -31,12 +33,12 @@ SVG_STAGE_FILES := $(patsubst $(SVG_EXTRA)/%.svg, build/stage/%.svg, $(SVG_STAGE SVG_BW_FILES := $(patsubst build/stage/%.svg, build/svg-bw/%.svg, $(SVG_STAGE_FILES)) SVG_COLOR_FILES := $(patsubst build/stage/%.svg, build/svg-color/%.svg, $(SVG_STAGE_FILES)) -.PHONY: all package regular-package linux-package osx-package copy-extra clean +.PHONY: all package regular-package linux-package osx-package windows-package copy-extra clean all: $(REGULAR_FONT) $(OSX_FONT) # Create the operating system specific packages -package: regular-package linux-package deb-package osx-package +package: regular-package linux-package deb-package osx-package windows-package regular-package: $(REGULAR_FONT) rm -f $(REGULAR_PACKAGE).zip @@ -73,6 +75,16 @@ osx-package: $(OSX_FONT) cp README.md $(OSX_PACKAGE) 7z a -tzip -mx=9 $(OSX_PACKAGE).zip ./$(OSX_PACKAGE) +windows-package: $(REGULAR_FONT) + rm -f $(WINDOWS_PACKAGE).zip + rm -rf $(WINDOWS_PACKAGE) + mkdir $(WINDOWS_PACKAGE) + cp $(REGULAR_FONT) $(WINDOWS_PACKAGE) + cp LICENSE* $(WINDOWS_PACKAGE) + cp README.md $(WINDOWS_PACKAGE) + cp $(WINDOWS_TOOLS)/* $(WINDOWS_PACKAGE) + 7z a -tzip -mx=9 $(WINDOWS_PACKAGE).zip ./$(WINDOWS_PACKAGE) + # Build both versions of the fonts $(REGULAR_FONT): $(SVG_BW_FILES) $(SVG_COLOR_FILES) copy-extra $(SCFBUILD) -c scfbuild.yml -o $(REGULAR_FONT) --font-version="$(VERSION)" diff --git a/README.md b/README.md index c2ae87d..3b28789 100644 --- a/README.md +++ b/README.md @@ -153,13 +153,38 @@ Chrome will use the fallback black and white emoji.* ## Install on Windows -The font installs like any other font and can be specifically selected, but -the system will default to the `Segoe UI Emoji` font. Get the current version -from: https://github.com/eosrei/emojione-color-font/releases +There are two install options for Windows. Both SVGinOT versions are available +from releases: https://github.com/eosrei/emojione-color-font/releases + +### `EmojiOneColor-SVGinOT-1.2.zip` + +The regular version of the font +installs like any other font and can be specifically selected, but Windows +will default to the `Segoe UI Emoji` font for emojis. + +### Replacing the Windows default Emoji -Help wanted: [How to override the Windows default Segoe UI Emoji font][16] +Because Windows 7, 8, 10 use Emoji in both Segoe UI Symbol and Segoe UI Emoji, +to be the default emoji, we need to replace both, but keep the existing symbol +characters from Segoe UI Symbol. +This package contains an install script that will generate both fonts (or +in Windows 7, just Segoe UI Symbol), and install them for you. Running the +install script requires both [Python][16] and pip in the PATH. -[16]:https://github.com/eosrei/emojione-color-font/issues/15 +1. Download the most recent Python 3 for Windows: https://www.python.org/downloads/windows/ +2. Start the installer, select "Add Python 3.5 to PATH" and finish the install process. +3. Download EmojiOne Color windows package from releases: + https://github.com/eosrei/emojione-color-font/releases +4. Uncompress the file +5. Open the new EmojiOneColor directory +7. Run install.cmd. Note: This will take some time. +8. Install the new fonts when requested. +9. Done! + +[16]:https://www.python.org/downloads/windows/ + +*Reiterating: Only FireFox supports the SVGinOT color emoji for now. IE and +Chrome will use the fallback black and white emoji.* ## Building Overview: diff --git a/windows/.gitattributes b/windows/.gitattributes new file mode 100644 index 0000000..6f3fd87 --- /dev/null +++ b/windows/.gitattributes @@ -0,0 +1 @@ +*.cmd text eol=crlf \ No newline at end of file diff --git a/windows/install.cmd b/windows/install.cmd new file mode 100644 index 0000000..006db4b --- /dev/null +++ b/windows/install.cmd @@ -0,0 +1,115 @@ +@ECHO OFF +SETLOCAL + +SET MS_EMOJI_FONT_PATH="%SystemRoot%\Fonts\seguiemj.ttf" +SET MS_FONT_PATH="%SystemRoot%\Fonts\seguisym.ttf" +SET EMOJI_FONT_PATH="%CD%\EmojiOneColor-SVGinOT.ttf" +SET FINAL_EMJ_FONT_PATH_NO_QUOTES=%CD%\Segoe UI Emoji with EmojiOne.ttf +SET FINAL_EMJ_FONT_PATH="%FINAL_EMJ_FONT_PATH_NO_QUOTES%" +SET FINAL_FONT_PATH_NO_QUOTES=%CD%\Segoe UI Symbol with EmojiOne.ttf +SET FINAL_FONT_PATH="%FINAL_FONT_PATH_NO_QUOTES%" + +ECHO Checking if Segoe UI Emoji is installed + +REM Windows 8 uses Segoe UI Emoji in addition to Symbol +REM Windows 7 only uses Segoe UI Symbol +REM We have to replace _both_ +ECHO Checking if Segoe UI Symbol is installed. + +IF NOT EXIST %MS_FONT_PATH% ( + ECHO. + ECHO You don't seem to have the Segoe UI Symbol Font installed. + ECHO https://support.microsoft.com/en-us/kb/2729094 + GOTO :ERROR +) + +ECHO Checking if prerequisites are installed. + +WHERE python /q || ( + ECHO. + ECHO Python.exe not found, install or add to PATH. + ECHO. + GOTO :ERROR +) + +WHERE pip /q || ( + ECHO. + ECHO Pip.exe not found, install or add to PATH + ECHO. + GOTO :ERROR +) + +ECHO Ensuring the latest FontTools is installed. + +pip install --upgrade https://github.com/behdad/fonttools/archive/master.zip + +PUSHD %TEMP% +IF EXIST %MS_EMOJI_FONT_PATH% ( + ECHO Creating new Segoe UI Emoji font from EmojiOne + ttx -t "name" -o "emjname.ttx" %MS_EMOJI_FONT_PATH% || GOTO :ERROR + ttx -o %FINAL_EMJ_FONT_PATH% -m %EMOJI_FONT_PATH% "emjname.ttx" || GOTO :ERROR + DEL "emjname.ttx" +) + +ECHO Creating new Segoe UI Symbol font from EmojiOne +REM Merge Segoe UI Symbol into EmojiOne, this keeps emoji one's glyph ids intact +REM for the 'SVG ' table data +pyftmerge %EMOJI_FONT_PATH% %MS_FONT_PATH% +ECHO Dumping SVG emojis +ttx -t "SVG " -o "svg.ttx" %EMOJI_FONT_PATH% || GOTO :ERROR +ttx -t "name" -o "name.ttx" %MS_FONT_PATH% || GOTO :ERROR +ECHO Merging in dumped emojis +ttx -o "almost.ttf" -m "merged.ttf" "name.ttx" || GOTO :ERROR +DEL "merged.ttf" +DEL "name.ttx" +ttx -o %FINAL_FONT_PATH% -m "almost.ttf" "svg.ttx" || GOTO :ERROR +DEL "almost.ttf" +DEL "svg.ttx" +REM Get back to working directory. +POPD + +ECHO. +ECHO. +IF EXIST %MS_EMOJI_FONT_PATH% ( + ECHO The fonts are now saved in + ECHO %FINAL_FONT_PATH% + ECHO and + ECHO %FINAL_EMJ_FONT_PATH% + ECHO After installation, the original fonts will still be located at + ECHO %MS_FONT_PATH% + ECHO and + ECHO %MS_EMOJI_FONT_PATH% +) ELSE ( + ECHO The font is now saved in + ECHO %FINAL_FONT_PATH% + ECHO After installation, the original font will still be located at + ECHO %MS_FONT_PATH% +) +ECHO It is not overwritten, and can be reinstalled with uninstall.cmd +ECHO To finish installation, the font will be opened for you to install. +ECHO. +ECHO If the font is in a network path, copy to a local disk and +ECHO double click to install. +ECHO Press the [INSTALL] button in the Font Viewer, then close the viewer. +CHOICE /m "Would you like to install the fonts now?" +IF ERRORLEVEL 2 ( + EXIT /b +) +ECHO. +ECHO Running the font installer for Segoe UI Symbol +REM The font viewer doesn't like quotes for some reason, but is fine with paths with spaces. +fontview %FINAL_FONT_PATH_NO_QUOTES% +if EXIST %MS_EMOJI_FONT_PATH% ( + ECHO. + ECHO Running the font installer for Segoe UI Emoji + fontview %FINAL_EMJ_FONT_PATH_NO_QUOTES% +) +ECHO. +ECHO All Done! +PAUSE +EXIT /b + +:ERROR +ECHO Installation failed! +PAUSE +EXIT /b %ERRORLEVEL% \ No newline at end of file diff --git a/windows/uninstall.cmd b/windows/uninstall.cmd new file mode 100644 index 0000000..a95d4b2 --- /dev/null +++ b/windows/uninstall.cmd @@ -0,0 +1,18 @@ +@ECHO OFF +SETLOCAL + +SET MS_EMOJI_FONT_PATH="%SystemRoot%\Fonts\seguiemj.ttf" +SET MS_FONT_PATH="%SystemRoot%\Fonts\seguisym.ttf" + +IF EXIST %MS_EMOJI_FONT_PATH% ( + ECHO Pressing [INSTALL] button in the Font Viewer will reinstall + ECHO the original Segoe UI Emoji font. + fontview %SystemRoot%\Fonts\seguiemj.ttf +) +ECHO. +ECHO Pressing [INSTALL] button in the Font Viewer will reinstall +ECHO the original Segoe UI Symbol font. +fontview %SystemRoot%\Fonts\seguisym.ttf +ECHO. +ECHO All Done! +PAUSE