initial commit
This commit is contained in:
commit
ed6c1e9522
58 changed files with 2221 additions and 0 deletions
179
content/projects.md
Normal file
179
content/projects.md
Normal file
|
@ -0,0 +1,179 @@
|
|||
---
|
||||
title: Projects
|
||||
---
|
||||
|
||||
<h1>Projects</h1>
|
||||
|
||||
<!--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.sr.ht/~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)
|
||||
|
||||

|
||||
|
||||
## 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.
|
Loading…
Add table
Add a link
Reference in a new issue