6.3 KiB
6.3 KiB
title | draft |
---|---|
Projects | true |
I really enjoy programming, especially writing simple utilities to solve common problems. Here, I list project I've written on my own time. For my academic work, please see the research section.
Static Site Builder
- Static site builder written in Python and optimized for lightweight blogs following minimalist design principles.
- Support for templates, declarative metadata, and configuration files.
- Interprets inline image "alt text" as Markdown, rendered as an image tag.
- In active development, plans for many more features.
- Used to build this website.
Libraries
Typst
- typpres
- Provides functions to make creating slideshows with polylux more convenient.
- reflib
- Provides functions to make typesetting label references more convenient.
Utilities
System Maintenance
- Email Parser
- Forked and maintains a Tree-sitter parser for
mail
files. - Extended formal grammar definitions, supporting additional syntax elements & fixing critical bugs.
- Wrote highlight and text object queries implementing
mail
support for Helix; contributed the feature upstream. - Currently researching how to leverage the parser to contribute
mail
support to the Harper grammar checker.
- Forked and maintains a Tree-sitter parser for
- Email Formatter
- Wrote a lightweight email formatter in Python, intended to format outgoing plaintext emails.
- Wraps paragraphs at specified column width.
- Automatically reflows uneven paragraphs.
- Preserves long words, quoted lines, indented lines, lists, code blocks, and signature blocks.
- Custom heuristic for preserving two-line signoffs.
Desktop
- Screen Recording Utility
- Niri Window Status
- Python server that integrates with Niri to provide a live indicator of windows open on active workspaces.
- Designed for use with Waybar and similar software.
- Niri Window Picker
- Simple Python script that spawns a fuzzy picker allowing users to fuzzily select an open window to switch focus to.
Keyboard
- Self-built wireless corne keyboard.
- Colemak-DH (non-QWERTY, ergonomic layout).
- Custom columnar split layout leveraging overloaded modifiers and layers to maximize efficiency.
- Custom ANSI layout intended to make my ThinkPad internal keyboard as ergonomic as possible without conflicting with external keyboards.
Ashen
- Original color scheme designed by me.
- Carefully tuned to fill a particular niche.
- Opinionated, clean, muted, and dark.
- Active user base, receives contributions.
- Ported to a wide variety of software, including (but not limited to):
- Helix (text editor).
- Terminal emulators (Most popular emulators covered)
- Firefox
- CLI tools (eza, bat)
- TUI tools (lazygit, yazi)
Plugins
Kakoune
- kak-wrap-nav
- Implementation of Vim's
gj/gk
(visual vertical navigation) for Kakoune. - Contains 1:1 implementation of Kakoune's visual wrapping algorithm in Go (needed to calculate offsets for visual navigation)
- Work in progress.
- Implementation of Vim's
- kak-autospell
- Automatically refreshes and clears spellchecker highlighting.
- Provides convenience mappings for using built-in spellchecker.
- kak-ashen
- Official implementation of Ashen for Kakoune.
- Features toggle-able mode-indicating dynamic cursor with optional EOL variants.
- Additional tree-sitter support, including Helix capture groups.
kakoune-lsp
support.
- kak-title-bar
- Asynchronously renders a bufferlist as the terminal's window title for tight integration with the window manager.
- Indicates buffer modified states and active buffer.
Fish
- jrnl.fish
- Small utility for managing daily journal entries.
- Template support.
- smartcd.fish
- Adds contextual smart behavior to the
cd
command.
- Adds contextual smart behavior to the
- Fisher (contribution)
- Added support for sourcehut plugins and fixed a critical issue with unsafe tilde path expansion.
- PR
Helix
Mandatory caveat: Helix does not have a plugin system! However, it does allow your to invoke shell commands, making it possible to implement some very hacky functionality.
- hx-typ-zathura
- Easily open a PDF preview of your current Typst file in Zathura.
- justfile formatter
- Workaround for formatting justfiles without any dependencies.
Neovim
-
- Neovim plugin.
- Automatically installs and configures an Academic English spelling dictionary.
- Minimal performance overhead.
-
- Implementation of Ashen for Neovim.
- Supports numerous plugin integrations.