NST(1)

πŸ“¦
version 1.1 Β· 2 versions
, in opensuse-leap 16.0

🌸 NST(1) β€” nst, the (not so) simple terminal 🌸

Bestie, welcome to the nst page πŸ’… β€” it's the NST(1) manual, and I'm gonna walk you through it like we're texting at 2am.


✨ NAME ✨

nst β€” not (so) simple terminal πŸ–₯οΈπŸ¦‹


✨ SYNOPSIS ✨

nst [-l <path-to-tty>] [-w <window-id>] [-o <iofile>] [-f <fontconfig
font name>] [-g <X11 gemeoetry>] [-t <title>] [-n <name>] [-c <class>]
[-e] [-i] [-a] [--config <path-to-config>] [--] [--version] [-h]
[command [arguments...]]

okay yes, it literally says gemeoetry up there 😭 that's the original's typo, not mine, I'm just the messenger, no cap


✨ DESCRIPTION ✨

nst is a (not so) simple terminal emulator πŸ’–

It's a C++ port and a fork of the suckless.org ST simple terminal emulator. So it's giving "ST but make it C++" and honestly? We're obsessed 🫢


✨ OPTIONS ✨

  • -a, --no-alt-screen β€” turns off the alternative screen buffer in the terminal. no alt screen, no drama πŸ’€
  • -c, --window-class β€” sets the window class. defaults to $TERM ✨
  • -f, --font β€” the font nst uses when it runs. it's a fontconfig string, like "LiberationMono:pixelsize=18:antialias=true:autohint=true" β€” very specific, very icon behavior πŸ’…
  • -g, --geometry β€” geometry stuff. peep XParseGeometry(3) for the full tea πŸ‘€
  • -i, --fixed-geometry β€” locks the window position in place, together with the -g option πŸ“Œ
  • -n, --window-name β€” sets the window instance name (that's the WM_CLASS property, iykyk). defaults to $TERM πŸŽ€
  • -o, --iofile β€” writes all the raw I/O to the file you give it, for recording. "-" means stdout πŸ“
  • -t, --window-title β€” sets the window title. defaults to "nst" πŸ‘‘
  • -w, --embed-window β€” embeds nst inside the window identified by window-id πŸͺŸ
  • -l, --tty β€” uses a tty line instead of a pseudo terminal. the remaining parameters get passed as flags to stty(1). path-to-tty should be a (pseudo-)serial device (e.g. /dev/ttyS0 on Linux for serial port 0) 🧚

By default nst initializes the serial line to 8 bits, no parity, 1 stop bit and a 38400 baud rate. the speed is set by appending it as the last argument (e.g. "nst -l /dev/ttyS0 115200"). arguments before the last one are stty(1) flags. wanna set odd parity on 115200 baud? use for example "nst -l /dev/ttyS0 parenb parodd 115200". set the number of bits by using for example "nst -l /dev/ttyS0 cs7 115200". see stty(1) for more arguments and cases πŸ¦‹

  • --version β€” prints version information and exits. that's it, that's the whole vibe ✌️
  • -e β€” executes the remaining parameters instead of the shell. lowkey this switch is not actually needed, it's only there for backwards compatibility. the remaining parameters get used even without it β€” except if -l is given πŸ™ˆ
  • --config β€” specify the path to a custom nst.conf(5) configuration file to parse. this overrides settings from the system wide and per-user configuration file. if it can't open the file you get a warning, but nst still starts successfully, so like... it's fine, it's fine, everything's fine 😌
heads up bestie: -h shows up in the synopsis but the OPTIONS list doesn't say anything about it. I'm not making stuff up, so that's all we know πŸ’œ

✨ ENVIRONMENT VARIABLES ✨

  • NST_IPC_ADDR β€” contains the name of an abstract UNIX domain socket that's connected to the active nst terminal. it's used by nst-msg(1) πŸ”Œ
  • NST_CONFIG β€” if you set it, it's interpreted as a path to a custom nst configuration file that gets parsed during startup. it overrides settings from all other configuration files found implicitly or specified via --config. it's the main character of config files, periodt πŸ‘‘

✨ SHORTCUTS ✨

  • Break β€” sends a break in the serial line. you get the break key on PC keyboards by pressing control and pause at the same time ⌨️
  • Ctrl+Print Screen β€” toggles whether nst prints to the iofile πŸ–¨οΈ
  • Shift+Print Screen β€” prints the full screen to the iofile πŸ“Έ
  • Print Screen β€” prints the selection to the iofile βœ‚οΈ
  • Ctrl+Scroll Wheel Up β€” increases font size πŸ”
  • Ctrl+Scroll Wheel Down β€” decreases font size πŸ”Ž
  • Shift+Mod1+Home β€” resets to the default font size 🌈
  • Ctrl+Shift+Home β€” jumps to the end of history (oldest) position πŸ•°οΈ
  • Ctrl+Shift+End β€” jumps to the current screen ⏭️
  • Shift+Page Up β€” scrolls history up by 10 lines ⬆️
  • Shift+Page Down β€” scrolls history down by 10 lines ⬇️
  • Ctrl+Shift+Page Up β€” scrolls history up by half a screen πŸŒ—
  • Ctrl+Shift+Page Down β€” scrolls history down by half a screen πŸŒ“
  • Ctrl+Shift+y β€” pastes from the primary selection (that's the middle mouse button one) πŸ–±οΈ
  • Ctrl+Shift+c β€” copies the selected text to the clipboard selection πŸ“‹
  • Ctrl+Shift+v β€” pastes from the clipboard selection πŸ“₯
  • Ctrl+Shift+Keypad Div β€” inverts the color scheme 🎨 (yes, a whole aesthetic flip)
  • Ctrl+Shift+B β€” invokes an external program and pipes the current history buffer to it (gvim by default) πŸ§ƒ
  • F11 β€” toggles fullscreen mode of the nst window πŸ–₯️✨

✨ CUSTOMIZATION ✨

nst gets customized by adjusting the nst_config.hxx and/or nst_config.cxx files and then (re)compiling the source code. it keeps things fast, secure and simple β€” the holy trinity, we love to see it πŸ‘‘πŸ’–


✨ AUTHORS ✨

See the LICENSE file for the authors 🫢


✨ LICENSE ✨

See the LICENSE file for the terms of redistribution πŸ“œ


and that's the whole page bestie!! this was the NST(1) manual, dated 09/10/2025 β€” go forth and terminal your heart out πŸ’…βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’–

πŸ“¦ where this page comes from