blob: 0d35f4f0a68d0bd3db2c1a6a080ed247f7f286a3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
kirc
KISS for IRC, an IRC client written in POSIX C99.
BACKGROUND
----------
After having tried multiple IRC clients, I decided to develope my own. The
result is a portable application that has no dependencies other than a C99
compiler.
OBJECTIVES
----------
- Per the UNIX philosophy, "Do one thing and do it well" [3].
- True to the KISS principle [4], the code-base is intentionally smaller
than most IRC clients (<250 sloc). The benefits of a small code base
reflects in the ability for kirc to be reviewed, understood and
maintained by a single person. Therefore, all feature requests and
commits shall be considered with respect to the readability and
maintainance of the overall project.
- Let's not "reinvent the wheel". Commands and functionality should
feel familiar (e.g. vi command shortcuts) and accessable via a
standard 104-key US QWERTY keyboard layout [5]. Where possible, the
number of keystrokes shall be minimized per command.
FEATURES
--------
- automatic host PING response.
- vi-like shortcuts:
<message> send a message to the current channel
/m <nick|channel> <message> send a message to a specified nick or channel
/n <message> send a message to NickServ
/j <channel> join a specified channel
/p <channel> leave (part) a specified channel
/Q <message> send a message and close the host connection
/q close the host connection
- automatic word wrapping using the greedy algorithm.
- color scheme definition via ANSI 8-bit colors [1]. Therefore, one could
theoretically achieve uniform color definition across all shell applications
and tools.
INSTALLATION
------------
Building and installing on KISS Linux using the Community repository [2]:
kiss b kirc
kiss i kirc
Building and installing on Arch Linux using the AUR [6]:
git clone https://aur.archlinux.org/kirc-git.git
cd kirc
makepkg -si
Building and installing from source:
git clone https://github.com/mcpcpc/kirc.git
cd kirc
make
make install
USAGE
-----
usage: kirc [-s hostname] [-p port] [-c channel] [-n nick] [-r real name]
[-u username] [-k password] [-w columns] [-W columns] [-o path] [-v|V]
-s server address (default: 'irc.freenode.org')
-p server port (default: '6667')
-c channel name (default: '#kisslinux')
-n nickname (required)
-u server username (optional)
-k server password (optional)
-r real name (optional)
-v version information
-V verbose output (e.g. raw stream)
-o output path to log irc stream
-w maximum width of the printed left column (default: '10')
-W maximum width of the entire printed stream (default '80')
REFERENCES
----------
[0] https://tools.ietf.org/html/rfc2812
[1] https://en.wikipedia.org/wiki/ANSI_escape_code
[2] https://github.com/kisslinux/community
[3] https://en.wikipedia.org/wiki/Unix_philosophy
[4] https://en.wikipedia.org/wiki/KISS_principle
[5] https://en.wikipedia.org/wiki/Keyboard_layout
[6] https://aur.archlinux.org/packages/kirc-git/
|