Slackware and i3

The release of Slackware 14.1 has brought a number of important changes including a switch from MySQL to MariaDB or the introduction of UEFI support. For i3 users, however, the most relevant change was the update of cairo. At the beginning of the year the changelog of Slackware’s -current branch read:

Lots of X updates in this batch! We were finally able to upgrade to the
latest cairo (including the long-requested XCB backend), as the text
corruption bug that was preventing that was fixed in the upstream X server.

This, as I have mentioned many times, means that we can now install i3 as the upstream wanted it, in its vanilla state. Today the 14.1 branch of Slackbuilds.org has officially been opened to the public including cleaned-up scripts for i3 version 4.6. Last month I contacted Michael, the author of i3, who suggested a few small changes, which have been implemented.

If you’d like to build i3 from its master git branch, have a look at You can still use my scripts for the master branch of i3, feel free to use the following script:

http://slackword.net/files/builds/i3/i3-master/Slackware-current/

Happy tiling!!!

i3wm master branch script cleanup

Seeing problems as opportunities is an extremely helpful approach that has yet again proven to work well for me. Recently someone has reported problems building i3wm using my Slackbuild script that uses the i3 master git branch. Not only did it prompt me to revisit the script but also encouraged to get in touch with Michael, i3 developer, who, as usual, was extremely helpful providing me with a number of corrections and helpful comments. Additionally, I liked how another slacker organised doc files and added those modifications as well.

Below you can get a SlackBuild script for the master branch of i3wm for Slackware-current (14.1). It’s not going to build on Slackware 14.0 or older.

http://slackword.net/files/builds/i3/i3-master/

Enjoy.

i3 on SlackBuilds.org

Recently I have received a number of emails pointing out that i3 version on Slackbuilds.org is rather out of date. I would like to assure you that I have not abandoned maintaining the i3 SlackBuild. I have refrained from bumping up the version on the Slackbuilds site due to the change introduced in i3 v4.5 (and described in my previous posts) that would necessitate building i3 with PANGO disabled. As this is not in the true Slackware spirit of shipping vanilla software, I thought I’d keep it that way. The good news is that the latest (4.6) version of i3 builds fine on the -current branch of Slackware. That will make it possible to update the i3 version on the SlackBuilds website once Slackware 14.1 has been released, which shouldn’t be before long. In the meantime you can build the latest i3 version from the master branch script (-current: without modifications, 14.0: with PANGO disabled).

A quick bugfix release of i3 – version 4.5.1

This release fixes, among others, a high memory consumption problem in i3 4.5. The issue, as explained by Michael, is a result of a human mistake in the release process. For full details of a bug report, see this. The new release fixes the problem, as well as, introduces a few other changes.

Feel free to use my SlackBuild script to build the latest stable release of i3 including all the bugfixes. The builds for Slackware 14 and the -current branch are available here:

http://slackword.net/files/builds/i3/i3-master/

Enjoy

i3wm 4.5 on Slackware

Having come back from my holiday I found a pleasant surprise in the form of a new i3 release which contains a lot of bug fixes and cleanups. For a list of all the changes in the new version, please refer to the release notes.

As usual, you can grab a SlackBuild for i3wm 4.5 here. As explained in my previous posts, this SlackBuild is aimed at Slackware-current and will NOT work for Slackware 14 or older.

Furthermore, regardless of the Slackware version you use, I’d like to encourage you to use SlackBuilds (Slackware14, Slackware-current) pulling the master branch of the i3 window manager. See the explanation in my previous posts.

Enjoy!

i3 4.4 on Slackware (available for -current)

Today’s batch of updates in the -current branch of Slackware has brought some interesting changes. If you have been following this blog, you may have guessed that what was particularly interesting to me was the inclusion of cairo-1.12.14 which ships with the XCB backend enabled by default:

