• Eduardo Romero (Kensai) Contact - "Editor in Chief"
  • Daniel Griffiths (Ghost1227) Contact - "Editor"
  • David Crouse (Crouse) - "Contributor"
  • Denis Martinez (Denis) - "Contributor"
  • Ivy Foster (joyfulgirl) - "Contributor"
  • Kevin Eldridge (LeoSolaris) - "Contributor"
  • Loui Chang (louipc) - "Contributor"
  • Sam Harada (Peasantoid) - "Contributor"

Editors Desk

As promised, this month ushers in a new era for Arch Linux users. After several weeks of negotiations, we are proud to present the new Arch Linux Magazine! We had originally intended to release this landmark issue on the first of the month, but due to unforseen circumstances were forced to delay it a few days. Hopefully you will all find it worth the wait!

Unfortunately, Kensai is in the process of moving and without reliable internet access which leaves me in the position of putting ALM together by myself this month. This means that we are a little short on content, although I tried to pull together as much as I could for our faithful readers.

As promised, this month brings a wealth of changes for you to enjoy. As you have probably noticed, ALM was released in two formats (both the graphical PDF format that my magazine aficionados like, and the text-only format that our die-hard newsletter followers prefer). Additionally, the PDF format has undergone a little redesign and we will be adding a few new sections, as well as bringing back the Gamers Corner article, next month.

On behalf of the entire ALM staff, we thank you for your continued support. We are always willing to take constructive criticism, submissions, tips, or just general comments, and we sincerely hope that you all enjoy the first issue of ALM!

Daniel Griffiths (Ghost1227) (On behalf of the Arch Linux Magazine Team)


  • Those of you who haven't updated your system recently might want to take note. We recently implemented a change that switched us from the old /dev/vc* to /dev/tty*. This change involved altering the filesystem, syslog-ng, udev and initscripts packages. If you are one of the few who hasn't caught this update yet, be ready. This update will point out who doesn't pay attention to pacman's warnings! (Read more)
  • Thanks to Aaron, the most recent dbscripts update has potential support for the much anticipated features arch=('any') and split packages. While this does not affect AUR packagers yet, once it is implemented system-wide, packagers will finally be able to list their packages as arch=('any') instead of arch=('i686' 'x86_64'). (Read more)
  • The snapshot RC for the upcoming 2009.08 installation media was recently released for public testing. This latest revision includes more extensive use of the AIF installer, a better disk editor, support for automated installations, replacement of unionfs with aufs, and much more! (Read more)
  • The recently released KDE update features many upstream enhancements, as well as a new set of packages that allow you to only install those packages you like. The most notable of these changes are split packages and meta packages to ensure a smooth update. (Read more)

Arch Linux Schwag Report

Unfortunately, we were not able to get an updated schwag report for the month due to time constraints. However, this does not mean that you should stop supporting us! Visit our schwag merchants and show how much you love Arch!

Featured Interview - Loui Chang

Hello Loui. First off, we would like to thank you for taking time out of your busy schedule to talk to us. Can you tell us a little bit about yourself and how you became a Trusted User?

Hmm that's a very open question. When it comes to Linux or computers I'm really just a hobbyist. I actually work as a machinist. I've used several different Linux distros, but when I finally came to Arch I was pleasantly surprised at how easy it seemed to be able to contribute something via the AUR. Even though I didn't use it that much, there were some nagging bugs so I decided to grab the source code and start patching. I became a Trusted User because I wanted to have a look into the way they were doing things so that maybe I could help improve those systems if they were lacking. I'm not a big package maintainer though.

You have made a bit of a name for yourself with your work on the AUR. Can you tell us what some of the notable enhancements you've made are and what big changes are still in the works?

Haha. Well, it's all been a very incremental process. I think most of the cool stuff has been done by others. The Json interface and the initial site re-styling was implemented by Eli Janssen, for example. I guess I've just been here to help push things along and guide development. I think most of my work lies in the back-end, and refactoring code. As for the future, I'd like to attempt a complete reimplementation with a more 'robust' client/server model. I'd like to make it a real application from the ground up rather than a web app with add-ons. I don't want to get anyone's hopes up though. It has been attempted at least twice already.

Alright. Generally speaking, is there any new technology that you are looking forward to?

