IRC clients and IRSSI

Anyone who wants to really get anywhere with Linux quickly learns the power of IRC as a source for help, advice, and plain friendship. A good IRC client is therefore important.

I’ve tried a few since starting my Linux experiment a month ago. I started with the Pidgin IRC mode. It’s pre-installed with Ubuntu, it’s easy to find, and not too difficult to set up. However, I quickly found that it was not only simple, but also clumsy, and I didn’t feel very comfortable with it in general.

So I decided to move to Xchat, which was highly recommended to me by several people. I really liked this client. It was logical, clear, and I found it easy to understand and follow what was going on, even in several different windows. You can choose between a tabbed system and a chatroom-tree for displaying your different windows, and the colour scheme makes the different parts of the conversations nice and clear. I would definitely recommend this to anyone who prefers using a GUI.

I have recently decided to make a break for more of a command-line based system, though, and for my command line IRC I have chosen IRSSI.

Compared to some command-line programs, I found IRSSI surprisingly easy to set up. To start, with, I found this extremely good and clear guide on setting up IRSSI to connect to Freenode, so I won’t bother to write my own. I just followed the guide, and was up and running in no time.

Unlike xchat, you don’t get to use the mouse to move around IRSSI, and that’s probably it’s main difficulty. It’s also its main strength, since once you get the hang of the keyboard, moving around is actually a lot faster.

Once you’ve joined the channels you want, you need to know how to switch between them. This is actually quite easy – just hit alt-(1-0) to switch between tabs 1-10, and alt-(q-o) to switch between tabs 11-19.

There’s a lot of settings you can configure, dictating aspects such as whether a new tab opens when you get a private message, whether tabs automatically close when you /part from a channel, and so on. For a full list of options, type /tab or look at the IRSSI site here.

One of the settings you can configure is the colour scheme. I haven’t yet dived into making my own scheme, but there’s a lot you can download here and here. Download them into your ~/.irssi folder, then in IRSSI type /set theme <filename>.

Other useful commands are /msg <nick> to send someone a private message. /part leaves a channel, /wc closes it. /quit quits IRSSI altogether. There are plenty of other commands, but those should cover the major points. If there are any important commands you think I’ve missed, feel free to add a comment!

2 Comments

Filed under Linux, Thoughts

Embedding Terminals

Following on from my love of Conky, I’ve been playing around with embedding other applications into the desktop. One of the most useful tricks with this is to embed a terminal that’s always there for a quick command or two.

An easy way to get an embedded terminal is with Screenlets, which can be downloaded and installed through Synaptic if you’re using Ubuntu. The terminal screenlet can be downloaded from the website, and installed within the screenlets manager. It can be set to transparent, with its own colour scheme.

If you’re using screenlets anyway, this may be a good system, but I found it slightly buggy, and since I’m not using another other screenlets, it’s just another program to start up.

Instead, I found this guide on how to embed gnome-terminal windows, if you’re using gnome and Compiz, perfect for us Ubuntu users.

I followed the guide, but hit a problem with specifying the geometry dimensions of my window, as I didn’t like the dimensions the writer had used for his window.

The solution is in a handy little command-line tool, xwininfo. Set up a terminal exactly the size and shape you want your embedded terminal to be. Then type:

xwininfo | grep geometry

This will give you a little mouse pointer. Use it to click on the window you want the information about, in this case our terminal window. It will return the exact size and position, which you can then use for your start-up script.

The result of all this embedding is a desktop that looks like this:

A minimalistic look with Embedded Terminals

A minimalistic look with Embedded Terminals

Leave a comment

Filed under Linux, Thoughts, Tips & Tricks

The power of Vim

Anyone who wants to actually get to grips with their Linux system and get the most out of it is going to spend a lot of time in text-editors. Ubuntu provides gnome’s gedit for this purpose, and it’s pretty good.

However, I thought I would just mention Vim, a terminal-based editor (with GVim for those who prefer a GUI). I’d heard about it and decided to give it a try, and I have to say I loved it. It’s powerful, quick, and highly configurable. I’m even editing this blog with it, through a plugin called vimpress.

