Skip to content

Custom Packages

Custom packages live in packages/ and are auto-discovered by nix-wire, exposed as self.packages.${system}.<name>. They're also re-exposed into pkgs via the overlay in overlays/packages.nix.

Available Packages

Package Platforms Description
copy unix OSC52 clipboard utility (works over SSH + tmux)
aria2tui unix TUI frontend for aria2c
sklauncher linux + darwin Minecraft launcher (SKLauncher)
stremio-enhanced darwin (aarch64) Stremio with premium addons
airsync darwin Android-to-Mac file transfer
hammerspoon darwin macOS automation (Hammerspoon app)
skhd-zig darwin Zig port of skhd hotkey daemon
road-rage all Punky display font (used in hyprlock)

Using Packages

# Run directly from the flake
nix run github:semi710/ndots#copy -- "hello"

# Or in your own flake
{
  inputs.ndots.url = "github:semi710/ndots";
  outputs = { self, nixpkgs, ndots, ... }: {
    # Via overlay (recommended - gives pkgs.copy etc.)
    nixpkgs.overlays = [ ndots.overlays.default ];

    # Or directly
    environment.systemPackages = [
      ndots.packages.x86_64-linux.copy
    ];
  };
}

copy

packages/copy.nix

A minimal shell script that copies stdin to the system clipboard via OSC52 escape sequences. Works over SSH and inside tmux.

How it works:

  1. Reads text from stdin
  2. Base64-encodes it
  3. If inside tmux: wraps in the tmux; passthrough sequence
  4. Otherwise: sends the raw OSC52 sequence
  5. The terminal emulator writes to the local clipboard (not the remote machine's)
echo "hello" | copy       # copies "hello"
printf '%s' "$BUFFER" | copy  # from zsh

Why this exists

Standard clipboard tools (xclip, pbcopy) don't work over SSH. OSC52 is a terminal protocol that tells the local terminal to copy to the local clipboard, even when you're on a remote machine. This is used throughout the shell config (zsh visual yank, tmux fzf-url, lazygit).


aria2tui

packages/aria2tui.nix

A Python TUI frontend for the aria2c download manager. Built from grimandgreedy/aria2tui.

  • Includes a vendored listpick dependency
  • Bundles the default config to $out/share/aria2tui/
nix run github:semi710/ndots#aria2tui

sklauncher

packages/sklauncher.nix

SKLauncher - a Minecraft launcher. Builds for both Linux and Darwin with platform-specific packaging.

Linux:

  • Wrapped with steam-run (for the Minecraft runtime)
  • Desktop entry + icon installed
  • JDK 21 bundled

Darwin:

  • .app bundle with Info.plist
  • Icon converted PNG → ICNS via ImageMagick
  • JDK 21 launcher script
nix run github:semi710/ndots#sklauncher

Unfree license

SKLauncher is unfree. The package sets meta.license = lib.licenses.unfree.


stremio-enhanced

packages/stremio-enhanced.nix

Stremio Enhanced - Stremio with premium addons. macOS arm64 only (fetches a pre-built .zip).

nix run github:semi710/ndots#stremio-enhanced
# Installs to $out/Applications/

airsync

packages/airsync.nix

AirSync - Android-to-Mac file transfer (KDE Connect alternative). macOS only, fetches a .dmg.

nix run github:semi710/ndots#airsync
# Installs to $out/Applications/

hammerspoon

packages/hammerspoon.nix

Hammerspoon - macOS desktop automation with Lua. Fetches the official release zip.

This packages just the .app bundle. The actual init.lua config is in modules/home/darwin/hammerspoon.nix.

nix run github:semi710/ndots#hammerspoon

skhd-zig

packages/skhd-zig.nix

A Zig port of skhd (simple hotkey daemon for macOS). Fully .skhdrc compatible. Fetches pre-built binaries.

Used by the yabai module instead of upstream skhd.

nix run github:semi710/ndots#skhd-zig

road-rage

packages/road-rage/default.nix

The Road Rage punky display font. Installs the .ttf to $out/share/fonts/.

Used by the hyprlock screen lock for the large clock display.

{ pkgs, ... }: {
  home.packages = [ pkgs.road-rage ];
  # Font is available system-wide via fontconfig
}