I'm looking forward to trying out btrfs, getting a phone with Android, USB 3.0, and autonomous killer robots.

Nice... Loui, thank you for your time, as well as your continued work with Arch. Do you have anything else you'd like to say to our loyal readers?

Be prepared... Oh, and get hacking!

Community Highlights

  • The community repository has finally been moved to SVN! After a hectic day of rebuilds, we completed the boost and libjpeg rebuilds and froze community long enough to transition to the new server and convert everything to subversion. Although this involves a bit of a learning curve for some, it should be beneficial in the long run. (Read more)
  • Arch user dcurtis has begun work on a new, updated panel written in Python. But why another panel? dcurtis found the existing options to be generally outdated and uncustomizable, so he took ideas from various sources (including the Awesome taskbar, dzen, and PyPanel) and began work on his own! (Read more)
  • Once again, Arch user Xyne has outdone himself. OBFileBrowser is a perfect example of what happens when a good programmer gets bored, but it's still cool! Any OpenBox users looking for a pipemenu file browser should definitely check this one out! (Read more)
  • For those of you who missed it the first time around, Pyther has given his Arch-Home script an overhaul and found it a home. Arch-Home is a simple webpy script that generates an ideal startpage for Arch Linux users. If you use Arch (and a graphic browser), you need to check this out! (Read more)
  • For those of you who have worked with PDFs from the command line, PDFtk was probably an important part of your toolkit. Unfortunately, PDFtk has gone the way of the dodo. However! Archer Heller_Barde has stepped up to the plate and written Stapler, a python utility for manipulating PDF documents based on pyPDF. (Read more)
  • Any OpenBox users in the house? What started as an off-hand remark by MrGreen has turned into a full-fledged obsession for Archer Ghost1227. After rising to the unintentional challenge, Ghost1227 took over the thread and started a companion website for custom OpenBox desktops. If you don't think OpenBox can look good, think again! (Read more)

Revision Control System

Contributed by: David Crouse

RCS, or the GNU Revision Control System, is a system used to keep track of files that can be edited by many people or that may need to be reverted to an earlier state at some point in time. For the purposes of this article, I will concentrate on the latter simply because I think it will actually pertain to the larger majority of our readers.

If you have multiple people working on a coding project, you probably already know what a revision control system is. However, for those of you who don't already know, read on! It's much easier than it sounds. I really love using Arch Linux as a server distro. While many think that it is not up to the task, I think they are sadly mistaken. I believe it is a great server distro that is extremely flexible and easy to maintain.

But I digress, that is not what I intended to talk to you about today. My point was that if you run a server, you make changes to configuration files quite often and having a revision control system can come in quite handy. However, regardless of your reason for using a revision control system, RCS should prove to be worth the time it will take you to do a bit of research. Its short learning curve and usefulness should be enough to pique the interest of even the most reluctant of users. I know it's not always fun, but the old adage "Backup, backup, backup" has been ringing in my ears and RCS proves to be just the tool for many of those simple backup jobs that might otherwise not get done.

Using a revision control system does not have to be hard. It should be easy enough to become second nature and allow you to fluidly incorporate it into your day to day work. So, let's get started, shall we?

First and formost, install RCS.

$ pacman -S rcs

To ensure correct usage, we should verify two things.

  • We have a log of all changes we have made to the file.
  • We can revert back to previous versions of the file with ease.

There are two primary ways to use RCS.

  • Use "co" and "ci" on files in any directory. This will cause files to be created that match <file> but have a ",v" at the end.
  • Create a subdirectory called RCS in every directory you want to work in, and RCS will automatically store files there, and keep your work area clean.

You could get creative and create symlinks to a single master directory, but that is beyond the scope of this article. Besides, having a RCS subdirectory in your working directory lets you know quickly that you should use RCS to edit those particular files. See? It's not so hard. Moving on...

There are two commands that users will find themselves using regularly. These two commands are 'ci' and 'co' (check in and check out, respectively). Pretty darn complicated so far isn't it? Ok, let's see how we start using RCS with a new file.

Let's say that we have a file called "" that we want revision control on. The very first thing we need to do is check the file in to RCS. This is done through the following command:

$ ci -u

This will initialize the RCS version of the file. It will also ask you for a DESCRIPTION of the file. This is not a change log entry, it is for entering a description of the file, and can be multiline. Woot! You have now checked in your first file to RCS! Ok... so how do I check it back out and make some changes? It's just as easy! To check out, just issue the following command:

