Skip to content

About

Standalone Nix flake of personal packages and overlays with cataloged builds, platforms, licenses, and upstream sources.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

145 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nixpkgs-personal

OpenSSF Baseline OpenSSF Developer Best Practices OpenSSF Scorecard

Standalone Nix packages and overlays published as a small, reusable flake. It has no dependency on any consumer's NixOS, nix-darwin, or Home Manager configuration.

Browse the complete package catalog for build commands, platforms, source recipes, upstream links and licenses. Start with one package; you do not need the workstation configuration to use this collection.

Use

Add the flake and make its nixpkgs input follow yours:

inputs.nixpkgs-personal = {
  url = "github:nix-forge/nixpkgs-personal";
  inputs.nixpkgs.follows = "nixpkgs";
};

Packages are available as inputs.nixpkgs-personal.packages.${system}. To add them to pkgs, use inputs.nixpkgs-personal.overlays.default.

Direct packages and legacyPackages outputs enable allowUnfree internally. The caller's NixOS or Home Manager unfree setting does not configure those separate imports. To enforce a selective policy, use the overlay or ordinary default.nix import with your configured pkgs:

pkgs = import nixpkgs {
  inherit system;
  overlays = [ nixpkgs-personal.overlays.default ];
  config.allowUnfreePredicate = package:
    builtins.elem (nixpkgs.lib.getName package) [
      "openai-skills"
      "ttf-ms-win11-auto"
    ];
};

Keep allowUnfree = false, its default, when using a selective predicate. The Anthropic catalog defaults to reviewed free examples; restricted skills are separately selectable. The full OpenAI catalog still requires unfree consent and also offers a free selection. The metadata research explains license classification, source provenance and build settings. The metadata audit records the reviewed package classifications.

Platform Package coverage
x86_64-linux Fonts, skills, Linux desktop packages, cursors, Spotify and CEF helper
aarch64-linux Fonts, skills, Codex Desktop, Noctalia and cursors
aarch64-darwin Fonts, skills and macOS applications

Use nix eval --json .#packages --apply 'builtins.mapAttrs (_: builtins.attrNames)' for the exact platform inventory. Linux-only packages are not exported on macOS.

x86_64-darwin is intentionally unsupported because nixpkgs unstable has dropped that platform. Several packages are proprietary or subject to upstream terms. Recipes fetch those vendor payloads when users build them; this repository does not publish those payloads or provide a public binary cache. It does include source code for bundled utilities and a vendored expression, with their retained notices. The root MIT license applies to the repository's original code, not to everything downloaded by a recipe. See the licensing policy for hosted-build exclusions and unresolved permission questions.

Development and updates

The pre-commit flake check runs portable hooks inside the Nix sandbox. Xcode formatting, SourceKit linting and native Swift quality suites remain in local Git hooks and required macOS CI jobs. Their definitions are grouped in flake/dev/git-hooks.nix, so adding a host-dependent hook does not require a second exclusion list. Portable hooks use the same commands in both environments.

CI builds lintChecks once in the required Linux lint job. Native jobs discover ciChecks, which excludes that lint owner's inventory. The ordinary checks output retains all checks for local validation. New native checks enter CI by default; additions to the lint group run in its existing required job.

The lint group is reserved for portable tooling. Platform-dependent tests belong in native checks or a required native job, so moving lint does not hide them.

Run just check, just lint, and just update-packages. The daily updater opens one pull request per changed package, so one failed build does not hold other package updates. Update scripts only change pinned source metadata and are checked by CI before automated merge. New packages follow the nixpkgs-style pkgs/by-name/<prefix>/<name> layout and must declare accurate metadata, platform support, tests where feasible, and an updater when upstream can be safely discovered.

All public packages have their own directory and can be instantiated with upstream Nixpkgs using pkgs.callPackage ./package.nix { }. Package build files, helpers, tests, and updaters stay within that directory. Upstream Nixpkgs libraries and tools remain normal dependencies.