Fri Feb 22 01:09:25 UTC 2013
Lots of X updates in this batch! We were finally able to upgrade to the
latest cairo (including the long-requested XCB backend), as the text
corruption bug that was preventing that was fixed in the upstream X server.

This update makes it possible to build the latest version (ie. 4.4) of the i3 window manager without disabling Pango. For more details, see this post. I have updated my SlackBuilds for i3-4.4 (or to be specific the master branch, which contains the latest stable release + bug fixes). The SlackBuilds are available for downloads from here:

http://slackword.net/files/builds/i3/i3-master/

or from github:

https://github.com/mherda/slackbuilds/tree/master/i3/i3-master

Enjoy and let me know of any problems you might have. On a separate note, thank you Patrick for so many goodies in this batch of updates.

i3 4.4 on Slackware

i3wmEverybody knows that tiling window managers are the cure to all the world’s problems.

…and with the recent release of i3 v. 4.4, the world should sigh with relief. Having thoroughly inspected i3 source code, I can assure everyone that the world is NOT going to end tomorrow or any time soon.

Now that I have hopefully put your mind at rest, we can focus on the new i3 release. As I blogged a few months ago, the 4.3 introduced the pango support for rendering text which resulted in the package not compiling on the stock Slackware installation (see details). The situation has not changed with the release 4.4. At the moment of writing this, Slackbuilds.org offers i3 4.2 which is the last version that works flawlessly without any hacks. If you would, however, like to run i3 4.3+ you can either recompile the stock Slackware cairo package with enabled xcb support or disable pango support in i3. Again, I have chosen the latter option as being less intrusive on a Slackware system.

Below are my updated SlackBuilds scripts for the most recent stable version of i3. The Slackbuild is not written for any particular version of i3, such as 4.3 or 4.4. It automatically pulls the source from the ‘master’ branch of i3 git repository, which is the most recent “stable” release + any bug fixes.

i3 master branch SlackBuilds

One of the new features included in this release is i3-dmenu-desktop, a dmenu wrapper for .desktop files. The feature was discussed in one of the threads of i3 mailing list. To see the full list of changes and bug fixes, please visit 4.4 release notes.

Update: See the update to this article here.
Happy tiling!!!

dwb on Slackware

Being a big fan of lightweight and keyboard driven applications, I have always felt some kind of distrust towards bloated software that relies heavily on mouse clicks. For most tasks, using well configured keyboard shortcuts can be a much more efficient means of interacting with software. It is particularly true of command line software that I use on a daily basis. Since most of my activities involve keyboard driven interaction, it has always felt somewhat inefficient to keep switching between the ‘keyboard’ and ‘mouse’ modes, which is required when using a traditional web browser. It looks like dwb partially solves this nuisance. Edit: I say partially as it does not seem as lightweight as one would wish. As pointed out in the comments, its memory consumption is rather huge for a supposedly lightweight browser. On my system it looks similar to that of Firefox. Still, it is at least worth a try.

What is dwb?

dwb is a highly configurable WebKit web browser. It makes a heavy use of keybindings and employs vi-like modes (normal/insert/hint/command modes). Not only does it provide you with a great number of commands and settings, but also it lets you create custom commands as well as userscripts (via an available javascript API).

Install dwb on Slackware 14

Full Slackware 14 install provides you with most of the required dependencies with the exception of webkitgtk. Once you’ve installed webkitgtk, you can use a SlackBuild script that I have writen to install dwb on Slackware 14. The script (as well as a precompiled package for Slackware64) is available here:

dwb Slackbuild script and package downloads

Please make yourself familiar with dwb documentation before you start using it.

Happy browsing.

i3 4.3 on Slackware

I welcomed yesterday’s release of i3 4.3 with excitement. Having been busy elsewhere, I did not follow the ‘next’ branch of i3 git repository and, therefore, was not aware of what’s cooking. The moment I started building a new shiny package, my excitement somewhat subsided.

Pango support

