Open Source · NixOS
NixOS / nixpkgs
My first open-source contribution began with a small problem on my own system: LycheeSlicer could not complete its sign-in flow correctly on NixOS.
View pull request01 · Problem
A personal issue became something worth fixing upstream.
While using LycheeSlicer on NixOS, I found that signing in did not behave correctly. The application needed to handle its own custom URI scheme so that authentication could return from the browser to the desktop application.
Rather than treating it as an isolated workaround for my own machine, I investigated how the application was packaged in nixpkgs and whether the missing behaviour could be corrected for other NixOS users as well.
02 · Investigation
Tracing the problem through the desktop integration.
The issue led me into Linux desktop MIME and URI-handler
behaviour. The LycheeSlicer desktop entry did not declare
support for the application's custom
x-scheme-handler/lycheeslicer URI scheme.
That connected an application-level symptom — a login flow that appeared broken — to the way the operating system decides which desktop application should receive a particular URI.
03 · Contribution
A small change with a clear responsibility.
I updated the LycheeSlicer package so its desktop entry advertises the appropriate MIME handler. The change was intentionally narrow: fix the integration point without introducing unrelated package changes.
x-scheme-handler/lycheeslicer
I then tested the package locally and prepared the change according to nixpkgs conventions before submitting it upstream.
04 · Review
The contribution did not end at the first commit.
Maintainer review led to follow-up changes, which meant revisiting the implementation, addressing feedback, and keeping the pull request history and package changes aligned with project expectations.
That process was as useful as writing the original fix. It gave me practical experience with contributing to a large existing codebase where correctness also includes conventions, maintainability, review, and communication.
05 · Result
Awaiting final approval.
The contribution has progressed through review and is currently awaiting approval from the remaining maintainer before it can be merged into nixpkgs.
What started as a problem specific to my own workstation has already become an opportunity to understand the package more deeply, respond to upstream feedback, and contribute a focused improvement for other NixOS users.
06 · Learning in practice
Debugging across layers.
One of the most useful lessons from this contribution was that the visible symptom and the actual fault can live at very different layers. What looked like an application login problem ultimately involved desktop integration and URI handling.
It reinforced the same way of thinking I use elsewhere: follow the path through the system, understand the responsibility of each layer, and make the smallest change that solves the underlying problem.
The review process also gave me experience working within somebody else's standards rather than defining my own — an important difference between a personal project and contributing to a mature open-source project.
Technologies used in practice
Tools connected to real work.
Nix
Modified and tested package metadata within the nixpkgs codebase.
Git
Managed commits, review revisions, conflict resolution, and an evolving pull-request branch.
GitHub
Submitted the change upstream and worked through maintainer review and feedback.
Linux desktop integration
Investigated MIME and URI handling behind a real application sign-in problem.