Skip to content

Instantly share code, notes, and snippets.

@cjdunn
cjdunn / MM2SpaceCenter_v4.9.py
Last active March 16, 2020 10:55
MM2SpaceCenter_v4.9.py
# MM2SpaceCenter by CJ Dunn, 2019, and licensed under the MIT license. Thanks to Tal Leming, Andy Clymer, David Jonathan Ross, Jackson Cavanaugh, Nina Stössinger for help and inspiration with this script
# #when pair changes: get pair and set to space center
#you must have a UFO open and have MetricsMachine open
import sys, os
import random
from mojo.UI import CurrentSpaceCenter, OpenSpaceCenter
@gferreira
gferreira / InterpolationPreviewSpaceCenter.py
Last active April 5, 2020 19:49
Preview interpolation result in the Space Center using representations.
'''
just a proof of concept, name of the second master is hard-coded at the bottom
'''
from vanilla import FloatingWindow, CheckBox, Slider
from defconAppKit.windows.baseWindow import BaseWindowController
from mojo.events import addObserver, removeObserver
from mojo.UI import CurrentSpaceCenter
import mojo.drawingTools as ctx
@frankrolf
frankrolf / deep_query.py
Created April 16, 2020 10:50
Robofont: Set search query of frontmost font window for all font windows
'''
Set search query of frontmost font window in all font windows
'''
from mojo.UI import AllFontWindows, CurrentFontWindow
current_window = CurrentFontWindow()
current_query = current_window.getGlyphCollection().getQuery()
for font_window in AllFontWindows():
font_window.getGlyphCollection().setQuery(current_query)
@frankrolf
frankrolf / find_shortkeys.py
Last active May 25, 2020 12:28
Robofont: which shortkeys are assigned to what action?
'''
Robofont: which shortkeys are assigned to what action?
'''
import AppKit
import itertools
import mojo
modifiers = {
AppKit.NSEventModifierFlagOption: '⌥',
@frankrolf
frankrolf / glyph_smart_close_paths.py
Last active May 15, 2024 17:43
Robofont: close paths based on distance
'''
Robofont: Smart Close Paths
The idea is closing open contours based on point distance rather than
membership of a given contour.
'''
import itertools
import math
from fontTools.pens.basePen import BasePen
@frankrolf
frankrolf / tiny.py
Last active June 27, 2023 16:09 — forked from okay-type/tinyscript.py
Refireable Tiny Script Window
# menuTitle : Tiny Script Window
import tempfile
import time
from pathlib import Path
from AppKit import NSApp
from vanilla import FloatingWindow, SplitView
from lib.scripting.scriptingWindow import PyTextEditor, OutPutEditor
from mojo.events import addObserver, removeObserver
from mojo.extensions import (
setExtensionDefault, getExtensionDefault,
@frankrolf
frankrolf / arrange_stickies.scpt
Last active May 7, 2020 22:00
Applescript: distribute all stickies evenly on the main screen, with optional padding
# Distribute all stickies evenly on the main screen, with optional padding
# how many columns?
set num_columns to 7
# how many pixels of padding between the stickies?
set padding to 20
# Find the dimensions of the main screen
# https://stackoverflow.com/questions/1866912/applescript-how-to-get-current-display-resolution
@arrowtype
arrowtype / 00-toggle-darkmode.robofont.py
Last active February 3, 2022 05:57
A script to toggle darkmode in RoboFont, for app UI and Font View. Also includes a dark theme for the RoboFont Theme Editor.
"""
Toggle a dark mode in RoboFont.
For a dark mode in the Glyph Edit view, install Theme Editor:
https://github.com/connordavenport/Theme-Manager
...and import the "Dark Connor" theme from this Gist
(https://gist.github.com/arrowtype/ce0cee426f47c2fe7e82aa07d1e0a450).
Also offers to edit the markColor of glyphs with a high opacity in their markColor,
which will disrupt the visual effect of a dark mode on the Font View. However,
@khaledhosny
khaledhosny / cldr-coverage.py
Last active February 10, 2025 16:37
Calculate font script and language coverage based on ICU exemplar data
# Copyright 2020 Khaled Hosny
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
@frankrolf
frankrolf / flip_phrase.py
Last active September 3, 2020 11:09
Table-flip any phrase you like! (╯°□°)╯︵ ǝsɐɹɥd
'''
table-flip any phrase you like!
If the expression contains spaces, please use quotes.
python flip_phrase.py fontlab
>>> (╯°□°)╯︵ qɐlʇuoɟ
'''
import sys
import unicodedata