Package small installed Bash commands with writeShellApplication and declare their command dependencies in runtimeInputs. Use writers.writePython3Bin for one executable Python file and buildPythonApplication for a distributable Python application. Patch unpacked upstream source with substituteInPlace --replace-fail. Use replaceVars or replaceVarsWith for complete @name@ file templates, and keep builtins.replaceStrings for small evaluation-time string transformations.

The overlay resolves direct and nested callPackage arguments against its incoming upstream scope. It does not inject this collection's outputs into another personal package. Explicit .override remains available.

Run just test for package independence and Python tests. CI also evaluates all three systems and builds eligible affected packages on matching runners. The independence check copies each package directory into the store and rejects dependencies on any public personal package. Updater import checks run outside the checkout.

See the package standard, research and language decisions, and package audit.

Dark application icons

noctalia-dark-app-icons is available on both Linux platforms and through the default overlay. It adds dark ChatGPT, Zen and VS Code artwork, with upstream Papirus-Dark as the fallback. It includes source attribution, license notices, an icon cache, desktop-entry aliases and rendering checks. Appearance switching belongs to the desktop configuration. See the package notes for coverage and the reviewed source update policy.

nix build .#noctalia-dark-app-icons

noctalia-personal builds the pinned upstream shell with configurable symbolic bar icons and exact tray icon lookup. Symbolic artwork follows the bar's foreground color; dock artwork continues to use the icon theme. See its package notes for the patch scope and source update checks.

Optional emoji fonts

firefox-emoji 1.7.9 and emojione-legacy 2.2.7 are available on all three flake platforms and through the default overlay. Firefox Emoji uses COLR/CPAL; EmojiOne uses SVG OpenType, so color rendering depends on application support. Both preserve the original family names and font bytes, ship attribution and upstream license notices under share/doc, and install no Fontconfig policy. They are optional historical designs, not replacements for a current default emoji font such as Noto Color Emoji.

Nixpkgs has no Firefox Emoji package at the reviewed pin. Its former emojione package was removed because upstream was archived. The explicit emojione-legacy name avoids overriding that removed alias or confusing this CC-BY-4.0/MIT release with later EmojiOne/JoyPixels licensing.

Build and run the included font checks with:

nix build .#firefox-emoji .#emojione-legacy

The checks verify untouched source bytes, Fontconfig family identity, the 14 EmojiTest face glyphs, and their COLR/CPAL or SVG color data. Both packages are also exposed as flake checks. Their source.nix files pin immutable upstream revisions and hashes for the fonts and licenses. These compatibility releases are intentionally excluded from automatic updates. Changing them requires reviewing the upstream license, family identity, color rendering, ordinary numeric text, and default emoji fallback again.

mutant-standard-emoji builds the official 2024.06 codepoint SVG archive with upstream nanoemoji as a COLRv1 font. It keeps the family name Mutant Standard Emoji and installs no default-font policy. All 7,829 supplied encodings are checked with HarfBuzz against the final color table. Artwork is by Caius Nocturne under CC BY-NC-SA 4.0; attribution and upstream credit files are included. See the package notes for renderer requirements and coverage limits.

nix build .#mutant-standard-emoji

Apple fonts

apple-fonts provides a pinned selection of macOS Font8 catalog assets and all eight Apple developer-font distributions in one consolidated output. The separate apple-color-emoji package provides a versioned, SHA-256-pinned Linux conversion with its own source verification and installer. It is an optional family and installs no Fontconfig overrides. See its source and compatibility notes. Individual assets are available through apple-fonts.assets. The developer distributions are internal sources of the consolidated output and do not have separate public package attributes. These packages are unfree and opt-in; they do not change font defaults.

The package includes a catalog/DMG updater, verified payload inventories, and an archive exporter/importer for fonts from a known Mac build. See the Apple font package guide for usage, source retention limits, and licensing details.

NUR preparation

The root default.nix supports NUR and non-flake consumers with caller-supplied Nixpkgs. Registration is pending. See NUR usage, compatibility and submission.

About

Standalone Nix flake of personal packages and overlays with cataloged builds, platforms, licenses, and upstream sources.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages