Change:
The current package depends on wayland/x11, making its use in servers unnecessarily cumbersome. This is nothing a simple overlay can't help with, but that requires building the package from source and is yet another thing to learn for newbies (plus, some may not notice the dependencies and inadvertently end up putting wayland on their servers... ask me how I know :wink:). Would a separate (or similar name) package be worth it? (possibly, together with some options?) mantainers: Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
We have no explicit policy prohibiting green aliases. I will create something about this. On the other hand I do not see why creating a dedicated NixOS module for it - at least not now. You can merely throw it at environment.systemPackages and the effect will be the same.
concurrent effort ^
/ I would suggest a huge load of modifications in your idea, so here is my implementation:

Discussion:
{ lib, <del> stdenv, </del> buildGoModule, <ins> callPackage, </ins> fetchFromGitHub, installShellFiles, <del> callPackage, wl-clipboard, xclip, makeWrapper, # Boolean flags withXclip ? stdenv.isLinux, withWlClipboard ? if withWlclip != null then lib.warn '' withWlclip is deprecated and will be removed; use withWlClipboard instead. '' withWlclip else stdenv.isLinux, </del> <ins> stdenv, </ins> # Deprecated options <del> # Remove them before or right after next version update from Nixpkgs or this # package itself </del> <ins> # Remove them as soon as possible withXclip ? null, withWlClipboard ? null, </ins> withWlclip ? null, }:

vendorHash = "sha256-ePhObvm3m/nT+7IyT0W6K+y+9UNkfd2kYjle2ffAd9Y="; <del> nativeBuildInputs = [ installShellFiles makeWrapper ]; </del> <ins> nativeBuildInputs = [ installShellFiles ]; </ins> outputs = [ "out"

install -Dm644 assets/micro-logo-mark.svg $out/share/icons/hicolor/scalable/apps/micro.svg ''; <del> postFixup = let clipboardPackages = lib.optionals withXclip [ xclip ] ++ lib.optionals withWlClipboard [ wl-clipboard ]; in lib.optionalString (withXclip || withWlClipboard) '' wrapProgram "$out/bin/micro"  --prefix PATH : "${lib.makeBinPath clipboardPackages}" ''; </del> passthru = { tests = lib.packagesFromDirectoryRecursive { inherit callPackage; directory = ./tests; }; <ins> wrapper = callPackage ./wrapper.nix { micro = self; }; </ins> }; meta = {

}; }; in <del> self </del> <ins> lib.warnIf (withXclip != null || withWlClipboard != null || withWlclip != null) '' The options `withXclip`, `withWlClipboard`, `withWlclip` were removed. If you are seeking for clipboard support, please consider the following packages: - `micro-with-wl-clipboard` - `micro-with-xclip` - `micro-full` '' self </ins>

<ins> { lib, micro, makeWrapper, symlinkJoin, # configurable options extraPackages ? [ ], }: symlinkJoin { name = "micro-wrapped-${micro.version}"; inherit (micro) pname version outputs; nativeBuildInputs = [ makeWrapper ]; paths = [ micro ]; postBuild = '' ${lib.concatMapStringsSep "n" ( output: "ln --verbose --symbolic --no-target-directory ${micro.${output}} $${output}" ) (lib.remove "out" micro.outputs)} pushd $out/bin for f in *; do rm $f makeWrapper ${micro}/bin/$f $f  --prefix PATH ":" "${lib.makeBinPath extraPackages}" done popd ''; meta = micro.meta; } </ins>

meteor = callPackage ../servers/meteor { }; <ins> micro-full = micro.wrapper.override { extraPackages = [ wl-clipboard xclip ]; }; micro-with-wl-clipboard = micro.wrapper.override { extraPackages = [ wl-clipboard ]; }; micro-with-xclip = micro.wrapper.override { extraPackages = [ xclip ]; }; </ins> micronaut = callPackage ../development/tools/micronaut { }; minio = callPackage ../servers/minio { };