$ co -l

So, we now have checked out. We can open it with our favorite editor and make any changes we want. Then we save the file. Now this is the tricky part. The part after you have saved the file, when you must check the file back into RCS. This is where people drop the ball and forget to recheck in the file. But it's so simple! We've already used the command once! Once again, just issue the following command:

$ ci -u

This immediately prompts you for a change log entry. Again, this can span multiple lines if you need it to, just end the log entry with a period on a single line. For those of you that are like me and will most likely forget to check things back in, I wrote a quick script, amazingly enough called RCSedit. It's very basic, but it does the job very nicely. It will use whatever editor you tell it to, and it checks out the file using your editor, then initiates the check in procedure when you have completed editing. Nice, huh?

if [ ! "${EDITOR}" ]; then
/usr/bin/co -l $1
${EDITOR} $1
/usr/bin/ci -u $1

So now we can initialize RCS by creating an RCS directory, we can initialize the file by running the check in command, we can checkout the file and edit it, and finally check it back in. I sort of feel like hitting my red Staples button that says "That was easy". So, what else do we need to do? Well, the following is a rundown of commands that you might find useful. I highly suggest reading the man pages for them and becoming familiar with all the options they provide. This is a very basic set of commands that will probably help you accomplish 99% of what you might want to do with RCS.

ci -u <filename>	Initialize a file
co -l <filename>	Check out & lock a file
ci -u <filename>	Check the file back in
rlog <filename>		Shows the long log of changes made to a file
rcdiff <filename>	Compare revisions
rcs -u <filename>	Override locked file.

So now we can do all sorts of stuff with RCS, but wait! How do you revert a file to a previous version? It's quite simple as well. We don't even need a new command. Let's say we have made several revisions to our script, but we decided the last changes just sucked. We now need to go back one revision to our previous working copy. Not a problem! First, you would use the rlog command to list all of the revisions and revision numbers. Let's say the last revision was 1.2 and you want to revert to 1.1. Issue the following commands:

$ rcs -u
$ co -l -r1.1
$ ci -u

It's that simple! It may take some getting used to, but when you get the hang of it you'll wonder why you didn't start sooner!

Tips and Tricks

Contributed by: Ivy Foster & Loui Chang

Piping Without the Plumbing

Have you ever wished you could easily feed a shell command another command's output without dealing with plumbing? Well wish no more! It is possible, simple even, with a little bash. Anyone with a little bash experience will recognize that running `$(someprogram)` will return the output of the program of your choice. For example, here's a oneliner that will get rid of some pesky file suffix:

$ for i in *.o; do mv $i $(basename $i .o); done

Of course, you can still do some plumbing if you want. Say you wanted to show off one of your cool screenshots, but couldn't decide which. Let fate (or at least a pseudorandom sorting algorithm) decide.

$ mutt -s "Screenshot" -a "$(ls sshot/* | sort -R | head -1)" --

On Mailcap

Although a bit obscure, $HOME/.mailcap can save you a bit of hastle. Not every application will source it, but mailreaders and web browsers will often take a peek and see what's there. The file itself is plain text. Comments begin with a #, and each uncommented line is an instruction for how to open a specific type of file such as "text/plain" or "application/pdf". By using this, you don't have to set your preferred applications in every application you use. Type them in once and let the computer do the rest of the work! The following is an example mailcap file.

