.\" Generated by scdoc 1.11.4 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "senpai" "1" "2026-06-02" .PP .SH NAME .PP senpai - your everyday IRC student .PP .SH SYNOPSIS .PP \fBsenpai\fR [options.\&.\&.\&] [link] .PP .SH OPTIONS .PP \fB-config\fR .RS 4 Use a different path for the configuration file.\& Its format is documented in \fBsenpai\fR(5).\& .PP .RE \fB-nickname\fR .RS 4 Advanced.\& Nick name to connect as.\& Overrides the configuration item of the same name.\& .PP .RE \fB-debug\fR .RS 4 Advanced.\& Show all IRC messages that are received from/sent to the server.\& .PP .RE \fB-version\fR .RS 4 Display version info.\& .PP .RE senpai can also be opened with an \fIirc://\fR link to a server or target.\& In that case, the link is opened in an existing instance if available.\& .PP .SH DESCRIPTION .PP senpai is an IRC client made for bouncers.\& It supports the newest IRC extensions, such as: .PP .PD 0 .IP \(bu 4 \fICHATHISTORY\fR, senpai fetches history from the server instead of keeping logs, .IP \(bu 4 \fI@+typing\fR, senpai shows when others are typing a message, .IP \(bu 4 \fIBOUNCER\fR, senpai connects to all your networks at once automatically, .IP \(bu 4 \fISEARCH\fR, senpai can search messages quickly server-side, .IP \(bu 4 \fIFILEHOST\fR, senpai can upload files to the bouncer, .IP \(bu 4 and more to come!\& .PD .PP .SH CONFIGURATION .PP senpai searches for it in the following location: .PP .RS 4 $XDG_CONFIG_HOME/senpai/senpai.\&scfg .PP .RE If unset, $XDG_CONFIG_HOME defaults to \fB\(ti/.\&config\fR or the platform'\&s equivalent .PP For information about the configuration format, see \fBsenpai\fR(5).\& .PP If the configuration file does not exist, a setup assistant will create one for you.\& .PP .SH USER INTERFACE .PP The user interface of senpai consists of several parts.\& .PP On the left, the \fBbuffer list\fR, shows joined channels.\& The special buffer \fBhome\fR is where server notices are shown.\& The list can be put on the bottom of the screen with a configuration option.\& Buffers can be closed with the mouse middle click, or the \fIpart\fR command.\& .PP On the right, the \fBmember list\fR, shows members joined to the current channel.\& .PP On the bottom, the \fBinput field\fR is where you type in messages or commands (see \fBCOMMANDS\fR).\& By default, when you type a message, senpai will inform others in the channel that you are typing.\& .PP On the row above, the \fBstatus line\fR (or.\&.\&.\& just a line if nothing is happening.\&.\&.\&) is where typing indicators are shown (e.\&g.\& "dan- is typing.\&.\&.\&").\& .PP Finally, the message \fBtimeline\fR is displayed on the rest of the screen.\& .PP senpai supports the mouse almost everywhere (clicking on nicks, buffers, members, links; resizing panels; and features "buttons").\& On supported terminals, the cursor will turn into a hand when over a clickable element.\& .PP .SH SELECTING TEXT .PP In order to select text with a mouse, hold SHIFT while clicking and dragging the mouse.\& \fBClicking and dragging without holding SHIFT will not work, as senpai eats these events for eg selecting channels.\&\fR .PP .SH OPENING LINKS .PP In order to open links, refer to your terminal manual.\& On most terminals, opening links is done by holding CTRL, or SHIFT, while clicking the link.\& On the \fBfoot\fR terminal, links can be opened by pressing CTRL+SHIFT+O.\& .PP A simple left click with no modifiers will make senpai try to preview the link, or open it.\& In order to skip the preview, open the link with a modifier, as specified above, instead of an unmodified left click.\& .PP .SH KEYBOARD SHORTCUTS .PP These shortcuts can be customized in the configuration, see senpai(5).\& .PP \fBCTRL-A\fR .RS 4 Move the cursor to the beginning of the input field.\& .PP .RE \fBCTRL-E\fR .RS 4 Move the cursor to the end of the input field.\& .PP .RE \fBCTRL-C\fR .RS 4 Clear input line, or prepare for exit by adding /quit to input line.\& .PP .RE \fBCTRL-F\fR .RS 4 Prepare for search: add /search to input line.\& .PP .RE \fBCTRL-K\fR .RS 4 Prepare for jumping to a buffer: add /buffer to input line.\& .PP .RE \fBCTRL-ALT-V\fR .RS 4 Prepare for uploading the clipboard: add /upload to input line.\& .PP .RE \fBCTRL-U\fR, \fBPgUp\fR .RS 4 Go up in the timeline.\& .PP .RE \fBCTRL-D\fR, \fBPgDown\fR .RS 4 Go down in the timeline.\& .PP .RE \fBCTRL-N\fR, \fBALT-RIGHT\fR .RS 4 Go to the next buffer.\& .PP .RE \fBCTRL-P\fR, \fBALT-LEFT\fR .RS 4 Go to the previous buffer.\& .PP .RE \fBSHIFT-RIGHT\fR .RS 4 Go to the next unread buffer.\& .PP .RE \fBSHIFT-LEFT\fR .RS 4 Go to the previous unread buffer.\& .PP .RE \fBALT-HOME\fR .RS 4 Go to the first buffer.\& .PP .RE \fBALT-END\fR .RS 4 Go to the last buffer.\& .PP .RE \fBALT-P\fR .RS 4 Go to the previous highlight .PP .RE \fBALT-N\fR .RS 4 Go to the next highlight, or to the (most recent) end of the timeline if there is none.\& .PP .RE \fBALT-{1.\&.\&9}\fR .RS 4 Go to buffer by index.\& .PP .RE \fBUP\fR, \fBDOWN\fR, \fBLEFT\fR, \fBRIGHT\fR, \fBHOME\fR, \fBEND\fR, \fBBACKSPACE\fR, \fBDELETE\fR .RS 4 Edit the text in the input field.\& .PP .RE \fBENTER\fR .RS 4 Sends the contents of the input field.\& .PP .RE \fBTAB\fR .RS 4 Open the auto-completion dialog.\& Choose auto-completion item with \fBUP\fR and \fBDOWN\fR, then press \fBTAB\fR again to confirm.\& .PP .RE \fBCTRL-L\fR .RS 4 Refresh the window.\& .PP .RE \fBF7\fR .RS 4 Show/hide the vertical channel list.\& .PP .RE \fBF8\fR .RS 4 Show/hide the vertical member list.\& .PP .RE .SH COMMANDS .PP If you type and send a message that starts with a slash (\fB/\fR), it will instead be interpreted as a command: .PP .RS 4 /\fIname\fR argument1 argument2.\&.\&.\& .PP .RE \fIname\fR is matched case-insensitively.\& It can be one of the following: .PP \fBHELP\fR [search] .RS 4 Show the list of command (or a commands that match the given search terms).\& .PP .RE \fBJOIN\fR .RS 4 Join the given channel.\& .PP .RE \fBPART\fR [channel] [reason] .RS 4 Part the given channel, defaults to the current one if omitted.\& .PP .RE \fBQUIT\fR [reason] .RS 4 Quits senpai.\& .PP .RE \fBMOTD\fR .RS 4 Show the message of the day (MOTD).\& .PP .RE \fBNAMES\fR .RS 4 Show the member list of the current channel.\& Powerlevels (such as \fI@\fR for "operator", or \fI+\fR for "voice") are shown in green.\& .PP .RE \fBTOPIC\fR [topic] .RS 4 If \fItopic\fR is omitted, show the topic of the current channel and, if available, the person who set it and the time when it has been set.\& .PP Otherwise, change the topic of the current channel to \fItopic\fR.\& .PP .RE \fBMUTE\fR .RS 4 Mute the current channel.\& This prevents being distracted from new messages on unimportant channels.\& .PP This moves the channel to the end of the server, and greys its name out so that new messages do not change its color in the list.\& Highlights will still send a notification.\& .PP .RE \fBUNMUTE\fR .RS 4 Unmute the current channel.\& See \fBMUTE\fR.\& .PP .RE \fBPIN\fR .RS 4 Pin the current channel.\& This moves the channel to the start of the buffer list.\& .PP .RE \fBUNPIN\fR .RS 4 Unpin the current channel.\& See \fBPIN\fR.\& .PP .RE \fBMSG\fR .RS 4 Send \fIcontent\fR to \fItarget\fR.\& .PP .RE \fBREPLY\fR .RS 4 Reply to the last person who sent a private message.\& .PP .RE \fBME\fR .RS 4 Send a message prefixed with your nick (a user action).\& If sent from home, reply to the last person who sent a private message.\& .PP .RE \fBNP\fR .RS 4 Send the current song that is being played on the system.\& Uses DBus/MPRIS internally.\& .PP .RE \fBUPLOAD\fR [file path] .RS 4 Upload a local file to the bouncer.\& If no path is given, upload the current clipboard content instead (requires \fBwl-paste\fR on Wayland or \fBxclip\fR on X11; Linux only).\& .PP .RE \fBSCREENSHOT\fR .RS 4 Take and upload a screenshot to the bouncer.\& .PP Requires support for D-Bus and xdg-desktop-portal (e.\&g.\& Gnome, or xdg-desktop-portal-wlr on sway).\& .PP .RE \fBQUOTE\fR .RS 4 Send \fIraw message\fR verbatim.\& .PP .RE \fBLIST\fR [pattern] .RS 4 List public channels, optionally matching the specified pattern.\& .PP .RE \fBBUFFER\fR .RS 4 Switch to the buffer at the \fIindex\fR position, or containing \fIname\fR.\& The buffer list will be filtered according to the passed name; entering the command will select the first buffer in the list.\& .PP .RE \fBWHOIS\fR .RS 4 Get information about someone who is connected.\& .PP .RE \fBWHOWAS\fR .RS 4 Get information about someone who is disconnected.\& .PP .RE \fBNICK\fR .RS 4 Change your nickname.\& .PP .RE \fBOPER\fR .RS 4 Log in to an operator account.\& .PP .RE \fBMODE\fR [args] .RS 4 Change channel or user modes.\& .PP .RE \fBINVITE\fR [channel] .RS 4 Invite \fInick\fR to \fIchannel\fR (the current channel if not given).\& .PP .RE \fBKICK\fR [channel] [message] .RS 4 Eject \fInick\fR from \fIchannel\fR (the current channel if not given) with an optional kick message/reason.\& .PP .RE \fBBAN\fR [channel] .RS 4 Ban \fInick\fR from entering \fIchannel\fR (the current channel if not given).\& .PP .RE \fBUNBAN\fR [channel] .RS 4 Allow \fInick\fR to enter \fIchannel\fR again (the current channel if not given).\& .PP .RE \fBSEARCH\fR .RS 4 Search messages matching the given text, in the current channel or server.\& This opens a temporary list, which can be closed with the escape key.\& .PP .RE \fBAWAY\fR [message] .RS 4 Mark yourself as away, with an optional away message.\& Use \fBBACK\fR to cancel.\& .PP .RE \fBBACK\fR .RS 4 Mark yourself as back from being away (see \fBAWAY\fR).\& .PP .RE \fBVERSION\fR [target] .RS 4 Query the server software version.\& .PP .RE \fBADMIN\fR [target] .RS 4 Query the server administrative information.\& .PP .RE \fBLUSERS\fR .RS 4 Query the server user information.\& .PP .RE \fBTIME\fR [target] .RS 4 Query the server local time.\& .PP .RE \fBINFO\fR .RS 4 Query server information.\& .PP .RE \fBLINKS\fR .RS 4 Query the servers of the network.\& .PP .RE \fBSHRUG\fR .RS 4 Send a shrug emoji to the current channel.\& ¯\e_(ツ)_/¯ .PP .RE \fBTABLEFLIP\fR .RS 4 Send a table flip emoji to the current channel.\& (╯°□°)╯︵ ┻━┻ .PP .RE \fBSTATS\fR [target] .RS 4 Query server statistics (advanced).\& .PP .RE \fBCONNECT\fR [ [remote server]] .RS 4 Connect a server to the network (advanced).\& .PP .RE \fBSQUIT\fR [comment] .RS 4 Disconnects a server from the network (advanced).\& .PP .RE \fBKILL\fR [message] .RS 4 Eject someone from the server (advanced).\& .PP .RE \fBREHASH\fR .RS 4 Make the server reload its configuration (advanced).\& .PP .RE \fBRESTART\fR .RS 4 Make the server restart (advanced).\& .PP .RE \fBWALLOPS\fR [text] .RS 4 Broadcast a message to all users (advanced).\& .PP .RE .SH ENVIRONMENT VARIABLES .PP The following standard environment variables are supported.\& .PP \fBALL_PROXY\fR .RS 4 URL of a SOCKS proxy to use when connecting to the server.\& .PP .RE \fBSSL_CERT_DIR\fR .RS 4 Colon-separated list of directories containing TLS certificates to trust, in OpenSSL c_rehash format.\& .PP .RE \fBSSL_CERT_FILE\fR .RS 4 Path to a file, PEM-encoded, containing a list of TLS certificates to trust.\& .PP .RE .SH SEE ALSO .PP \fBsenpai\fR(5) .PP .SH AUTHORS .PP Creator/Sensei: Hubert Hirtz !\& .br Current maintainer: delthas .\& .br Sources are available at .\& .br Patches are welcome by email at <\(tidelthas/senpai-dev@lists.\&sr.\&ht>.\&