diff --git a/Changelog.md b/Changelog.md index f976f7a2a..4b4629276 100644 --- a/Changelog.md +++ b/Changelog.md @@ -2,6 +2,9 @@ ## Unreleased (in master) +- Added support for custom user fonts (place them in /fonts, e.g. +~/.howl/fonts) + - Added `project-switch-buffer` command that displays open buffers within the current project. diff --git a/lib/howl/application.moon b/lib/howl/application.moon index ac064b2ff..662080a48 100644 --- a/lib/howl/application.moon +++ b/lib/howl/application.moon @@ -328,6 +328,10 @@ class Application extends PropertyObject @_load_core! if @settings.dir append bundle.dirs, @settings.dir\join 'bundles' + fonts_dir = @settings.dir\join('fonts') + if fonts_dir.exists + C.FcConfigAppFontAddDir(nil, fonts_dir.path) + bundle.load_all! unless @args.no_profile diff --git a/lib/howl/init.lua b/lib/howl/init.lua index eca2c5580..8919f6fa4 100644 --- a/lib/howl/init.lua +++ b/lib/howl/init.lua @@ -170,8 +170,6 @@ local function main() set_package_path('lib', 'lib/ext', 'lib/ext/moonscript') require 'howl.moonscript_support' table.insert(package.loaders, 2, bytecode_loader()) - require 'howl.cdefs.fontconfig' - ffi.C.FcConfigAppFontAddDir(nil, table.concat({app_root, 'fonts'}, path_separator)) require 'ljglibs.cdefs.glib' howl = auto_module('howl') @@ -189,6 +187,8 @@ local function main() print("Copyright 2012-2017 The Howl Developers\nLicense: MIT License") os.exit(0) else + require 'howl.cdefs.fontconfig' + ffi.C.FcConfigAppFontAddDir(nil, table.concat({app_root, 'fonts'}, path_separator)) -- set up the the GC to be more aggressive, we have a lot -- of cdata that needs to be collected collectgarbage('setstepmul', 400)