All Projects → osa1 → Tiny

osa1 / Tiny

Licence: mit
A terminal IRC client

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Tiny

CoTerminalApps
Retro ASCII Puzzles plus SpaceInvaders, Pacman & Frogger arcade games that run WITH SOUND in a terminal on any platform !!
Stars: ✭ 21 (-96.26%)
Mutual labels:  terminal-app
Ticker
Terminal stock ticker with live updates and position tracking
Stars: ✭ 3,986 (+609.25%)
Mutual labels:  terminal-app
Terminology
The best terminal emulator based on the Enlightenment Foundation Libraries
Stars: ✭ 440 (-21.71%)
Mutual labels:  terminal-app
Birch
An IRC client written in bash
Stars: ✭ 256 (-54.45%)
Mutual labels:  irc-client
Revolution Irc
A modern Android IRC client. #revolutionirc on Freenode.
Stars: ✭ 325 (-42.17%)
Mutual labels:  irc-client
Bitwise
Terminal based bit manipulator in ncurses
Stars: ✭ 380 (-32.38%)
Mutual labels:  terminal-app
IceChat
IceChat IRC Client
Stars: ✭ 68 (-87.9%)
Mutual labels:  irc-client
Kiwiirc
🥝 Next generation of the Kiwi IRC web client
Stars: ✭ 488 (-13.17%)
Mutual labels:  irc-client
Dotfiles
Sway acid dark
Stars: ✭ 330 (-41.28%)
Mutual labels:  irc-client
Kirc
A tiny IRC client written in POSIX C99.
Stars: ✭ 416 (-25.98%)
Mutual labels:  irc-client
Github cli
GitHub on your command line. Use your terminal, not the browser.
Stars: ✭ 263 (-53.2%)
Mutual labels:  terminal-app
Spotui
Spotify in the terminal 💻🎶
Stars: ✭ 302 (-46.26%)
Mutual labels:  terminal-app
Figurine
Print your name in style
Stars: ✭ 408 (-27.4%)
Mutual labels:  terminal-app
girc
💬 A simple chat client in Python/Twisted
Stars: ✭ 16 (-97.15%)
Mutual labels:  irc-client
Neoterm
👍 A modern-designed Android terminal emulator for the 21st century.
Stars: ✭ 453 (-19.4%)
Mutual labels:  terminal-app
Typon
A multi-featured typing practice tool that runs on a terminal emulator which can turn any text file into a typing game.
Stars: ✭ 53 (-90.57%)
Mutual labels:  terminal-app
Rebound
Command-line tool that instantly fetches Stack Overflow results when an exception is thrown
Stars: ✭ 3,763 (+569.57%)
Mutual labels:  terminal-app
Ptop
An awesome task manager written in python. 💻
Stars: ✭ 547 (-2.67%)
Mutual labels:  terminal-app
Thelounge
💬 ‎ Modern, responsive, cross-platform, self-hosted web IRC client
Stars: ✭ 4,618 (+721.71%)
Mutual labels:  irc-client
Blush
Grep with colours
Stars: ✭ 410 (-27.05%)
Mutual labels:  terminal-app

tiny - Yet another terminal IRC client

tiny is an IRC client written in Rust.

Features

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

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

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

  • Simple config file format for automatically connecting to servers, joining channels, registering the nickname etc. See configuration section below.

  • Nick tab-completion in channels

  • Nicks in channels are colored.

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

  • Key bindings inspired by terminal emulators and vim. See key bindings section below.

  • Configurable colors

  • SASL authentication

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

  • znc compatible

  • TLS support

Installation

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

For pre-built binaries see releases. To build from source make sure you have Rust 1.48 or newer. By default tiny uses rustls for TLS support, and desktop notifications 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 requires OpenSSL or LibreSSL headers and runtime libraries on Linux.

  • To enable desktop notifications add --features=desktop-notifications. This requires 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're using.

Arch Linux users can install tiny from AUR.

tiny is tested on Linux and OSX.

Configuration

tiny looks for these places for a config file:

  • $XDG_CONFIG_HOME/tiny/config.yml
  • (when $XDG_CONFIG_HOME is not defined) $HOME/.config/tiny/config.yml
  • (deprecated) $HOME/.tinyrc.yml

when a config file is not found in one of these locations tiny creates one with defaults and exists, 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 by Freenode) and InspIRCd (used by Mozilla) support identification via the PASS command. This way of identification (rather than sending a message to a service like NickServ) is better when some of the channels that you automatically join require identification. To use this method enter your nick password to the pass field in servers.

Command line arguments

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

servers:
    - addr: chat.freenode.net
      ...

    - addr: irc.gnome.org
      ...

By default tiny connects to both servers. You can connect to only the first server by passing freenode as a command line argument.

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

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, or C-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 underlined char

  • 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 a channel. Leaves the server if the tab is a server.

  • /connect <hostname>:<port>: Connect to a server. Uses defaults in the config file for nick, realname, hostname and auto cmds.

  • /connect: Reconnect to the current server. Use if you don't want to wait tiny 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> to check if a specific nick is in the channel.

  • /reload: Reload configuration

  • /clear: Clears tab contents

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

  • /ignore: Ignore join/quit messages in a channel. Running this command in a server tab applies it to all channels of that server. You can check your ignore 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 that server. You can check your notify state in the status line.

Server commands

For commands not supported by tiny as a slash command, sending the command in the 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 in irc.oftc.net to chat about anything related to tiny!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].