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) |
| drag | darwin | Drag-and-drop from the command line |
| bitbucket-server-mcp | unix | MCP server for Bitbucket Server PR management |
| kblight | darwin (aarch64) | MacBook keyboard backlight control via CoreBrightness |
| sklauncher-beta | linux + darwin | SKLauncher 4.0 beta (native Electron, bundled JRE) |
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:
- Reads text from stdin
- Base64-encodes it
- If inside tmux: wraps in the
tmux;passthrough sequence - Otherwise: sends the raw OSC52 sequence
- The terminal emulator writes to the local clipboard (not the remote machine's)
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
listpickdependency - Bundles the default config to
$out/share/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:
.appbundle with Info.plist- Icon converted PNG → ICNS via ImageMagick
- JDK 21 launcher script
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).
airsync¶
packages/airsync.nix
AirSync - Android-to-Mac file transfer (KDE Connect alternative). macOS only, fetches a .dmg.
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.
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.
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
}
drag¶
flake input: github:semi710/dragterm
dragterm, drag-and-drop from the command line. Run drag <files> and a file icon follows your cursor; click-hold to drop. Hold Shift to fade the icon and let clicks pass through to apps behind it. Darwin only. Fork of Wevah/dragterm.
Unlike the packages/*.nix packages above, this comes from an external flake input, re-exposed into pkgs via the overlay (drag = inputs.dragterm.packages.${system}.drag). Added to the darwin home package list in modules/home/packages.nix.
bitbucket-server-mcp¶
packages/bitbucket-mcp.nix
MCP server for Bitbucket Server/Data Center - exposes pull request management (create, review, comment, merge, decline) as MCP tools, so AI agents can interact with Bitbucket PRs directly.
Built with buildNpmPackage from source. The binary is bitbucket-server-mcp.
kblight¶
packages/kblight.nix
kblight - a tiny CLI that sets the keyboard backlight on Apple Silicon Macs. Single Swift file, no dependencies, no sudo, no entitlements. Talks to the private CoreBrightness.framework via KeyboardBrightnessClient - the same path corebrightnessd uses, so writes propagate to the LED immediately.
Wired into skhd special mode: , decreases, . increases (10% steps via kblight-step wrapper).
sklauncher-beta¶
packages/sklauncher-beta.nix
SKLauncher 4.0 Beta - the next-gen Minecraft launcher. Unlike the stable sklauncher (a JAR wrapped with steam-run + JDK 21), 4.0 ships native Electron builds with a bundled JRE, so no external Java is needed.
Linux:
- AppImage wrapped with
appimage-run - Desktop entry + icon installed
Darwin:
- Native
.appbundle (unzipped from release) - Both x86_64 and aarch64
Unfree license
SKLauncher is unfree. The package sets meta.license = lib.licenses.unfree.