Home / Projects

Projects

Software I’ve built and open-sourced — mostly Python, mostly for Linux. All of it lives on GitHub.

Screenshot of Nexon Calculator, a GNOME-inspired scientific calculator built with PyQt6, in dark theme
Screenshot of Nexon Calculator in scientific mode with the calculation history sidebar open

Active · MIT Licensed

Nexon Calculator

A modern, GNOME-inspired scientific calculator for the Nexon ecosystem, built with Python and PyQt6. Rounded cards, gradient accents, and a native title bar on both Linux and macOS — it’s meant to feel like it belongs on your desktop, not like a web page in a window.

Features

  • Standard and scientific modes with live calculation preview
  • Full memory register (MC / MR / M+ / M− / MS) and a searchable history sidebar
  • Nexon Dark, Nexon Light, and Auto (system) themes
  • Configurable result precision, full keyboard shortcuts, always-on-top option

Built with: Python 3.12+, PyQt6 · tested with pytest, ruff, black, mypy
Runs on: Linux (primary target) and macOS, with AppImage/.deb and .app/.dmg builds on GitHub Releases

Active

Nexon Notes

A lightweight, local-first notes app for macOS and Ubuntu. Notes are organized into folders, auto-save as you type, and are stored in a local SQLite database with plain-text exports alongside — so your notes are always readable, even without the app.

Features

  • Folder-based organization with real-time auto-save
  • Local SQLite storage, plain-text file exports, and full-text search
  • Optional encrypted cloud backup — Proton Drive, OneDrive, Google Drive, or Dropbox via rclone
  • A small Flask REST API for reading/writing notes programmatically, plus Apple Notes import

Built with: Python 3.10+, PyQt6, SQLite, Flask, rclone
Runs on: macOS 12+ and Ubuntu 22.04+ (and compatible distros)

Nexon Notes app icon

Active

Nexon Snap Store

A native PyQt6 desktop frontend for Snapcraft. It looks and feels like an app store — browse, search, and inspect real Snap packages — but every “Install”, “Update”, and “Remove” button actually runs the corresponding snap command for you, instead of dropping you into a terminal or a different app.

Features

  • Browse & search — Home, Explore, and Categories pages backed by the live Snapcraft Store API, the same structured API snapd itself uses.
  • Rich package details — description, publisher (with verified badge), version, license, categories, last-updated date, and screenshots, on one details page per snap.
  • Real installs, in place — Install/Update/Remove/Launch run the actual snap CLI in the background, with live progress output and a cancel button, not a shell-out-and-hope.
  • Installed & Updates pages — see what’s really on your system and what has a pending update, read straight from snap list / snap refresh --list.
  • Automatic OS detection — one codebase, platform-specific backends. Linux (any desktop environment, GNOME-first) gets full install/remove/update support via pkexec. macOS gets full browsing with an honest, explained limitation on installation (snaps are Linux-only tech).
  • Light/dark theme, generated from a single palette so the two modes can’t drift apart.

🔍

gpt explain quicksort in one sentence

Active

ChatGPT Search

A small Ulauncher extension for asking ChatGPT a question without leaving your keyboard. Type the keyword, type your question, hit enter — it opens chatgpt.com with your prompt pre-filled, or, if you’d rather stay in the launcher entirely, answers inline using your own OpenAI API key.

Features

  • Configurable trigger keyword (defaults to gpt)
  • Opens chatgpt.com with your prompt pre-filled — no API key required
  • Optional OpenAI API key for answers directly inside Ulauncher, with one-click copy to clipboard

Built with: Python, the Ulauncher extension framework, the OpenAI API (optional)
Runs on: Linux, wherever Ulauncher runs — Ubuntu included

More where that came from

This page grows as I ship new things. Everything I build is public — the full list, commit history, and whatever’s in progress lives on GitHub.