= IRC in EKG2 = This page is created basing on really nice [[http://quadpoint.org/articles/irssi|Guide to Efficiently Using Irssi and Screen]]. As you probably know EKG2 is multiprotocol, plugin based, IM application. This page describes '''IRC''' plugin. EKG2 doesn't have to be used in console, but still instructions written here should work despite of used UI plugin. == Basics == First check if you have '''irc''' plugin loaded using `/plugin` command. It should display list similar to the one below: {{{ 004833 ::: rot13 - 20 004833 ::: irc - 15 004833 ::: gg - 15 004833 ::: jabber - 15 004833 ::: logsqlite - 5 004833 ::: ncurses - 0 }}} As you can see '''irc''' plugin is loaded, if it's not you can try loading it using `/plugin +irc` command. == Connection == Whole EKG2 is session based, so you have to create session for your connection using following command {{{ /session --add irc:IRCNet }}} `irc:` is protocol prefix, and it must be present, and IRCNet is the name of your session, name doesn't have any meaning and you can name it whatever you like. After session is added it's name should be visible in statusbar. Now let's set up ''server'' and ''nickname'' and ''alternative nickname'' in case of collision {{{ /sesion server irc.ircnet.com /session nickname R2D2 /session alt_nick R2D12345 }}} You don't have to set nickname, your system login will be used by default. Now you can finally issue: {{{ /connect }}} If everything went ok, you can try joining channel: {{{ /join !ekg2 }}} Like in other IMers, you can start discussion on a channel by simply entering the text in command line and accepting it with Enter key. == Switching Windows == After joining channel the statusbar will change to something like: {{{ (01:09) (irc:IRCNet) (win/2:irc:!6e6wpekg2) }}} '''win/2''' tells you, that current active window is window number 2. Similarly as in irssi you can use '''Alt-1''' through '''Alt-0''' to switch between windows 1 through 10, and '''Alt-q''' through '''Alt-p''' to switch between windows 11 - 20. If '''Alt''' combination are not working, it probably means your terminal is sending wrong codes. You can try using '''Esc-1''' .. '''Esc-0''' and '''Esc-q''' .. '''Esc-p''' instead of Alt combinations. They should work without a problem. If you have more windows, you can use '''Ctrl-p''' and '''Ctrl-n''' for switching to previous and next window respectively. Besides that you can try using: {{{ /window switch window_number }}} command. E.g: {{{ /window switch 1 /window switch 2 }}} == Query Windows == After joining channel userlist on right side should show people present on given channel. You can open private message window using command {{{ /query nickname }}} || Irssi has /q alias, ekg2 doesn't have it but you can define it using alias command: || {{{ /alias --add q query %1 }}} == Parting channels, closing windows == You can leave given channel using `/part` command. By default `part` leaves the window open. You can close window using '''Alt-k''' (or '''Esc-k'') or by using `/window kill` command. (Closing window forces part, so you don't have to issue `/part`) || irssi has /wc alias for closing windows, you can create it using command: || {{{ /alias --add wc window kill }}} These were the basic now we'll learn more about ekg2 itself and irc plugin. == Gimme More == === Changing settings === EKG2 has two type of variables: * session variables - we already saw them, they are set using `session` command, and * global variables - they are set using `set command` * global variables can be bounded to specific plugin, in that case they are preceeded with `pluginname:` string (e.g: `ncurses:` or `gg:`). First let's change timestamp to a fancier one. There are two variables connected with timestamp. If you type `/set time` and press '''Tab''' key '''two''' times, you will see the list of possible variable names. Those are * timestamp - this defines a format of timestamp * timestamp_show - weather or not to show timestamp (on by default) timestamp uses strftime for format, (take a look at manpage `man 3 strftime`) but each conversion specifier must be preceeded with '\'. I'm using the following timestamp: {{{ /set timestamp %C\%H%c\%M\%S%n }}} * %C - tells to change colour to bright cyan * \%H - the hour as a decimal number using a 24-hour clock (take a look at mentioned manpage). * %c - tells to change colour to cyan * \%M - the minute as a decimal number * \%S - the second as a decimal number Other fancy colours are %r%g%y%b%m%c%w (red, green, yellow, blue, magenta, cyan, white). Upper case causes use of bright colour, if you take next letter in alphabet you can change background colour, e.g: {{{ /set ncurses:display_transparent off /set timestamp %r%h\%H:\%M:\%S }}} will cause the trauma-looking red letters on green background ('h' is after 'g' :>) There are some other formattes, but they will be described somewhere else. '''Remember''' to `/save` your settings. You can also turn on auto saving using command: {{{ /set auto_save on }}} === Tab completion === As you've been informed ekg2 has tab completion, but unfortunately curently you can't complete nicknames in the middle of sentece. === Scripting === EKG2 supports Perl and Python. Some example scripts can be found in `contrib` directory. === Using the built-in help === Yep, try uing it, it doesn't hurt: * `/help` itself will give you list of possible commands, * `/help topic` should give you more information about given command * `/help set variable_name` should give you information about given variable * `/help session variable_name` should give you information about given session variable * There's a little catch here, if your current active session is for example `jid:john@doe.com` asking for help about ''session AUTO_JOIN'' won't give you any help, since AUTO_JOIN is ''irc:'' session variable, (so active session must be irc session). === Encoding stuff === If you're sitting on channels with different encodings the following settings can become handy. Since ekg2 is developed in Poland * Assuming unicode terminal: {{{ /set console_charset utf-8 /session recode_out_default_charset utf-8 /session auto_guess_encoding utf-8,latin2 /session recode_list LATIN2:#channel1,!32415channel2,nick_one;EBCDICUS:#channel3;KOI-8:Eugene }}} * ''auto_guess_encoding causes'' to try to guess encoding of incoming messages, * ''recoude_out_default_charset'' you probably can figure it out from the name, * ''recode_list'' overrides default encoding per-channel, or per-person == Customizing display == === themes === If you wanna REALLY customize look of EKG2, you'd have to create your own theme. There are some example themes in `contrib` directory. To use given theme, first create directory `themes` in your `~/.ekg2` dir and copy given ''.theme''-file there. Next set new theme using command: {{{ /set theme new_theme }}} Where ''new_theme'' is the name of the ''.theme''-file. === ncurses UI stuff === First of all you probably want a header, and bigger statusbar so: {{{ /set ncurses:header_size 1 /set ncurses:statusbar_size 2 }}} If you're not used to contacts window you can hide it using '''F3''' key. You can change it's size by changing `ncurses:contacts_size` variable. == Basic IRC Commands == Basic IRC commands works, this includes: * /join, /part, /cycle, * /op, /deop, /voice, /devoice, /halfop, /dehalfop, * /kick, /ban, /bankick, /kickban, * /names, /topic, * /whois, /wii, /whowas ''Written by GiM, moved and formatted by Greyer''