There’s no point writing a lot about Vim, since it’s been around since the dawn of time (it feels like) and is well documented elsewhere. However, it has a very steep learning curve that can be quite daunting to the new user. It’s still very much worth getting to grips with though, so I thought I would put together a quick collection of good places to look if you want to learn to use Vim properly.

The best place to start is probably with Vim’s own tutorial. To run this, simply type vimtutor at the command prompt (you need to have Vim installed, of course!). It should take about 30 minutes to run through

http://www.vim.org/

Vim’s home page is another good place to get information, with extensive documentation and guides. However, I found it quite daunting.

http://tnerual.eriogerg.free.fr/vim.html

For me, this is the best reference I found. Once you start to understand the basic principles of Vim, you can use this to learn the rest. I printed off a copy which I keep by my desk, literally for quick reference, with highlighting for the commands which I find most useful. It takes a little effort to get the hang of the symbology, but it’s well worth it.

http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Editors/ViIntro.html

I also found this guide helpful. It takes less time than the Vim tutor, and its reference list is smaller and easier to understand than the quick reference. However, it is only a basic guide and you can do a lot more with Vim than is listed here. I started off with this guide, and moved onto the quick reference later when I had begun to get the hang of things a bit more.

Another source of help if you really can’t find what you’re looking for online is the #vim IRC channel on Freenode. I’ve found the people here are extremely helpful with good response times. They also have a handy Topic message with a few more links you might want to check out.

If none of these suggestions really help, there are literally hundreds of guides out there on the web for Vim. A quick google search should set you up with plenty of helpful material.

If all else fails, remember that Vim isn’t everyone’s cup of tea. There are plenty of other options out there that you can use instead, emacs, gedit, kedit, kate, to name but a few. If you do like Vim, though, don’t forget, you can also get it for Windows!

2 Comments

Filed under Linux, Thoughts, Tips & Tricks

How To: Modify my .conkyrc

I have described elsewhere how to make your own .conkyrc, but it can get confusing. If you find one that is almost what you want, then, how do you know which bits to change, without having to go through and understand the whole thing? Hopefully, this post will show you that.

We’ll be using my own .conkyrc as the basis for the guide. You can find the code here. Just copy the whole post, paste it into your favourite editor, and save the file in your home directory as .conkyrc. It creates a Conky that looks like this:

A screenshot of my Conky

A screenshot of my Conky

Configuration Options

Most of these should be left as they are, especially if you’re using gnome. Options you should change are xftfont comicsansms:size=8 which you should change to the font you would prefer to use as the default. alignment bottome_left should be changed to reflect where you wish Conky to be positioned – top_left, top_right, bottom_right or bottom_left. The colours should be changed to any choice of hex colour codes or html colour names. For example, default_color 577587 would change the basic colour to hex code #577587, a kind of dirty blue. Set all the colours to ones you prefer.

The default_outline_color option defines the colour for any borders, including those around your graphs. You can choose to remove borders around your graphs using the draw_graph_borders Set it to false to remove borders. Border colours can be defined by changing the default_outline_color option.

TEXT Options

If you’re really interested in changing the Conky layout a lot, you should read my more detailed guide here. Otherwise, the only bits you will really be interested in are the $font variables. I have set the $color variables so that they can all be controlled by the colour settings in the configuration part, described above. Unfortunately, it is not so easy to set up the fonts in this way, (or if it is, I have not yet discovered how to do it). This means that you need to go through this section and alter the fonts for the headings: where I have put ${font augie:style=Bold:size=8} you should change this to the font of your choice. Alternatively, if you like the augie font, you can get it here: .

The process and memory usage lists only display well in their columns if a monotype font is used. I have used bitstream vera sans mono, but if you have another monotype you prefer, use that instead.

The final part you may want to modify may be quite complex. I have a wireless network. To use the variables that allow me to display my wireless information, I have had to compile Conky in a special way, described here. If you don’t have a wireless network, you will need to use a completely different set of variables.


${font augie:style=Bold:size=8}$color1 Network > ${addr eth0}${font augie:style=Bold:size=8} $font $color
Down / Up Speed: ${downspeed eth0} k/s / ${upspeed eth0} k/s
${downspeedgraph eth0 20,120 F660AB F52887} $alignr ${upspeedgraph eth0 20,120 F660AB F52887}
Down / Up Bytes: ${totaldown eth0} / ${totalup eth0}
Inbound / Outbound / Total: ${tcp_portmon 1 32767 count} / ${tcp_portmon 32768 61000 count} / ${tcp_portmon 1 65535 count}

