ficd.sh/content/projects.md
Daniel Fichtinger 5a77fb4ee1
All checks were successful
/ deploy (push) Successful in 19s
updated zona links
2025-07-13 01:43:09 -04:00

178 lines
6.3 KiB
Markdown

---
title: Projects
draft: true
---
<!--toc:start-->
- [Static Site Builder](#static-site-builder)
- [Libraries](#libraries)
- [Typst](#typst)
- [Utilities](#utilities)
- [System Maintenance](#system-maintenance)
- [Email](#email)
- [Desktop](#desktop)
- [Keyboard](#keyboard)
- [Ashen](#ashen)
- [Plugins](#plugins)
- [Kakoune](#kakoune)
- [Fish](#fish)
- [Helix](#helix)
- [Neovim](#neovim)
<!--toc:end-->
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](/research) section.
## Static Site Builder
[zona](https://git.ficd.sh/ficd/zona)
- 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](https://git.sr.ht/~ficd/typpres)
- Provides functions to make creating slideshows with
[polylux](https://github.com/polylux-typ/polylux) more convenient.
- [reflib](https://git.sr.ht/~ficd/reflib)
- Provides functions to make typesetting label references more convenient.
## Utilities
### System Maintenance
- [AutoYADM](https://git.sr.ht/~ficd/autoyadm)
- Shell utility to automate managing dot files with [yadm](https://yadm.io/).
- Intelligently auto-tracks newly created children of tracked subdirectories.
- Consists of two Bash scripts; very lightweight.
- Fish port in the works.
- I use this daily to keep my [dotfiles](https://git.sr.ht/~ficd/dotfiles) in
sync.
### Email
- [Email Parser](https://github.com/ficcdaf/tree-sitter-mail)
- 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.
- [Email Formatter](https://git.sr.ht/~ficd/mail-utils)
- 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
[Repository](https://git.sr.ht/~ficd/wayland-utils)
- 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](https://github.com/foostan/crkbd) keyboard.
- [Colemak-DH](https://colemakmods.github.io/mod-dh/) (non-QWERTY, ergonomic
layout).
- [Custom columnar split layout](https://github.com/ficcdaf/zmk-config)
leveraging overloaded modifiers and layers to maximize efficiency.
- Custom [ANSI layout](https://github.com/ficcdaf/scripts/tree/main/keyd)
intended to make my ThinkPad internal keyboard as ergonomic as possible
without conflicting with external keyboards.
## Ashen
[Ashen](https://sr.ht/~ficd/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)
![](https://git.sr.ht/~ficd/ashen/blob/HEAD/helix/preview_wide.png)
## Plugins
### Kakoune
- [kak-wrap-nav](https://git.sr.ht/~ficd/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.**
- [kak-autospell](https://git.sr.ht/~ficd/kak-autospell)
- Automatically refreshes and clears spellchecker highlighting.
- Provides convenience mappings for using built-in spellchecker.
- [kak-ashen](https://git.sr.ht/~ficd/kak-ashen)
- Official implementation of [Ashen](https://sr.ht/~ficd/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](https://git.sr.ht/~ficd/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](https://git.sr.ht/jrnl.fish)
- Small utility for managing daily journal entries.
- Template support.
- [smartcd.fish](https://git.sr.ht/smartcd.fish)
- Adds contextual smart behavior to the `cd` command.
- Fisher (contribution)
- Added support for sourcehut plugins and fixed a critical issue with unsafe
tilde path expansion.
- [PR](https://github.com/jorgebucaran/fisher/pull/802)
### 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](https://git.sr.ht/~ficd/dotfiles/blob/main/.config/helix/scripts/hx-typ-zathura.fish)
- Easily open a PDF preview of your current Typst file in Zathura.
- [justfile formatter](https://git.sr.ht/~ficd/dotfiles/blob/main/.config/helix/scripts/format_just.fish)
- Workaround for formatting justfiles without any dependencies.
### Neovim
- [Academic.nvim](https://github.com/ficcdaf/academic.nvim)
- Neovim plugin.
- Automatically installs and configures an Academic English spelling
dictionary.
- Minimal performance overhead.
- [Ashen.nvim](https://github.com/ficcdaf/ashen.nvim)
- Implementation of Ashen for Neovim.
- Supports numerous plugin integrations.