Как я могу легко изменить родные шрифты в Smalltalk Squeak/Pharo
С каждым новым изображением Squeak/Pharo я сразу же меняю шрифты на какую-то родную версию. Это много mouseclicks, и я хочу script процесс.
Ответы
Ответ 1
Вышеприведенный ответ может быть устаревшим, по крайней мере, он не работает с моим изображением 3.10. поэтому я использую это:
defaultFont := LogicalFont familyName: 'Geneva' pointSize: 10 emphasis:0 .
codeFont := LogicalFont familyName: 'Monaco' pointSize: 10 emphasis:0.
Preferences setCodeFontTo: codeFont.
Preferences setWindowTitleFontTo: defaultFont.
Preferences setButtonFontTo: defaultFont.
Preferences setListFontTo: defaultFont.
Preferences setMenuFontTo: defaultFont.
Preferences setSystemFontTo: defaultFont.
Ответ 2
Нашел ответ, искал setSystemFontTo. Теперь полный script:
"Set fonts on Mac OS X"
defaultFont := LogicalFont familyName: 'Lucida Grande' pointSize: 10
stretchValue: 5 weightValue: 400 slantValue: 0.
codeFont := LogicalFont familyName: 'Monaco' pointSize: 10
stretchValue: 5 weightValue: 400 slantValue: 0.
Preferences setCodeFontTo: codeFont.
Preferences setWindowTitleFontTo: defaultFont.
Preferences setButtonFontTo: defaultFont.
Preferences setListFontTo: defaultFont.
Preferences setMenuFontTo: defaultFont.
Preferences setSystemFontTo: defaultFont.
Ответ 3
Это новый способ сделать это в Pharo:
|font codeFont|
font := LogicalFont familyName: 'Bitmap DejaVu Sans' pointSize: 10.
codeFont := LogicalFont familyName: 'Bitmap DejaVu Sans' pointSize: 9.
StandardFonts listFont: codeFont.
StandardFonts menuFont: font.
StandardFonts codeFont: codeFont.
StandardFonts buttonFont: codeFont.
StandardFonts defaultFont: font.
StandardFonts windowTitleFont: font.
FreeTypeFontProvider current updateFromSystem.
Ответ 4
В Linux с Pharo 2.0 я добавил следующий контент в файл в специальном каталоге, который автоматически читается при запуске Image:
StartupLoader default executeAtomicItems: {
StartupAction
name: 'Use Free type'
code: '(Smalltalk at: #FreeTypeSystemSettings)
perform: #loadFt2Library: with: (true)'
runOnce: true.
StartupAction name: 'Setting up fonts' code: [
|font codeFont|
FileStream stdout lf; nextPutAll: 'Setting up fonts'; lf.
font := LogicalFont familyName: 'DejaVu Sans' pointSize: 12.
codeFont := LogicalFont familyName: 'DejaVu Sans Mono' pointSize: 12.
StandardFonts listFont: codeFont.
StandardFonts menuFont: font.
StandardFonts codeFont: codeFont.
StandardFonts buttonFont: codeFont.
StandardFonts defaultFont: font.
StandardFonts windowTitleFont: font.
StandardFonts balloonFont: font.
StandardFonts haloFont: font.
FileStream stdout lf; nextPutAll: 'Finished'; lf].
}.
Этот специальный каталог можно открыть с помощью
FileDirectory preferencesVersionFolder
Вы должны прочитать документацию по классу StartupLoader.