Copy this section of text, and use it instead of all the code between

${font augie:style=Bold:size=8}$color1 Network > ${wireless_essid wlan0} > ${addr wlan0}${font augie:style=Bold:size=8} $font $color

and

Inbound / Outbound / Total: ${tcp_portmon 1 32767 count} / ${tcp_portmon 32768 61000 count} / ${tcp_portmon 1 65535 count}

You will need to change the hex codes for $downspeedgraph to ones more suitable for your scheme. The first code (here F660AB) is the one that will show as the actual graph.

This should ensure that all your Font and Colour configuration options have now been changed to fit in with your preferred scheme. As an example, here is a Conky I have made by doing just that:

A modified version of my Conky

A modified version of my Conky

1 Comment

Filed under How To, Linux

My .conkyrc file


# My Conky configuration
#
# the list of variables has been removed from this file in favour
# of keeping the documentation more maintainable.
# Check http://conky.sf.net for an up-to-date-list.
#fonts

use_xft yes
xftfont comicsansms:size=8
xftalpha 0.8
uppercase no

update_interval 5.0
total_run_times 0
double_buffer yes
no_buffers yes

own_window yes
own_window_type override
own_window_transparent yes
own_window_colour black
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

alignment bottom_left
#minimum_size 200 5
maximum_width 250
gap_x 20
gap_y 140

#border info
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders yes
stippled_borders 8
border_margin 4
border_width 1

# Default colors and also border colors
default_color LightPink
default_shade_color HotPink
default_outline_color HotPink
color1 HotPink
color2 DeepPink

cpu_avg_samples 2
net_avg_samples 1
override_utf8_locale no

# Add spaces to keep things from moving about?  This only affects certain objects.
use_spacer right

# stuff after 'TEXT' will be formatted on screen

TEXT
${font augie:style=Bold:size=10} $color1 ${time %c} ${font}
$hr

$color You have $color2 ${texeci 100 python ~/Scripts/gmail.py} email(s).

$color1$hr

${font augie:style=Bold:size=8}$color1 CPU Usage:$font $color $cpu% ${cpubar}
${font augie:style=Bold:size=8}$color1 RAM Usage:$font $color $mem/$memmax - $memperc% ${membar}
${font augie:style=Bold:size=8}$color1 Swap Usage:$font $color $swap/$swapmax - $swapperc% ${swapbar}
${font augie:style=Bold:size=8}$color1 Processes:$font $color $processes ${font augie:style=Bold:size=8} $color1 Running:$font $color $running_processes

${font augie:style=Bold:size=8}$color1 Network > ${wireless_essid ath0} > ${addr ath0}${font augie:style=Bold:size=8} $font $color
${wireless_link_qual_perc ath0}% ${wireless_link_bar ath0}
Down / Up Speed: ${downspeed wifi0} k/s / ${upspeed wifi0} k/s
${downspeedgraph wlan0 20,120 F660AB F52887} $alignr ${upspeedgraph wlan0 20,120 F660AB F52887}
Down / Up Bytes: ${totaldown wifi0} / ${totalup wifi0}
Inbound / Outbound / Total: ${tcp_portmon 1 32767 count} / ${tcp_portmon 32768 61000 count} / ${tcp_portmon 1 65535 count}

${font augie:style=Bold:size=8}$color1 File systems: $font $color
/      ${fs_free /} (${fs_free_perc /}%) ${fs_bar 6 /}
/home  ${fs_free /home} (${fs_free_perc /home}%) ${fs_bar 6 /home}
/usr   ${fs_free /usr} (${fs_free_perc /usr}%) ${fs_bar 6 /usr}

${font augie:style=Bold:size=8}$color1 Name                  PID       CPU    MEM$font
${font bitstreamverasansmono:size=8}$color2 ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
$color ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
$color ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
$color ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
${font augie:style=Bold:size=8}$color1 Mem usage$font
${font bitstreamverasansmono:size=8}$color2 ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
$color ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
$color ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}

