aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/example4.pngbin0 -> 439810 bytes
-rw-r--r--README.md118
2 files changed, 73 insertions, 45 deletions
diff --git a/.github/example4.png b/.github/example4.png
new file mode 100644
index 0000000..c4b8a43
--- /dev/null
+++ b/.github/example4.png
Binary files differ
diff --git a/README.md b/README.md
index f94ebeb..9e45fc7 100644
--- a/README.md
+++ b/README.md
@@ -4,13 +4,21 @@
Author: mcpcpc
-->
-<h3 align="center"><img src="https://raw.githubusercontent.com/mcpcpc/kirc/master/.github/kirc.png" alt="logo" height="170px"></h3>
+<h3 align="center">
+ <img src="https://raw.githubusercontent.com/mcpcpc/kirc/master/.github/kirc.png" alt="kirc" height="170px">
+</h3>
+
<p align="center">KISS for IRC, a tiny IRC client written in POSIX C99.</p>
+
<p align="center">
-<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
-<a href="https://github.com/mcpcpc/kirc/releases"><img src="https://img.shields.io/github/v/release/mcpcpc/kirc.svg"></a>
-<a href="https://repology.org/metapackage/kirc"><img src="https://repology.org/badge/tiny-repos/kirc.svg" alt="Packaging status"></a>
-<a href="https://www.codacy.com/manual/mcpcpc/kirc/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=mcpcpc/kirc&amp;utm_campaign=Badge_Grade"><img src="https://app.codacy.com/project/badge/Grade/5616c0ed4b2f4209826038dbc270dbf5" alt="Codacy status"></a>
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
+ <a href="https://github.com/mcpcpc/kirc/releases"><img src="https://img.shields.io/github/v/release/mcpcpc/kirc.svg"></a>
+ <a href="https://repology.org/metapackage/kirc"><img src="https://repology.org/badge/tiny-repos/kirc.svg" alt="Packaging status"></a>
+ <a href="https://www.codacy.com/manual/mcpcpc/kirc/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=mcpcpc/kirc&amp;utm_campaign=Badge_Grade"><img src="https://app.codacy.com/project/badge/Grade/5616c0ed4b2f4209826038dbc270dbf5" alt="Codacy status"></a>
+</p>
+
+<p align="center">
+ <img src=".github/example4.png" width="550">
</p>
## Features
@@ -19,7 +27,7 @@
* No dependencies other than a [C99 compiler](https://en.wikipedia.org/wiki/C99).
* Native [SASL PLAIN and EXTERNAL](https://tools.ietf.org/html/rfc4422) authentication support.
* [TLS/SSL](https://en.m.wikipedia.org/wiki/Transport_Layer_Security) protocol capable (via external TLS utilities).
-* Chat history logging.
+* Full chat history logging.
* Multi-channel joining at server connection.
* Simple shortcut commands and full support for all IRC commands in the [RFC 2812](https://tools.ietf.org/html/rfc2812) standard:
@@ -31,15 +39,9 @@
/? Print current message channel.
```
-* Color scheme definition via [ANSI 8-bit colors](https://en.wikipedia.org/wiki/ANSI_escape_code). Therefore, one could theoretically achieve uniform color definition across all shell applications and tools.
-
-## Screenshots
-
-![Screenshot 1](/.github/example.png)
+* Color scheme definition via [ANSI 8-bit colors](https://en.wikipedia.org/wiki/ANSI_escape_code), allowing for uniform color definition across all shell applications.
-![Screenshot 1](/.github/example2.png)
-
-## Installation
+## Installation & Usage
Building and installing on **KISS Linux** using the Community repository:
@@ -65,37 +67,26 @@ make
make install
```
-## Usage
+### Usage
+
+Consult `man kirc` for a full list and explanation of available `kirc` arguments.
```shell
-usage: kirc [-s hostname] [-p port] [-c channel] [-n nick] [-r real name] [-u username] [-k password] [-x init command] [-w columns] [-W columns] [-o path] [-e|v|V]
--s server address (default: 'irc.freenode.org')
--p server port (default: '6667')
--c channel name(s), delimited by a "," or "|" character (default: 'kirc')
--n nickname (required)
--u server username (optional)
--k server password (optional)
--a PLAIN SASL authentication token (optional, specified with nick)
--e EXTERNAL SASL authentication (optional)
--r real name (optional)
--v version information
--V verbose output (e.g. raw stream)
--o output path to log irc stream
--x send command to irc server after inital connection
--w maximum width of the printed left column (default: '20')
--W maximum width of the entire printed stream (default '80')
+kirc [-s hostname] [-p port] [-c channels] [-n nickname] [-r realname] [-u username] [-k password] [-x command] [-w nick_width] [-W max_width] [-o logfile] [-e|v|V]
```
## Transport Layer Security (TLS) Support
-There is no native TLS/SSL support. Instead, users can achieve this functionality by using third-party utilities (e.g. stunnel, socat, ghosttunnel, etc).
+There is no native TLS/SSL support. Instead, users can achieve this functionality by using third-party utilities (e.g. stunnel, [socat](https://linux.die.net/man/1/socat), ghosttunnel, etc).
+
+### Example using `socat`
-* [socat](https://linux.die.net/man/1/socat) example (remember to replace items enclosed with `<>`):
+Remember to replace items enclosed with `<>`.
- ```shell
- socat tcp-listen:6667,reuseaddr,fork,bind=127.0.0.1 ssl:<irc-server>:6697
- kirc -s 127.0.0.1 -c 'channel' -n 'name' -r 'realname'
- ```
+```shell
+socat tcp-listen:6667,reuseaddr,fork,bind=127.0.0.1 ssl:<irc-server>:6697
+kirc -s 127.0.0.1 -c 'channel' -n 'name' -r 'realname'
+```
## SASL PLAIN Authentication
@@ -115,17 +106,54 @@ $ kirc -n jilles -a amlsbGVzAGppbGxlcwBzZXNhbWU=
## SASL EXTERNAL Authentication
-Similar to `SASL PLAIN`, the `SASL EXTERNAL` mechanism allows us to authenticate using credentials by external means. An example where this might be required is when trying to connect to an IRC host through [Tor](https://www.torproject.org/). To do so, we can using third-party utilities (e.g. stunnel, socat, ghosttunnel, etc).
+Similar to `SASL PLAIN`, the `SASL EXTERNAL` mechanism allows us to authenticate using credentials by external means. An example where this might be required is when trying to connect to an IRC host through [Tor](https://www.torproject.org/). To do so, we can using third-party utilities (e.g. stunnel, [socat](https://linux.die.net/man/1/socat), ghosttunnel, etc).
+
+### Example using `socat`
-* [socat](https://linux.die.net/man/1/socat) example (remember to replace items enclosed with `<>`):
+Remember to replace items enclosed with `<>`.
- ```shell
- socat TCP4-LISTEN:1110,fork,bind=0,reuseaddr SOCKS4A:127.0.0.1:<onion_address.onion>:<onion_port>,socksport=9050
- socat TCP4-LISTEN:1111,fork,bind=0,reuseaddr 'OPENSSL:127.0.0.1:1110,verify=0,cert=<path_to_pem>'
- kirc -e -s 127.0.0.1 -p 1111 -n <nick> -x 'wait 5000'
- ```
+```shell
+socat TCP4-LISTEN:1110,fork,bind=0,reuseaddr SOCKS4A:127.0.0.1:<onion_address.onion>:<onion_port>,socksport=9050
+socat TCP4-LISTEN:1111,fork,bind=0,reuseaddr 'OPENSSL:127.0.0.1:1110,verify=0,cert=<path_to_pem>'
+kirc -e -s 127.0.0.1 -p 1111 -n <nick> -x 'wait 5000'
+```
+
+## Color Scheme Definition
+
+Applying a new color scheme is easy! One of the quickest ways is to use an application, such as [kfc](https://github.com/mcpcpc/kfc), to apply pre-made color palettes. Alternatively, you can manually apply escape sequences to change the default terminal colors.
+
+### Example using `kfc`
+
+```shell
+kfc -s gruvbox
+```
+
+### Example using ANSI escape sequences
+
+```shell
+printf -e "\033]4;<color_number>;#<hex_color_code>"
+
+# Replace <hex_color_code> with the desired Hex code (e.g. #FFFFFF is white).
+# Replace <color_number> with the one of the numbers below:
+# 0 - Regular Black
+# 1 - Regular Red
+# 2 - Regular Green
+# 3 - Regular Yellow
+# 4 - Regular Blue
+# 5 - Regular Magenta
+# 6 - Regular Cyan
+# 7 - Regular White
+# 8 - Bright Black
+# 9 - Bright Red
+# 10 - Bright Green
+# 11 - Bright Yellow
+# 12 - Bright Blue
+# 13 - Bright Magenta
+# 14 - Bright Cyan
+# 15 - Bright White
+```
## Contact
-For any further questions or concerns, feel free to reach out to me on `#kirc`
+For any further questions or concerns, feel free to reach out to me, [mcpcpc](https://github.com/mcpcpc), on `#kirc`
or `#kisslinux` channels of the _irc.freenode.org_ server.