A year ago I bought a new monitor, Iiyama Prolite XU22HS. This is a 22″ 1080p (1920 x 1080) monitor. I’d been pretty happy with it but a few weeks ago I noticed that the power LED wasn’t working. As it was still under warranty I reported this to Amazon and although I’d had the monitor for a year they accepted it for a refund, which I appreciate. Whatever one’s feelings about Amazon, this willingness to replace things without quibbling is a big reason for dealing with them.
I needed to choose a replacement and this wasn’t easy. Most of the reviews I found on Amazon were concerned with gaming, which I don’t do. I mostly need the computer for text (writing articles and books), with some viewing of TV on BBC iPlayer and occasional YouTube. The most helpful advice site I found was How to Pick a Good Monitor for Software Development by Nick Janetakis, which I recommend to anyone whose needs are similar to mine..
By now I’d realised that there are few 22″ monitors around now and 24″ or 27″ is the norm. I’m embarrassed to admit that I’d managed to confuse myself to the point where I was making the same mistake as Janetakis’s mum, thinking a bigger monitor would be useful to me as a writer by giving me more text on the screen.
Physical size doesn’t constitute how much you can fit on a monitor. For example my mom thinks that a 25” 1080p monitor is going to let her fit more things on her screen than a 22” 1080p monitor. Don’t be my mom!
The only thing that matters for “fitting more stuff on the screen” is the resolution of the monitor.
This became obvious to me as soon as I read it. I would have been happy to buy another 22″ monitor, but as few of these are now available.I eventually settled on the 24″ HP 24W Full HD monitor, which a number of reviewers had found good for office work and text generally. I needed to adjust my on-screen text sizes to suit the new ppi of the larger monitor but other than that it’s fine for text and iPlayer is better than it was with the Iiyama.
Actually, the default spectrwm.conf works pretty well, apart perhaps from changing the Mod key. It’s easy to try out changes on the fly; just edit the file with the help of the man page and test it with Mod+q. If you make a mistake Spectrwm will tell you by printing an error message in the bar.
Just one caution: some mistakes may prevent spectrwm from starting, so be careful about using Mod+Shift+q. If that happens you will have to edit .spectrwm.conf without using X. This doesn’t apply to Mod+q.
# PLEASE READ THE MAN PAGE BEFORE EDITING THIS FILE # http://omensource.conformal.com/cgi-bin/man-cgi?spectrwm
# NOTE: all rgb color values in this file are in hex! see XQueryColor for examples
# Mod key, (Windows key is Mod4) (Apple key on OSX is Mod2)
modkey = Mod4
workspace_limit = 5 # I don’t need more than this
bind[flip_layout] = Mod+r # default binding doesn’t work on my keyboard.
# The next three entries replace the default Mod+Space. Why? By default, this command cycles between the different layouts (vertical, horizontal, full screen). I seldom need to do this whereas I very frequently need to alternate the focus between main and stack. So I set Mod+Space to give focus_main and provide commands to give vertical and horizontal configurations in case these are needed. (Mod+e gives full screen.)
bind[focus_main] = Mod+space # Replace the default
bind[layout_vertical] = Mod+v # Provide vertical layout
bind[layout_horizontal] = Mod+z # Provide horizontal layout
# Window Decoration
border_width = 2
color_focus = red
# color_unfocus = rgb:88/88/88
color_unfocus = blue
tile_gap = 2
# Remove window border when bar is disabled and there is only one window in workspace
disable_border = 1
# This restricts toggling bar to one workspace
bind[bar_toggle_ws] = Mod+b
# The default key bindings for screenshots are easy to hit accidentally so replace these with Mod+F12 etc.
bind = Mod+s
bind = Mod+Shift+s
bind[screenshot_all] = Mod+F12
bind[screenshot_wind] = Mod+Shift+F12
# Swap between workspaces back and forth (very useful)
# Can use alternatives
bind[ws_prior] = Mod+Shift+Up
bind[ws_prior] = Mod+Shift+Down
bind[ws_prior] = Mod+Shift+Left
bind[ws_prior] = Mod+Shift+Right
# This allows you to include pre-defined key bindings for your keyboard layout.
# keyboard_mapping = ~/.spectrwm_us.conf
# Validated default programs:
program[lock] = xterm # I don’t need to lock screen so avoid doing it accidentally
program[term] = xterm
For several months last year I was trying out various tiling window managers and here I offer my assessment of the ones I’ve used most.
Summary for the impatient
My outright favourite is Spectrwm because I find that it offers all the features I want without making things over-complicated. Configuration via the text file is easy and the commands quickly become intuitive and automatic. Dwm is almost as good as Spectrwm but lacks some features that I want. i3 seems to be a popular WM and is better known than Spectrwm, I like it quite a lot but I find Spectrwm more intuitive to use. Xmonad is an attractive WM but is irretrievably let down by requiring Haskell to configure it.
The window managers in more detail
This is currently my favourite. Configuration by a plain text file is simple. I should say that it is the most flexible and intuitive WM that I’ve tried.
Here are some screenshots.
Change master window (Mod + Return)
Enlarge master window (Mod + L)
Change to horizontal split (Mod + Space)
Make a window fullscreen.(Mod + E)
Switch to Workspace 2 from Workspace 1 (Mod +2 or Mod + R. arrow)
Note: the xsane windows are floating (set via Quirk in ~/.spectrwm.conf)
I liked i3 quite a lot and used it for a time. Configuration is simple since it is done in a plain text file. In many ways it is similar to Spectrwm but the way the windows are arranged is slightly different. i3 seems to be better known than Soectrwm with a larger following However, having tried out both of them fairly extensively I find I prefer Spectrwm.
This has a large user base and a helpful mailing list. It has many of the features I want and is quite similar to Spectrwm but is let down by its being configured in Haskell, which makes any configuration beyond the most basic a major undertaking requiring hours of research on the internet. There is also a large disk space overhead required to house the libraries needed for said configuration. For these reasons Xmonad loses out to its competitors, at least for me.
Dwm is the forerunner from which many other tiling WMs forked. There is still a lot going for it: it’s simple and functional and easy to learn. Configuration is via C, but don’t be put off; it’s easier than it looks even if you don’t know C (I don’t). If you are not willing to embark on learning Haskell, dwm would be an attractive alternative. If Spectrwn were not available I’d use Dwm.
The Labour promise to give me free fibre broadband doesn’t fill me with joy. You know what they say about offers that sound too good to be true.
My ISP is Zen Internet. It isn’t the cheapest but its speed and stability are good given that I’m still on ADSL and live rather far from the exchange.
But probably the best thing about Zen is that you can speak to someone who is actually at Zen instead of India. A couple of weeks ago my connection slowed down dramatically in the evenings. I phoned Zen and they reset my connection, which brought things back to normal. They called back twice on different days to check that all was still OK.
Do you think Labour’s nationalised internet will do the same? Do you really like the thought of your broadband being a state monopoly?
Which is the better blog platform, Serendipity (s9y) or WordPress (WP)? I’d been a confirmed s9y advocate for a long time, in fact since 2004, when I switched to it from WP because WP had eaten my database. I was happy with s9y for many years, but in the last year or so I got the impression that it was beginning to show its age. There seemed to be fewer posts on the forums and the promised upgrade was taking its time to appear (though it now has); there had been few if any new plugins or themes.
I decided to start a new blog on WP and see how I got on. This is now what I use for all new posts (although the previous blog is also available as well). I thought it would be worth while to summarise the main differences I’ve found between the two platforms.
As I already mentioned, upgrading is sluggish on s9y. On the other hand upgrades of WP (both the main software and plugins) happen quite frequently, which is reasonably reassuring from the security point of view.
There is a huge number of plugins and themes for WP – far more than for s9y. Actually, I’m all for plainness and simplicity so I don’t need most of these things but it’s still good to have them available.
Adding and editing posts
Here WP definitely has the lead. In s9y either you are viewing the blog in the way that a visitor would or you are logged in as administrator. Admittedly you can see a preview of any post you are writing or editing, but once you save it and return to viewing mode, that’s it. If you belatedly spot a typo in what you’ve just saved you have to login again as administrator. This can be quite annoying.
In WP, in contrast, you can combine both modes quite easily. Once you have logged in you can both see the entries as a visitor would and also edit them via a number of buttons on the top line. These allow you, for example, to add a new post, edit an existing post, or edit a static page (e.g. the frontispiece). All these things, and others, can be done without logging in again. This is a more flexible arrangement and allows considerably faster working.
There’s a vast amount of documentation for WP on the internet so it’s almost always easy and quick to solve problems or get answers to questions. For s9y there is practically nothing apart from the forums on the s9y website. In the past I’ve had good and quick responses here from helpful people, for which I’m grateful, but activity now seems to be declining steeply, which to me suggests a shrinking user base.
Regrettably (because, no doubt absurdly, I have a lingering sense of loyalty to s9y) I have to say that for me there’s really no contest; WP is now the way to go. If it were possible I’d migrate all my content from s9y to WP but it isn’t so I shall have to continue to run two blogs in parallel.
OpenBSD has introduced a new utility in the most recent version (6.6 – now in -current). This is sysupgrade, which makes upgrading the system even more painless than it was previously.
sysupgrade downloads the necessary files to /home/_sysupgrade, verifies them with signify(1), and copies bsd.rd to /bsd.upgrade.
sysupgrade by default then reboots the system. The bootloader will automatically choose /bsd.upgrade, triggering a one-shot upgrade using the files in /home/_sysupgrade.
This is brilliant. I do upgrades to -current about once a week. Previously I had to reboot with a new bsd.rd and connect to a mirror to do the upgrade. Downloading the files took some time (more than 20 min) during which the computer was not available for work. Now I just run sysupgrade and everything happens automatical. I can continue to use the computer while the files are being downloaded, after which the system reboots with the new upgrade. This is a major advance in ease of use – congratulations to OpenBSD!
Incidentally it also works for upgrading -release versions; it knows whether you are using -release or -current.
Are you a Vim user? Do you like to use the hjkl keys to move the cursor in Normal mode, like me? If you do, perhaps you’ve experienced the annoyance of forgetting that you are in Insert mode, only to find something like hhhhh or kkkkk appearing on the screen instead of the expected cursor movement. I have to admit that this still happens to me, even after many years. How can it be avoided?
Vim experts advise that you should stay in Normal mode most of the time; it should be the default. I agree, and I do try to remember to do this. Another idea, which I’ve tried in the past, is to make key mappings such as Alt+h and Alt+l in Insert mode to move the cursor. Of course, you still have to remember which mode you are in unless you make the same mappings for Normal mode. But then you’ve lost the simplicity of the default one-key hjkl, which was the main reason to go down this route in the first place.
The solution I’ve adopted is based on <https://stackoverflow.com/questions/7614546/vim-cursorline-color-change-in-insert-mode>. Here is the code I’m using in .gvimrc with a dark colour scheme (Murphy).
autocmd InsertEnter * highlight CursorLine guifg=white guibg=grey25
autocmd InsertLeave * highlight CursorLine guifg=white guibg=red
This gives a light grey cursor line in Insert mode which stand out on the dark background but not too starkly. (The last character in the bottom line is a zero.)
In Normal mode the cursor line becomes red.
I use the default cursor, which is block in Normal mode and 25% in Insert mode. Both are white; I’ve set the Normal mode cursor not to blink.
I find that this set-up acts as an effective reminder of which mode I’m in.
One of the commonest things I do in Spectrwm is swap two windows (Main to Stack or vice versa). This is done instantly with Mod+Return. But a minor annoyance is that the focus doesn’t follow the swap.
Suppose you have two windows open, A in Main and B in Stack, and the focus is on A. After the swap the focus is still on A but this is now in the Stack. I usually want it to be in Main, which now contains B. I can achieve this with Mod+m, which alternates the focus back and forth between the two windows. This is OK but can become annoying if I do it a lot since it’s easy to miss-type the m.
For a time I solved this by setting the pointer focus to “follow” instead of the default, but this wasn’t ideal; it required me to keep the pointer always in the left side of the screen and occasionally the display got messed up and needed fixing with Mod+q.
The solution I’ve adopted now is to remap Mod+Space (quick and easy to type) to give me focus_main. By default Mod+Space cycles between vertical, horizontal, and full-screen layouts, but I hardly ever need to do this. I’ve mapped Mod+v and Mod+z to give me vertical and horizontal layouts in case I do need to change them; for full-screen I use Mod+e.
I’ve long heen an enthusiast for tiling window managers and have blogged about them previously. I last used i3 a number of years ago (perhaps version 4.11). At that time I said that I liked it but preferred Spectrwm. Now i3 is at version.4.6 and its popularity seems to be expanding, so I thought it was time to give it a fresh look to see whether I still prefer Spectrwm. I find I do although i3 is certainly impressive.
Here I summarise what seem to me to be the main differences between the two WMs. Obviously this is a subjective comparison but I shall give the reasons for my preferences.
Community and support
Here i3 has the clear advantage. It has a large user base and lots of online support (mailing list, IRC etc.), which makes it easy for newcomers to get help.
For Spectrwm this element is pretty much lacking. It has good documentation but there isn’t an online community of the kind that i3 enjoys. But it is still maintained; the most recent version (3.2.0) was released in Sept. 2018, and you can chat with the developers at OFTC channel #spectrwm.
The main way in which the two WMs differ is in how they arrange their tiled windows (both offer floating windows if wanted).
Spectrwm is similar to Dwm and Xmonad. The first window appears in the ‘master’ area on the left of the screen; subsequent windows are created in a stacking area on the right.
This isn’t as rigid as it may sound. You can work in any window you have open, whether it is in the master area or not.
i3 doesn’t have the concept of a master area. It places its windows either side by side (horizontally) or one above the other (vertically). All the windows are of equal status.
Each of these methods has its advantages and disadvantages.
i3 can produce more complex patterns than Spectrwm; you can mix vertical and horizontal windows in the same workspace, as shown above. Spectrwm can’t do this; the windows are either horizontal or vertical but not both in the same workspace.
However, in i3 you have to decide which layout, horizontal or vertical, to use before you create a new window, and as far as I know you can’t alter this later without deleting and recreating the windows concerned. In Spectrwm you can alternate between these layouts on the fly with Mod + Space.
In practice I hardly ever need the complexity that i3 offers because I seldom have more than two or three windows open in any one workspace. On the other hand I prefer the working window to be on the left of the screen; this is easy to achieve in Spectrwm, simply by swapping the stacked and master windows with Mod + Return. Swapping two windows is possible in i3 but more complicated (you have to change the “mode”).
Altering the size of the windows
In Spectrwm you can increase or decrease the size of the master area by pressing Mod + l or Mod + h. I find this extremely useful. In i3 you are encouraged to use the mouse to alter the size of windows, which is quite fiddly. I prefer to use the keyboard whenever possible; there is a way of doing this in i3 but it’s not very straightforward (change the “mode”).
A peculiarity of i3 is that instead of using the vi key bindings (hjkl) for movement it uses jkl; by default. This annoys me . You can of course change it, but then you have to find an alternative for Mod + h which by default is used to set the horizontal window layout. This seems an unnecessary and eccentric complication.
As far as I can see, all the commands that i3 offers are also present in Spectrwm apart from those that are i3-specific . On the other hand, a useful feature of Spectrwm that I don’t think is present in i3 is the option to “iconify” a process, which means that it is no longer on-screen but doesn’t stop working. For example, suppose you start mplayer or mpv in an xterm to play some music. If you iconify the window the music will continue playing. When it finishes or if you want a different piece you simply un-iconify the window to make the changes. This command is also useful if you want to start a second browser temporarily or compile a large program.
As you can see, for me Spectrwm comes out on top for all comparisons except community support.
Making this analysis of the differences between i3 and Spectrwm has been a useful exercise. It’s shown me why I prefer Spectrwm. But I don’t want to knock i3; it’s an excellent tiling WM and deciding which is better comes down to personal preference and priorities. Newcomers to the world of tiling WMs would probably find it easier to use i3 initially because it allows for more hand-holding. But even if that’s your case I’d suggest trying Spectrwm later as well.
Fortunately experimentation is easy. Both i3 and Spectrwm work well out of the box with their default settings; perhaps the only immediate change that may be needed is to assign the Windows key (Mod4) as modifier in place of Alt (i3 has a wizard which offers you this choice as part of its setup process.) Anyway, both have configuration via plain text files so there is no need to learn a new programming language in order to configure them.
Mutt has the command ‘h’ to hide (weed) most of the headers in emails. After an upgrade to 1.12.0 I found this wasn’t working. I emailed Stuart Henderson, the maintainer of the Mutt package for OpenBSD. He thinks this is due to a change in the code of the new version of Mutt. He advised including these lines in .muttrc:
unignore From To CC Subject Date Reply-To Organization X-Mailer User-Agent Organisation Organization Priority Importance Mail-Followup-To
This makes ‘c’ work correctly. Thanks, Stuart.
Note added 31 May: Stuart has sent me a link which explains how the problem arose (https://gitlab.com/muttmua/mutt/issues/144). The change appeared in 1.12.0 but has now been reversed in 1.12.1 so the above lines are no longer needed.