3 Comments

Filed under Code, Linux

Pastebinit: Uploading from the Command Line

One thing you will swiftly learn while trying to solve problems, learn how to do things, and generally share code in Linux, is that websites like and the like are very very useful. Cutting and pasting your code, or terminal output, or anything else, can get a bit boring though.

Enter Pastebinit, a handy little command-line tool that lets you upload a file, or pipe a terminal output, to a choice of different Pastebin websites.

It’s easy to install, if you have Ubuntu you can just pull it off the repositories:

sudo apt-get install pastebinit

You can either pass a file to it directly as an argument:

$ pastebinit /etc/X11/xorg.conf

or pipe output through it:

$ ps aux | pastebinit

It requires either a filename, or piped data, as an argument. The main options are -b [url of pastebin] and -a [author]. man pastebinit will show you a few more.

This tool is great for troubleshooting from the terminal, especially if you haven’t got access to a browser for some reason, or just generally for being lazy when sharing information. You can also use it if you’re working on some document in an editor, and you want to ask someone else for their opinion, eg for content checking. All in all, a very handy tool for the lazy!

1 Comment

Filed under Linux, Tips & Tricks

Total Installations: 10

By the time of my fourth install, I was really beginning to feel I was getting the hang of Linux. Through IRC, I’d met plenty of really nice and friendly people who were happy to help me through these early learning stages. I’d been invited to a couple of more private channels, where I could get more immediate help on several matters, enjoy more general chat, and hopefully one day, learn how best to help people in return.

I began to get a bit frustrated therefore, when I kept having this problem with X-Window applications refusing to open. I received many different ideas about what could be causing it, and many different suggestions about how to result it, including turning on (or off?) noapic and nolapic in my Gnome session options. I still haven’t worked out what that would have done, because someone else came up with the idea to mv ~/.gnome2 ~/.gnome2.backup, and that seemed to fix it, at least temporarily. However, it erased many settings, and the problems kept coming back again. I tried reformatting a couple of times, but still the problems returned.

All this reformatting made me a genius at installing Ubuntu and setting it up quickly, using my back-up files, but it was still frustrating. Eventually, after one experienced Linux user after another gave up on trying to find the cause, I decided to just stop deleting the last Gnome Panel. I have it seethrough and auto-hidden instead. It’s not ideal, but I haven’t had the X-apps problem since, so I guess that was indeed the problem.

After 7 installs, I finally began to feel like I was getting somewhere. From knowing nothing about Linux, I had learned how to install it, and set up the graphics. I had made plenty of friends in IRC who were happy to give me support when I messed things up (no matter how often I messed things up!) and I had learned to thoroughly customise my desktop to exactly the way I wanted it. Whichever way I wanted it. I was feeling pretty good. I decided to do one last install, to ensure I had a clean slate with everything working properly.

Fluxbox

Once I had my system set up again I decided to give Fluxbox a try. The fact that I couldn’t delete that bar was still bugging me, and I’d heard that Fluxbox is a good, simple Window Manager. Where I went wrong, I suspect, is in performing this particular experiment at one o’clock in the morning. I followed the instructions that LinuxOwns posted here.

It installed fine, I logged out of gnome, changed session, and logged into Fluxbox. Maybe because I was so tired, I didn’t really take to it. It didn’t feel comfortable and the menus felt unwieldy. Maybe with more patience and research I would be able to customise it to a way that works better for me, but at that time of night I decided I wanted to be back in Gnome, so I logged out, changed sessions, and tried to log into Gnome again.

This is where it all started going wrong again, as Gnome wouldn’t load. It just got stuck and hung. So I tried going back into Fluxbox. That didn’t work either. I decided to go to bed and worry about it the next morning.

It didn’t look any better the next morning, so I set about trying to fix it. I couldn’t get into my GUI desktop, but I could still fiddle and experiment using the virtual terminal, which is one of the things I love about Linux. I tried a few things, uninstalling Fluxbox, trying failsafe mode, deleting my .gnome2 folder again, but nothing worked. In the end, I backed up my files and installed yet again. Next time, I am going to have to learn to fix things properly!

Leave a comment

Filed under Linux, Thoughts