June 19th, 2010

Command line file management 

I have been a fan of the command line for a while now, about from the time I moved from Ubuntu to Arch. The most difficult thing to get used to was command line file management but I think I can do anything now comfotably from the command line and I think I am a lot faster doing it thanks to a couple of wonderful applications.

First of all there is coreutils, this is the thing every one knows and is used to. It has the regular things like cp, rm, mv and ls. It is however the basic of everything. Combined with shell globs this is a very powerful thing, and it can do any I wont go into the basics of those commands but I will share some examples that I found very useful and weren’t as obvious as others.

When you have a list of pictures, named pic001.png through pic732.png and you just want to remove pic051 through pic521, you can use shell ranges. They are defined like pic{<startno.>..<endno.>}, so in our example it will be like:

rm pic{051..521}.png

Also ls isn’t as useful as it could be by default. I think every distro has some basic options set for ls like --color=auto but there is a lot more. For example, I also like to have my directories and files seperate, and there is an option for that called --group-directories-first. I also like to see the size of the file as well as the permissions on the file, and ls -l is perfect for that, but the filesizes is in bytes by default, which isn’t really human readable. I mean, I don’t care my file is 45234786 bytes, I just want to know it’s 4MB. ls -lh is for that. I think by now we have a very useful ls, you can try it out by executing ls -lh --color=auto --group-directories-first in your favourite shell. Or, a lot more useful, you can make an alias.

Then we have cd which just does what it should, which is change to the directory specified. But as we all know, we mostly hang around a couple of directories, and we just want to switch to those easily and fast. Some archer named Joel Thelion made an application called autojump which he describes as The cd command that learns and that is exactly what it does. It keeps track of in what directory you are and how much you do in there and it calculates a weight of that. That weight is later used to determine where to move. I can explain it but it’s better to just try it, it is awesome!

I think that makes you able to do all the things you do in a normal file manager, but just with your fingers on your lovely clicky keyboard. We all know that you dislike the mouse, like you should according to a lot of linux elitists, although I have to be honest and I like it a lot for laid back browsing sessions. But to the point, and that is shell based file management. And the shell is so powerful because it’s scriptable, you can chain things together very easily. And the most amazing application for that is find.

For example, you have a directory filled with rars which you all want to unrar. Instead of unrarring them each on their own you can use find. We are trying to find the files ending in .rar in the directory “Archives”, so just to test what we find we can execute find Archives -name "*.rar" which should print out the path to those files. But we want to do something with those rars, not just know where they are, and find has a flag for that called -exec . -exec needs two things, the binary to execute, in our example it’s unrar e, and {} \;. The {} is replaced by the path it finds and \; mimics a return key being pressed.

I really hope I learned you something and if you have ANY comments/criticism please reply to this post!

October 23rd, 2009

Uzbl and Xmonad 

I already showed you that I switched from Firefox to Uzbl. Uzbl has no tabs out of the box, so I had to come up with something else. Somebody made a tabbing plug-in for Uzbl, but somebody else pointed me to the tabbing layout for XMonad. But I don’t want my browser full-screen. I have 22″ monitors with a resolution of 1680 * 1050 so full screen is a little much. Fortunately XMonad has something for that as well. namely the ComboP layout.

ComboP is a way to combine multiple layouts in one workspace. I now have a portion of the workspace tabbed so that is where I can have multiple uzbl windows. On the other portion I have two terminals. One for Weechat and one for Mutt. These are situated in a tall layout that doesn’t resize so they will always have 50% of the available vertical space.

This would be useless to have on every workspace, I just want it on the one I have reserved for my browsing. So I went to look for another module and found it. It’s called PerWorkspace. It gives you the ability to set a layout for just one workspace and to have just one layout on a workspace, and multiple on all the others. It does make your layoutHook look like a mess.

Here is my layoutHook line, don’t forget the imports!:

,layoutHook = avoidStruts $ onWorkspace "www" (named "Tabbed" (windowNavigation (combineTwo (TwoPane 0.03 0.5) (tabbed shrinkText tabConfig) (Mirror (tiled))))) $ tiled ||| named "HintedTall" (hintedTile XMonad.Layout.HintedTile.Tall) ||| noBorders Full

I think this is a great example of what Xmonad can do. You can mold and craft it into anything you want and it will do it for you. I just love my setup at the moment. If only there was a good cli-feed reader that could synchronize with Google Reader

