ST(1)

πŸ“¦
version 0.9.2 Β· 3 versions
, in debian trixie, ubuntu questing

πŸ’– ST β€” the manual, but make it cute πŸ’–

okay bestie, welcome to st(1) from the General Commands Manual section. grab a strawberry drink, we're learning terminal emulation and we're gonna slay it πŸ“βœ¨


🌸 NAME 🌸

st β€” simple terminal. that's it. that's the whole name. simple. terminal. iconic behavior honestly πŸ’…


✨ SYNOPSIS ✨

st [-aiv] [-c class] [-f font] [-g geometry] [-n name] [-o iofile] [-T
title] [-t title] [-l line] [-w windowid] [[-e] command [arguments...]]

st [-aiv] [-c class] [-f font] [-g geometry] [-n name] [-o iofile] [-T
title] [-t title] [-w windowid] -l line [stty_args...]

two whole forms, because apparently one wasn't enough. the second one is the serial line girlies' version πŸŽ€


πŸ¦‹ DESCRIPTION πŸ¦‹

st is a simple terminal emulator. no cap, that's the entire description. she's simple, she's fast, she's not doing too much. main character energy but make it minimal πŸ’œ


πŸ’… OPTIONS πŸ’…

bestie. there are a LOT of these. we're doing every single one, no skipping, no summarizing, we eat the whole plate 🍽️✨

  • -a β€” turns off alternate screens in the terminal. bye alternate screen, we don't know her πŸ’€
  • -c class β€” sets the window class. the default is $TERM, so if you don't say anything she just uses what the env said πŸ‘‘
  • -f font β€” picks the font to use when st is run. your whole aesthetic depends on this one ngl πŸŽ€
  • -g geometry β€” defines the X11 geometry string. the form is literally:
[=][<cols>{xX}<rows>][{+-}<xoffset>{+-}<yoffset>]

and if you want further details, go read XParseGeometry(3) because she said so πŸ“

  • -i β€” will fixate the position given with the -g option. like it's pinned. committed. obsessed with one spot πŸ”₯
  • -n name β€” sets the window instance name. default is $TERM, again. she loves her defaults πŸ’œ
  • -o iofile β€” writes ALL the I/O to iofile. super useful when you're recording st sessions (vlog era πŸ“Ή). and if you pass a value of "-", that means standard output. cute.
  • -T title β€” sets the window title. default is 'st'. yes really, she named it after herself, self-love fr fr πŸ’–
  • -t title β€” sets the window title. default is 'st'. yes, this is the same description as -T, bestie, I'm not being lazy, that's genuinely what it says. two flags, one dream 🫢
  • -w windowid β€” embeds st within the window identified by windowid. she's moving in with another window. roommate arc 🏠
  • -l line β€” uses a tty line instead of a pseudo terminal. line should be a (pseudo-)serial device, like /dev/ttyS0 on Linux for serial port 0. when this flag is given, all the remaining arguments get used as flags for stty(1).

by default st initializes the serial line to 8 bits, no parity, 1 stop bit and a 38400 baud rate. the speed gets set by appending it as the last argument β€” for example 'st -l /dev/ttyS0 115200'.

arguments before the last one are stty(1) flags. wanna set odd parity on 115200 baud? use for example 'st -l /dev/ttyS0 parenb parodd 115200'. wanna set the number of bits? use for example 'st -l /dev/ttyS0 cs7 115200'. see stty(1) for more arguments and cases, she's not gonna list them all here 😭

  • -v β€” prints version information to stderr, then exits. quick little hello-and-bye ⭐
  • -e command [ arguments ... ] β€” st executes command instead of the shell. if you use this it must be the last option on the command line, just like in xterm / rxvt. this option is only intended for compatibility, and honestly? all the remaining arguments are used as a command even without it. so she's being polite, not necessary πŸ’…

πŸŽ€ SHORTCUTS πŸŽ€

the keyboard combo section, aka the cheat codes 🌈

  • Break β€” send a break in the serial line. on PC keyboards you get the Break key by pressing control and pause at the same time. two keys, one destiny ✨
  • Ctrl-Print Screen β€” toggle whether st should print to the iofile. on and off, she's indecisive but in a cute way πŸ™ˆ
  • Shift-Print Screen β€” print the full screen to the iofile. everything. the whole vibe. screenshot energy πŸ“Έ
  • Print Screen β€” print the selection to the iofile. just the part you picked, queen behavior πŸ‘‘
  • Ctrl-Shift-Page Up β€” increase font size. big text era πŸ”
  • Ctrl-Shift-Page Down β€” decrease font size. tiny text era 🐜
  • Ctrl-Shift-Home β€” reset to default font size. back to factory settings, we love a reset 🧚
  • Ctrl-Shift-y β€” paste from primary selection (that's the middle mouse button one, iykyk) πŸ–±οΈ
  • Ctrl-Shift-c β€” copy the selected text to the clipboard selection. the classic πŸ“‹
  • Ctrl-Shift-v β€” paste from the clipboard selection. the other classic πŸ“₯

πŸ’– CUSTOMIZATION πŸ’–

you can customize st by creating a custom config.h and (re)compiling the source code. that's the whole customization pipeline, bestie β€” edit file, recompile, ascend.

and the reason she does it this way? it keeps her fast, secure and simple. no config parser drama, no runtime surprises, just compile-time commitment. periodt πŸ’…βœ¨


🌟 AUTHORS 🌟

see the LICENSE file for the authors. she's crediting the whole group chat, not just one person 🫢


πŸ“œ LICENSE πŸ“œ

see the LICENSE file for the terms of redistribution. read it before you redistribute, fr fr, it's not that long πŸ’œ


πŸ‘€ SEE ALSO πŸ‘€

go say hi to the neighbors, they're all lovely 🌸


πŸ’€ BUGS πŸ’€

see the TODO file in the distribution. yes, the bugs are in the TODO, that's just how she operates, don't question it 😭


reminder bestie: -e has to be the last option on the command line, and -l eats the remaining args as stty(1) flags with the baud rate last. don't fight the rules, she's very particular about them πŸ’…

and that's the whole page! this was st-0.9.2, living in the General Commands Manual section as ST(1) πŸ’– thanks for reading to the end, you're literally the best, mwah πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from