App. freezing in i3

If you encounter some applications freezing or taking a long time to start while using i3, I think in particular about Skype, Discord, CMST (Connman QT GUI), Hexchat, … then may be here is a solution for you. Those app do not appreciate when the desktop does not have any notification daemon running. So you might just install and start one when i3 starts.

So I’ve just installed lxqt-notificationd. Then you can start it from i3’s config file:

exec --no-startup-id lxqt-notificationd

Now all my applications work like a charm, and I’ve no reason whatsoever to temporarily switch to XFCE4.

Quake-like terminal for i3

Tiling window managers are cool but there are times when all you want is quick access to a terminal that you can toggle when needs be, so you can either do simple calculation, start jobs, open files or satisfy your weird Unix fetish through convoluted piping to dubious file descriptors, all that from the comfort of your own cozy shell interpreter.

Well if that applies to you i3 user then search no more because I may have got just what you need!

I’ve written a drop-down quake-like terminal for i3, i3-QuakeTerm, inspired by a similar drop-down terminal I did for AwesomeWM and i3-quickterm another similar terminal for i3. The later did not work for me because of a bug in i3ipc-python that was just fixed recently. So I implemented my own version as a workaround.

There are some notable differences however. First everything can be done from the command line, so there is no need for any configuration file. But it is still possible to register multiple drop-down terminal types by providing a different name to each one of them.

It also uses WM_CLASS instance attribute instead of i3’s mark to identify the terminal. As a result you can access the terminal window and control it early from i3’s configuration. Finally the terminal is created with a fork instead of in-place starting. That means that you can use any kind of graphical command as the terminal, even if it doesn’t start any shell or command itself, as long as you can use or modify its name as an unique identifier.

More info on the github page.

Bye bye Awesome!

My desktop is not awesome anymore, but it is full of high trees.

In a preceding post I complained about Awesome’s inconstant API and concluded that I would probably switch in the near future which I finally did last week. That’s right, I finally ditched AwesomeWM for i3, and so far not disappointed at all.

In overall the configuration is a lot easier with i3 than it is on Awesome. Sure you cannot play as much as you used to with lua, but the syntax of the configuration file is rich enough that you don’t need much scripting anyway. It’s very Unixy, simple in its core and delegates itself nicely to external tools (i3bar, i3status) and scripts. There is a very nice IPC mechanism (that goes through a Unix socket) that you can use from command line or librairies in C, Python, OCaml and many others.

Now there is no fancy widget as you do have in Awesome, everything is text + UTF8 with some coloring. Perhaps there is an i3bar alternative that can do more than this but I don’t know of any yet. Workspaces are also different, they are shared between outputs and not visible in i3bar until focused or contain a window, but in time you get used to it. Although there is nothing that I really miss from Awesome, also the simple API, simple configuration, nice documentation, clean IPC via Unix socket (which is really nice, you can communicate with i3 from virtually anywhere, even assembly), all of those were really worth the change.