Version 4.3 introduces pango support for rendering text, which would be a great news if not for the fact that an XCB backend support was still an experimental feature (and, therefore, disabled by default) in cairo 1.10.2, the version that Slackware (14rc5) ships with. In consequence, for i3 >= 4.3 to build on Slackware, one would have to upgrade the stock cairo package. The XCB backend has apparently reached a stable status and is enabled by default in cairo version 1.12.2+. As always, Pat is the person to decide whether it is mature enough for Slackware. Hopefully, it is and it’ll enter the -current branch of Slackware in the next development cycle. (Update: See Pat’s comments on the issue).

An alternative solution (which I have chosen) was to disable pango support in i3 4.3. As this feature is an integral part of i3wm 4.3, disabling it is not recommended by Michael Stapelberg, i3 author and main developer (4.3 release notes):

Another very important change is that we now support pango for rendering text. The default is still to use misc-fixed (X core fonts), but you can use a font specification starting with “xft:” now, such as “xft:DejaVu Sans Mono 10″ and i3 will use pango. The sole motivation for this is NOT to have fancier window decorations, but to support fonts which have more glyphs (think Japanese for example) and to support right-to-left rendering (open http://www.ftpal.net/ for an example). Supporting users from all over the planet is important, and as such I would strongly advise distribution packagers to leave pango support enabled. In case you are working on a very low-spec embedded device, it is easy enough to disable pango support, see common.mk.

Personally I do not need it so am going to run 4.3 (pango disabled) until cairo gets upgraded in Slackware (I’m not in a hurry:)). You can do the same but don’t say you haven’t been warned!!!

Here is my SlackBuild script for i3 v 4.3 (pango disabled). Please note that I pointed it to the master branch of i3′s git repository which basically is the latest stable release + bug fixes, which at the moment of writing is 4.3. Should a new version be released, eg. 4.4, the script will automatically pull it from the git repository. Unlike with standard SlackBuilds there’s no need to manually download the source code.

Feel free to use it but bear in mind that, at the moment of writing it, a recommended version of i3 to be run on Slackware is i3 4.2 which is available from SlackBuilds.org so if you don’t like living on the edge, please stop reading now and stay with 4.2!

Now for the fun part.

What’s new?

Apart from the above mentioned pango support (which we have disabled) there are lots of bug fixes and some new features available with this release. I particularly like the ability to specify the layout for the parent split container:

 for_window [class="XTerm"] layout tabbed

When I start i3 both Firefox and Thunderbird start on Window 2. Up until now it was not possible (or easy) to make them automatically open in a tabbed mode. This ensures that Window 2 (and only 2) starts in a tabbed mode.

assign [class="Firefox"] 2
assign [class="Thunderbird"] 2
for_window [class="Firefox"] layout tabbed
exec firefox
exec thunderbird

Layout toggle

In 4.3 you can still use the old “split h” and “split v” commands. On top of that, the old “layout default” command has been replaced with “layout toggle split”, which changes the orientation (horizontal/vertical) of windows. If you have an old config file, find “layout default” and change it to “layout toggle split”. On my system it’s bound to “Mod1+e”. Open a few terminal windows and play with this command changing the focused window from time to time.

ThinkPad E530 with Slackware

Recently I have purchased Lenovo ThinkPad E530. Unfortunately, I can see a big difference between it and my previous Lenovo laptop, ThinkPad T410. Straight away you notice that they belong to different categories. But then again, as opposed to a budget class E530, the T-series is a business class model (and is therefore appropriately priced) so the comparison would not be fair.

Still, I like it; especially the fact that everything seems to work out of the box on Slackware 14 (still -current at the moment of writing). It appears that the purchase was timed quite well. E530 features the following wifi chip:

03:00:0 Network controller: Intel Corporation Centrino Wireless-N 2230 (rev c4)

The iwlwifi module supporting this chip has been added with kernel 3.2.0 so it looks like the wifi card wouldn’t work out of the box on Slackware 13.37 and older.