Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/tinyPublic

A terminal IRC client

License

NotificationsYou must be signed in to change notification settings

osa1/tiny

Repository files navigation

tiny is an IRC client written in Rust.

Features

  • Clean UI: consecutive join/part/quit messages are shown in a single line, timestamps for a message is omitted if it's the same as the message before.(inspired byirc-core)

  • All mentions to the user are collected in a "mentions" tab, including serverand channel information. "mentions" tab solves the problem of missing mentionsto you in channels after hours of inactivity.

  • Mentions to the user in a channel is highlighted (the channel tab is alsohighlighted in the tab list)

  • Simple config file format for automatically connecting to servers, joiningchannels, registering the nickname etc. Seeconfigurationsection below.

  • Nick tab-completion in channels

  • Nicks in channels are colored.

  • Disconnect detection and automatic reconnects. You can keep tiny running onyour laptop and it automatically reconnects after a sleep etc.

  • Configurable key bindings inspired by terminal emulators and vim. Seekeybindings section below.

  • Configurable colors

  • SASL authentication

  • Configurable desktop notifications on new messages (opt-in feature behind afeature flag, see below)

  • znc compatible

  • TLS support

Installation

tiny works on Linux and OSX. Windows users can run it under Windows Subsystemfor Linux.

For pre-built binaries seereleases. To build from source make sure you haveRust 1.48 or newer. By default tiny usesrustls for TLS support, and desktopnotifications are disabled.

  • To use system TLS library (OpenSSL or LibreSSL), add--no-default-features --features=tls-native to the command you're using. Note that this requiresOpenSSL or LibreSSL headers and runtime libraries on Linux.

  • To enable desktop notifications add--features=desktop-notifications. Thisrequires libdbus on Linux.

To install in a clone:

cargo install --path crates/tiny

If you don't want to clone the repo, you can use

cargo install --git https://github.com/osa1/tiny

If you have an older version installed, add--force to the command you'reusing.

Arch Linux users can install the lateststable anddevelopment versionsof tiny through the AUR.

tiny is tested on Linux and OSX.

Configuration

tiny looks for these places for a config file:

  • On Linux:$XDG_CONFIG_HOME/tiny/config.yml, on macOS:$HOME/Library/Application Support/tiny/config.yml
  • (when not found)$HOME/.config/tiny/config.yml
  • (when not found, deprecated)$HOME/.tinyrc.yml

When a config file is not found in one of these locations tiny creates one inthe first path above with defaults and exits, printing path to the config file.Edit that file before re-running tiny to change the defaults.

A note on nick identification: Some IRC servers such as ircd-seven (used byFreenode) and InspIRCd (used by Mozilla) support identification via thePASScommand. This way of identification (rather than sending a message to a servicelikeNickServ) is better when some of the channels that you automaticallyjoin require identification. To use this method enter your nick password to thepass field in servers.

Using external commands for passwords

When a password field in the config file is a map with acommand key, thevalue is used as the shell command to run to get the password.

For example, in this config:

sasl:username:osa1password:command:'pass show "my irc password"'

tiny runs thepass ... command and uses last line printed by the command asthe password.

Command line arguments

By default (i.e. when no command line arguments passed) tiny connects to allservers listed in the config. tiny considers command line arguments as patternsto be matched in server addresses, so you can pass command line arguments toconnect to only a subset of servers specified in the config. For example, inthis config:

servers:    -addr:irc.libera.chat...    -addr:irc.gnome.org...

By default tiny connects to both servers. You can connect to only the firstserver by passinglibera as a command line argument.

You can use--config <path> to specify your config file location.

Key bindings

Key bindings can be configured in the config file, see thewikipage for details.

Default key bindings:

  • C-a/C-e move cursor to beginning/end in the input field

  • C-k delete rest of the line

  • C-w delete a word backwards

  • C-left/C-right move one word backward/forward

  • page up/page down,shift-up/shift-down, orC-u/C-d to scroll

  • C-n/C-p next/previous tab

  • C-c enter quit (asks for confirmation)

  • alt-{1,9} switch to nth tab

  • alt-{char} switch to next tab with underlinedchar

  • alt-0 switch to last tab

  • alt-left/right move tab to left/right

  • C-x edit current message in$EDITOR

Commands

Commands start with/ character.

  • /help: Show help messages of commands listed below.

  • /msg <nick> <message>: Send a message to a user. Creates a new tab.

  • /join <channel>: Join to a channel

  • /close: Close the current tab. Leaves the channel if the current tab is achannel. Leaves the server if the tab is a server. You can use/close <reason> to send a goodbye message.

  • /connect <hostname>:<port>: Connect to a server. Usesdefaults in theconfig file for nick, realname, hostname and auto cmds.

  • /connect: Reconnect to the current server. Use if you don't want to waittiny to reconnect automatically after a connectivity problem.

  • /away <msg>: Set away status

  • /away: Remove away status

  • /nick <nick>: Change nick

  • /names: List all nicks in the current channel. You can use/names <nick> tocheck if a specific nick is in the channel.

  • /reload: Reload TUI configuration

  • /clear: Clears tab contents

  • /switch <string>: Switch to the first tab which has the given string in the name.

  • /ignore: Ignorejoin/quit messages in a channel. Running this command ina server tab applies it to all channels of that server. You can check yourignore state in the status line.

  • /notify [off|mentions|messages]: Enable and disable desktop notifications.Running this command in a server tab applies it to all channels of thatserver. You can check your notify state in the status line.

  • /quit: Quit. You can use/quit <reason> to send a goodbye message.

Server commands

For commands not supported by tiny as a slash command, sending the command inthe server tab will send the message directly to the server.

Examples:

  • LIST will list all channels on the server
  • MOTD will display the server Message of the Day
  • RULES will display server rules
  • etc...

Community

Join us at #tiny inirc.oftc.net to chat about anything related to tiny!

About

A terminal IRC client

Topics

Resources

License

Stars

Watchers

Forks

Contributors21

Languages


[8]ページ先頭

©2009-2025 Movatter.jp