tic(1) on Solnix vs Linux and the BSDs

The published Solnix tic(1) page is the ncurses 6.5 tic from pkgs.solnix.ncurses, but a default Solnix system runs the illumos tic at /usr/bin/tic. The bundle has no illumos text, so its options are not documented here. Against NetBSD, the ncurses tic is a different program: NetBSD writes a .cdb file and has only -a -c -o -S -s -x.

What Solnix runs

On PATH a default Solnix system has the illumos /usr/bin/tic, and no other illumos variants are shipped. The published page describes the ncurses tic from pkgs.solnix.ncurses (the page's paths name ncurses-6.5 in /nix/store). The bundle does not include the illumos page, so any difference between the two Solnix implementations is not covered here. Add pkgs.solnix.ncurses to get the ncurses tic.

Differences

Compared withTopicWhat differs
Linuxsame programThe ncurses tic on Solnix and on Linux is the same program. The synopsis, option letters and Aliases section (infotocap sets -I, captoinfo sets -C) match. The Solnix page is for ncurses 6.5 and the Linux page for ncurses 6.6.
Source: Solnix tic(1) SYNOPSIS, Aliases; Linux tic(1m) SYNOPSIS, Aliases
FreeBSD, OpenBSDsame program, different database pathFreeBSD and OpenBSD also ship the ncurses tic with the same options. Only the default output location differs: FreeBSD /usr/share/misc/terminfo, OpenBSD /usr/share/terminfo. Solnix and Linux give a path inside an ncurses package in /nix/store.
Source: Solnix tic(1) DESCRIPTION; Linux tic(1m) DESCRIPTION; FreeBSD tic(1) DESCRIPTION; OpenBSD tic(1) DESCRIPTION
FreeBSD, OpenBSDdefault terminfo locationOn Solnix, the system terminfo database that tic writes to by default is a /nix/store/...-ncurses-6.5/share/terminfo path. A script that assumes /usr/share/terminfo or /usr/share/misc/terminfo will not find entries there. Run tic -D to see the real locations.
Source: Solnix tic(1) DESCRIPTION, -D; FreeBSD tic(1) DESCRIPTION; OpenBSD tic(1) DESCRIPTION
Linux, FreeBSD, OpenBSDfallback to $HOME/.terminfoIf tic cannot write to the system database or to $TERMINFO, it uses $HOME/.terminfo (or $HOME/.terminfo.db), but only if that location already exists. This is stated on the Solnix, Linux, FreeBSD and OpenBSD pages. -o dir or TERMINFO overrides the default.
Source: Solnix tic(1) DESCRIPTION; Linux tic(1m) DESCRIPTION; FreeBSD tic(1) DESCRIPTION; OpenBSD tic(1) DESCRIPTION
NetBSDoutput format and locationNetBSD tic writes a database whose name is the source file name with .cdb appended. The ncurses tic on Solnix writes a directory tree or a hashed .db database in the system terminfo location, chosen by how it was built.
Source: NetBSD tic(1) DESCRIPTION; Solnix tic(1) DESCRIPTION
NetBSD-o meaningOn NetBSD, -o file names the output database file instead of source.cdb. On Solnix, -odir names a terminfo database location (directory or hashed database) and overrides TERMINFO.
Source: NetBSD tic(1) -o; Solnix tic(1) -o
NetBSDmissing optionsNetBSD tic accepts only -a, -c, -o, -S, -s and -x. It has none of the Solnix options -I, -C, -e, -D, -Q, -R, -v and -w, and its page does not mention infotocap or captoinfo. Solnix tic can force translation to terminfo (-I) or termcap (-C) format.
Source: NetBSD tic(1) SYNOPSIS, options; Solnix tic(1) SYNOPSIS, -C, -I
NetBSD-S meaningNetBSD -S is unique to its tic: for each term1 term2 ... given after the source file, it outputs a C structure with name, compiled description and size, to embed in a program. The Solnix page documents no -S; its synopsis has no -S.
Source: NetBSD tic(1) SYNOPSIS, -S; Solnix tic(1) SYNOPSIS
NetBSD-a and -xOn NetBSD, -a only keeps commented-out capabilities and -x is a separate option for non-standard capabilities. On Solnix, -a also sets -x, because commented-out entries are treated as user-defined names.
Source: NetBSD tic(1) -a, -x; Solnix tic(1) -a
NetBSD-c check modeOn NetBSD, -c checks for errors and does not write the final database. On Solnix, -c checks file for syntax problems and bad use-links, and with -C or -I warns about entries longer than 1023 (4096) bytes after use resolution.
Source: NetBSD tic(1) -c; Solnix tic(1) -c
NetBSDselecting terminalsOn NetBSD, terminals are given as extra arguments after the source file, and the page ties them to -S. On Solnix, -e list limits writes and translations to a comma-separated list, or to a file of names if the value contains '/'.
Source: NetBSD tic(1) SYNOPSIS, -S; Solnix tic(1) -e
FreeBSD, OpenBSDcompiled-in directory listThe Solnix page does not leave the compiled-in directory list blank. It gives the ncurses store path. The FreeBSD page shows the placeholder @TERMINFO_DIRS@ and the OpenBSD page shows (?), so those pages do not say what the list is.
Source: Solnix tic(1) DESCRIPTION; FreeBSD tic(1) DESCRIPTION; OpenBSD tic(1) DESCRIPTION

Standards

  • POSIX: tic is not a POSIX.1-2024 utility.
  • NetBSD: The tic utility works with terminfo files that conform to the X/Open Curses Issue 4, Version 2 (“XCURSES4.2”) standard.

Writing portable scripts

  • Do not hard-code the terminfo directory. Pass -o dir, or set TERMINFO, and use tic -D to see where the ncurses tic would write.
  • Use only -a, -c, -o and -x if the script must also run on NetBSD, and remember that -o takes a file name there and a database location elsewhere.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.