# Sample mailcap file
# Launch images with display
# Launch videos with vlc
# etc
image/gif; display %s
image/jpeg; display %s
image/tiff; display %s
image/x-portable-bitmap; display %s
image/x-xpixmap; display %s
audio/*; sfplay %s
video/mpeg; vlc %s
video/*; vlc %s
application/postscript; ghostview %s
application/x-dvi; xdvi %s
application/pdf; xpdf %s
application/acrobat; xpdf %s

Fast Line Editing

Do you know about readline? Readline is an incredibly handy library that enables you to manipulate your command line in useful ways. And these commands work in many programs other than the shell! You can cut, paste, and move through text on the command line just as if you were using a powerful text editor.

Try opening a shell and type a few words in without hitting [enter]. Now hit Ctrl-u. The text is gone! That's called killing text. Hit Ctrl-y. It's back! That's yanking text.

There are many more ways to manipulate text on the command line. The following list is just a sample of what is available. See `man readline` for even more info!

Alt-b		Beginning of current word
Alt-f 		End of current word
Ctrl-a 		Beginning of line
Ctrl-e 		End of line
Ctrl-w		Delete to beginning of word
Alt-d 		Delete to end of word
Ctrl-u 		Delete to beginning of line
Ctrl-k 		Delete to end of line

The Fun Section

  • In true Arch form, Acecero has asked for everyone's favorite taco. If you haven't told us your favorite, do it now! (Read more)
  • For our younger users who don't remember the 60s, watch it and learn! For everyone else, watch it and mourn your age! (Read more)
  • Have you ever wondered what time it was in kiloseconds? Well wonder no more! Archer haxit has started the Kilosecond Project (KSP) to answer just that question. See what the fuss is all about! (Read more)
<Animeking> can'tfigureouthowto trywebcamwih kopete
<Ghost1227> Animeking: apparantlycan't figureouthow tousethe spacebareitherhuh?
<rson> bruenig: i've decided to stick with your colors
<rson> i think my eyes will get used to it
<rson> i need a better vim scheme though
<bruenig> my free colors that I have given to you out of good will
<Ghost1227> lies!
<Ghost1227> nothing in life is free!
<Ghost1227> except linux
<rson> bruenig: i'm liscensing them under a nonfree liscense and selling them to anyone who
wants them. i am also suing you for using them without my permission.
<Ghost1227> yay!
<Ghost1227> capitalism win
<rson> i told you i'd be at the top one day
<rson> it starts now
* Ghost1227 prepares to file an antitrust lawsuit against rson(TM)
<rson> :)
<bruenig> nah
<Ghost1227> rson: do we have to pay you everytime we invoke your name?
<Ghost1227> s/rson/rson(TM)
<rson> yes. even when it's embedded in other common words that are unrelated
<rson> like person
<improvement> michael jackson died. hes dead
<jelly12gen> !next
<phrik> Another satisfied customer! NEXT!
<jelly12gen> *ouch*.

Software Review: Video Editors

avidemux (Visit Homepage)

Avidemux is an open-source, cross-platform multipurpose video editing and processing program. Designed for simple cutting, filtering and encoding tasks, it supports many file types, including AVI, DVD compatible MPEG, MP4 and ASF, using a variety of codecs. Featuring task automation and powerful scripting capabilities, avidemux is one of the most popular video editors available for Linux, and with both Qt and GTK interfaces, it's easy to see why!

To install avidemux, use the `avidemux` package in [extra].

Cinelerra-CV (Visit Homepage)

Billed as the most advanced non-linear video editor and compositor for Linux, Cinelerra-CV (or Cinelerra Community Version) is a community project to extend on the work of Heroine Virtual Ltd.'s original Cinelerra. With support for OpenGL shaders, most common codecs, realtime effects, and floating point compositing, among other things, it's easy to see why Cinelerra has become known for it's power and capabilities.

To install Cinelerra-CV, use the `cinelerra-cv` package in [community].

Kino (Visit Homepage)

With excellent integration with IEEE-1394 for capturing videos, VTR control and recording back to the camera, multiple video clip support, and an extensive array of supported formats including DV AVI, MP3, Ogg Vorbis, MPEG, and RAW DV, Kino is another excellent option for Linux video editing. Built for the GTK+ toolkit, Kino also features an extensible project metadata system and multilingual support. If you're looking for a lightweight, but still full-featured video editor, this might be a good place to start!

To install Kino, use the `kino` package in [extra].

LiVES (Visit Homepage)

LiVES (or LiVES is a Video Editing System) is an easy to use, but incredibly powerful, video editor that mixes realtime video performance and non-linear editing into one quality application. Capable of editing almost any video format, stream input and output, perform realtime blending of clips, and utilize dozens of effects, LiVES is good enough for a professional VJ, while still being simple enough for a beginner.

To install LiVES, use the `lives` package in the Arch User Repository.


And so closes yet another Arch Linux newsletter. We sincerely hope you enjoyed the newsletter this month as we enjoyed creating it for your reading pleasure. Please, contact us with your opinions and/or suggestions for improvement. Also, we love user contributions so feel free to submit your article for consideration.