October 20th, 2009

New host, again 

I got a new hosting provider again. I went with a VPS, because I wanted some more freedom with what I can do on the server. I did take a control panel with it so can easily make accounts for people, and they can set them up using a web interface, I don’t see my mom logging into my server using ssh and moving some stuff around. This can be a little slow but there is more RAM on the way!

August 26th, 2009

August 2009 Screenshot 

A lot has happened in the past year, but not a lot different in the screenshot. It’s uzbl now, the rest is pretty much the same. I like it.

xmonad, uzbl, urxvt, dzen2, weechat, Vincent Kriek

Config Files

August 20th, 2009

Uzbl 

For those who remember, I’ve switched from Opera to Firefox a while ago. I like the way Firefox gives you the ability to extend the browser to your liking. But Firefox didn’t give me the right base. I want a simple browser that in itself does virtually nothing but browse and can be extended through plugins. And then Uzbl came around the corner.

Uzbl is a project that aims to be a browser that follows the UNIX Philosophy, and I like it. On top of that, it’s real easy to extend the browser using scripts. Uzbl is built on top of Webkit, so it is standards compliant and it passes the acid3 test with flying colors. Off course, it is still alpha/beta so it’s not ultra stable but stable enough for me. And have I mentioned it is way lighter then Firefox? It starts in a snap and it uses a lot less memory.

My config can be found here and my scripts can be found here. Let me know if you have suggestions for my scripts!

August 8th, 2009

I Messed Up 

Now a years worth of blog posts are gone :’(

August 9th, 2008

August 2008 screenshot 

You see:

  • Arch Linux
  • XMonad
  • Dzen
  • conky-cli
  • opera
  • urxvt
  • irssi

I made some changes I planned on for a while. The biggest one is the switch form xmobar to dzen+conky-cli. Much more versatile. Also i cleaned up my xmonad.hs. It’s just how I wanted.
All my configs are found here.

August 6th, 2008

ZSH, I love it 

I was bored a couple of days ago. I installed xmonad and everything worked like it schould. So I started browsing the ArchLinux wiki searching for something new to install. I heard about zsh-completion being wonderfull but I never understould what zsh was. Zsh is a shell, an alternative to bash. I never had problems with bash but I never founf it really good. I liked it’s completion but I heard zsh’s completion was better.

Zsh is in ArchLinux’ extra repository. You can change from shell using the usermod command. You just do

usermod -s /bin/zsh USERNAME

You have to login and logout to activate the shell. Basic configuration is done in .zshrc. It works like .bashrc with some other commands. My .zshrc is bits and pieces from other people and form my .bashrc. You can find my .zshrc on my git branch. Gentoo’s documentation on zsh is rather good.

Since I now have succesfully installed and configured zsh I am looking for a new project, anyone tips? And also, i would love to see your .zshrc

August 4th, 2008

New hosting provider 

From today I am on a different server. About 1,5 years ago I registered www.vincentkriek.nl for the first time. It was a sale wich gave me one year hosting and the domain for 1 euro. Then I wanted more so I started looking for a nice reseller hosting plan. And I found it at www.sorcer.nl.

Now i got a decent control panel, DirectAdmin instead of a home made thing that my previous ISP had, my email hasn’t got a hour delay and I can register different domains on one hosting package. So far I am extremely happy about sorcer. They respond very fast have a nice site, and are not too expensive. They are third in the top 25 of dutch hosting providers.

August 3rd, 2008

And the winner is… 

Last week, I wrote that i was still looking for a window manager that I really like. I have tried all the mayor tiling ones and I finally settled with Xmonad. Yes, the window manager with the 300Mb haskell compiler dependecies. I’m okay with it now.

The way xmonad handles two (or more) screens is the way all window managers should do it. You have one set of workspaces. The screens are portals to these tags. So you can have workspace one on screen one and workspace two on screen two. Then you can have workspace two on screen one and workspace four on screen two. A picture to demonstrate:

Xmonad workspace screen explanation

The configuration file is easy to edit and I like it a lot. Even more so then the config file of awesome. It sounds scary to edit a haskell file but haskell is a nice, easy to understand language. My config file is found here.

So the reason I sticked with it were the multiple screen support, config file and the simplicity. I know a 300mb dependecy for a ~1 mb window manager is not really KISS but the way XMonad works is really KISS. That is because only manages your windows. You can choose youre own panel(if any). I like it!

Home