Where Some Ideas Are Stranger Than Others...
Ubuntu Adventures in Reverse Documentation
To be sure, writing documentation for anything, let alone computers and their operating systems, is one of the most frustrating and difficult tasks anyone may be faced with completing. It is made all the more difficult when the persons assigned to the task are at the wrong angle to carry out the task in the first place, so it is difficult for them to know just what to write up. In my quest to sort out the differences between various linux flavours and the present BSD-unix derived MacOSX, I have been endlessly frustrated by both published and online guides to linux. For this it would be easy to fault the authors, who spend chapters and chapters explaining how to use a graphical user interface heedless of how ubiquitous they are, then far too many chapters on running the installer, and then a deep dive straight into technical questions that the implied audience of the first chapters could not possibly cope with. Meanwhile, an even broader range of people is left condescended to and left to take their chances with a search engine to track down answers to their questions. Unfortunately, it looks like many of those authors are cleaving to a format that forces them to waste time on what are the shared and widely understood aspects of computer operation, while being too expert in digging into more detailed elements of the way the operating system works to realize that most readers don't need to configure servers and the like. At least, not right away, especially if they are working to get a linux computer ready to take over from a machine running a mainstream operating system.
My purpose here is to write up my own findings in the course of finally solving the various annoying issues that had prevented Ubuntu from shifting into a genuine steady use position as opposed to primarily a testing and experiment environment. Having started out on Unix boxes, having to cope with using a command line interface and looking up arcane bits of code and details of settings did not phase me. That is just part of the Unix world because the software is updated so frequently and different hardware throws up different quirks. Nevertheless, setting up a dual boot station with MacOSX on one partition and Ubuntu on the other was the easy part. Getting the various headaches worked out after that turned out to be more of a saga than I expected. One of the key things that made it possible to finally pin things down was Canonical finally bowing to sense and moving back to the Gnome desktop as default graphical user interface. While I prefer the way MacOSX handles title bars and program menu bars to Gnome's approach, everything else about Gnome is so much better in comparison to Unity that in the end really, there is no comparison from my perspective. That said, it is quite possible to use another desktop environment instead in Ubuntu, including Unity, and that is very much in its favour for many people.
As a starting point, it is worth stating briefly how MacOSX and Ubuntu are different, since they are both free today, at least in the up front cost sense. Not of course, in the "free software" sense, because MacOSX is proprietary and Ubuntu default installs proprietary drivers unless directed not to. If you are coming from the MacOSX world and do not have to work on Windows, then you should know right away that in the linux world generally, the control key covers the duties of the command key, and the command key is referred to as the super key. Occasionally you may also encounter references to the meta key, which usually maps to the esc key unless something very odd is going on. This is probably the biggest immediate difference that can trip a person who uses MacOSX up, precisely because it will defy muscle memory for awhile. Microsoft is doubling down on overt courting of linux together with covert hostility, so it is becoming ever more difficult to impossible to run any of that company's software under linux, even in an emulator such as WINE. This is not a major problem in my experience, but due to microsoft's unfortunate dominance in the market for regular use software, it may seem like a barrier at first. Every sort of software you may need, from graphics production to audio to games, is available in some form that is not based on a subscription model. Some of the software available is proprietary, and far more of it is free in that a determined person could download the code and compile it themselves in order to run it, and it is made available without charge. It may also be available for a nominal fee on a cd, dvd, or usb drive, in which case the cost covers distribution and media. Finally, if you have any idevices, it may prove impossible to read music or movies from them or otherwise manage their files under linux. This is where apple engages in covert hostility while being overtly friendly to linux in other ways. So you may want to maintain a dual boot scenario with a MacOSX partition just for that until that has an appropriate work around, especially if you don't need to manage idevices daily.
Considering Ubuntu more specifically, it is a fork from the Debian linux kernel. From Canonical to various commenters on the differences between these two linux flavours, they emphasize that Canonical provides a level of corporate oversight and Ubuntu has a graphical and extremely well designed, easy to learn your way around installer. It is well worth reading a bit more about the differences between them. Two excellent short articles that summarize the most important parts beyond the difference between the community volunteer run Debian and corporate overseen Ubuntu are: Nick Congleton's post at linuxconfig.org, Debian vs Ubuntu and Mehedi Hasan's at ubuntupit Debian vs Ubuntu: Top 15 Things To Know Before Choosing the Best One. One key difference between Ubuntu and Debian, and Ubuntu and MacOSX for that matter, is how it handles the TeXLive distribution, a non-trivial matter for most people engaged in academic writing. For programs that come preloaded in Ubuntu, like Firefox and Thunderbird, if you already use them, you can apply practically the same settings as you can to the MacOSX versions. For Thunderbird you may want to install the Lightning plug-in in order to have it provide an integrated calendar and reminders tracking. Or you may just want to follow the same practice apple encourages by having separate calendar, reminders, and mail applications. This is the more general *nix practice, and indeed Gnome includes excellent calendar and reminder applications by default. The same "you can just do the same thing" applies to the libreoffice suite: if you already use it in one of its MacOSX versions, there will be little to do but set it up the way you like it. Like Firefox and Thunderbird, it is already loaded. Where things can get especially tricky and frustrating is the things that go beyond bog standard office application software, because depending on what you need to install and set up, Ubuntu requires different solutions.
Before digging more into the software side of things, I should make a few quick notes about hardware. Generally everything is plug and play with Ubuntu, except for scanners, which are as finicky to get running at times as they are under any other operating system. In my experience Ubuntu does not work well with trackpads out of the box, so it is well worth to at least borrow a two or three button mouse for initial set up. Once you have things running, go into the mouse and trackpad settings to make what adjustments you wish to make there regarding two finger scrolling and the like. Then use Gnome Tweaks to tell the trackpad to stop trying to emulate different mouse buttons on different parts of its surface. This change alone ended 75% of the problems I was having with using the trackpad to drag around windows and icons and general over sensitivity. Without going into Terminal to change the trackpad sensitivity, you may or may not find that the trackpad is a bit sluggish, especially when moving the pointer across the screen. There are good instructions on how to sort that out available on the Ubuntu fora. Supposing you opt to consistently use a wired mouse, on apple hardware my experience is that it is best to unplug it before suspending if you are going to pack the laptop in a base or otherwise set it out of the way. There is a common usb bug triggered by wired mice if unplugged while the laptop is in suspension. If perchance you use a drawing tablet, these are generally plug and play as well, although I cannot yet confirm whether that is true of the more elaborate versions that have a secondary screen built into the drawing surface. External cd/dvd drives, if you still use them, are also plug and play, though you may have to do a bit of library downloading to play movie dvds.
There is one potential wrinkle that I have been unable to reproduce quite consistently, but have been able to narrow down in terms of avoiding it. Supposing that Ubuntu and MacOSX are sharing a hard drive so speak, it is quite possible to see the MacOSX file system from Ubuntu. Not only is it possible to see it, it is possible to dip into it where permissions allow, up to editing and such. This is just what we should expect, considering we are dealing with cousin *nix systems. Of course, it is not possible to mess with the MacOSX system itself or any of its special folders, including the specially marked media folders. Where editing is technically possible from Ubuntu on files living in my MacOSX home folder, I am leery of doing it because of an aspect of linux that trying to just plug and play usb thumbdrives revealed to me. Ubuntu can handle four file system types with no headaches for sure out of the box so to speak, the same three as any other linux kernel: exFAT, ext2, ext3, and ext4. There is no guarantee it will play nicely with others without further configuration of Ubuntu itself to my knowledge. Generally exFAT formatted usb thumbdrives can travel between linux, Windows, and MacOSX without hiccups. If perchance the thumbdrive is formatted MacOSX extended, Ubuntu may be able to read it but not write it or other flaky things may occur. It is possible to mount ext(n) drives under MacOSX, but so far my online research suggests that this can be quite involved. For my purposes, keeping the files I use between both kernels on an exFAT formatted thumbdrive is effective and stable.
For most software, you can simply use the Ubuntu equivalent of the MacOSX app store, Software Centre. It is basically a graphical user interface on top of an established installation program called apt-get. Just as might be expected, once started up, you can use this program to search by name or explore different programs by category, and then install them with the click of a mouse. This works for just about everything, including extensions to the Gnome desktop environment, and the first program you should install right away, Gnome Tweaks. That program will help you manage a number of hardware annoyances before heading into research on how to make changes from the command line. Many people with long linux experience will have next to nothing to do with the Software Centre, because compared to the command line in Terminal it is slow. However, for myself because in my Unix box days I did not have the higher administrator privileges to install software in that workplace, I had to start with the Software Centre and then do some research on apt-get when I installed Ubuntu. If you want or need to install more than the baseline packages that make up the TeXLive instance on your Ubuntu system, you cannot use tlmgr, the TeXLive Manager, for this. Nor can you simply download packages and then drop them into a texmf folder somewhere in your home directory, as you can in MacOSX. This hung me up for far longer than I like, because so much of my Unix knowledge is directly transferable to Ubuntu. Instead, it is necessary to use apt-get, including searching for other TeX packages. Ubuntu provides an extended TeX package set in its software repository, but it is not visible through the Software Centre. This is very weird at first glance, but it may be because the software you can see is all in the "snap" installer format, which is designed specifically for installing by mouse click. In an ideal world, there would be a category for apt-get only options, with their names listed right in the Software Centre and a reminder that you need to install them using the Terminal.
Bonus tip, if you find that the icon for your home folder and the trash are underneath the dock, you can move them to the other side of the desktop and they will stay put. This was a pleasant surprise to me, as both MacOSX and Windows enforce specific positions on default desktop icons for these that can't be altered easily, if at all.
Of special note is how Ubuntu handles backups. This again is quite analogous to MacOSX, except the program that runs regularly scheduled backups is called deja-dup. Once set up, it will generally do its own thing without drawing your attention. It is capable of encrypting backups, and since it backs up your home folder exclusively, can also be blisteringly fast. It is possible to save other files on your backup media, be it a hard drive, usb key or whatever. It is well worth saving a small text document to it as well with notes about additional programs you have installed, Terminal commands you have made use of and what for, and any other notes about setting up Ubuntu that strike you as worth keeping track of for the future. Generally the Ubuntu updater carries over your original settings and runs smoothly, but having both that text file and the backup are excellent insurance just in case the Ubuntu updater has a very bad day, and you need to carry out a full install instead. This might also be where you end up keeping a great many backup notes about Ubuntu's approach to workspaces, which is idiosyncratic but can be rendered sensible again by the addition of an extension to the Gnome desktop environment if you wish.
As a webmaster, one of my biggest concerns was tracking down a reasonable BBEdit equivalent for linux, because wonderful as gedit is, it lacks several key features in its default installation, including projects. Gedit has its own plugin ecosystem to add needed elements, and the most adventurous and savvy will write scripts and plugins of their own. But for my part, I wanted to minimize the need for that sort of work on principle. Ubuntu is aimed at those of us who have either no time or no inclination to get heavy into coding just to get the basics happening, though we may change things up later. The best parallel to BBEdit for linux is Sublime, which also has a MacOSX version for anyone who would like to try it there first. As a writer, I am still testing the options available for editing LaTeX files. So far TeXWorks and TeXStudio are in the running for longterm use, with the former vastly inferior to TeXShop. Scrivener did beta a linux version for awhile in 2015, but gave up on the idea after two iterations, which is too bad. I have not yet identified a comparable writer's studio type application for linux, but will add an update on this once my exploration and testing is complete.
In terms of system updates, Ubuntu's software updater will automatically check for updates at reasonable intervals, for example weekly or monthly. In this rougher online world, any longer than monthly if you are constantly online is probably off the table. A key thing you can always do with the linux updater is check what the pending updates are, and decide which ones to apply. So, suppose you have checked the pending updates for say, firefox, are going to wreak havoc in your set up. You can disable that update for the moment while still allowing security and system updates to go ahead. This has long been one of my greatest annoyances with both microsoft and apple, that security and basically cosmetic updates are not separated in this way and there is no way for the person who owns the computer to do it instead. It is as if programmers can't believe that someone might have valid reasons to refuse updates, even security ones for at least a period of time.
Setting up and using a computer that is not provided by your employer is a highly individual experience, so you may or may not find much that is applicable to your immediate concerns here if you are switching to Ubuntu from MacOSX. In terms of ease of switching, Ubuntu is still hands down the simplest, despite odd gotchas like needing to add to the TeXLive install via apt-get, which are not obvious. In fact, the set up that took me the longest in the end was getting Firefox set up properly, because of development lines taken by mozilla that strike me as at best dubious because they attempt to force everyone to accept what they think is best, including in workflow set up and how a person sorts their bookmarks. In this mozilla is very much at odds with the general linux approach to customization, which centres the computer operator's choices. Ubuntu occasionally fails on this point, especially in some of its out of the box settings for the trackpad and workspaces, which it should not be necessary for a person to install Gnome Tweaks or hasten to the command line to fix. Still, in terms of respect for operator choice, a reasonable ranking from best to worst is presently: Arch, Debian, Ubuntu, MacOSX (to 10.9.5), MacOSX (post 10.9.5), Windows (to version 7), iOS, Windows (version 10 on).
After a point it is likely that you will end up wanting to develop more systematic and specific knowledge of how linux works, especially after applying a handful or two of command line-based changes. For that purpose, the go to source I have happened on is the linux from scratch project. Whether or not you ever decide to follow the directions to build your own custom linux system, the documentation of the specific parts of a very basic (but not barebones) system and how they interact is a great introduction to how things work under the hood. One helpful page to check early on is the one on the linux from scratch project and standards and the next chapter, which list the packages included in a system made using the project's directions plus some basic information about them. This is where file system types and core programs are set out in brief for when you know which program you need to run but are having difficulties figuring out what its name under linux most likely is. For information on the file system hierarchy, I have learned that the source to check is the Filesystem Hierarchy Standard Specifications Archive. This can be quite helpful when trying to sort out error messages that refer to missing permissions and unexpected folder names. As an added bonus, if like me you would like to be quite clear about which directories are system critical in order to always be able to check commands you run in Terminal aren't going to mess with them, the latest specification has your back.
- Generally I will put key names in bold text.
- Unless of course you load Gnome Tweaks as soon as possible, and use its Additional Layout Options to remap the super and control keys, as documented at askubuntu.com. The Gnome Tweak version is at the very bottom of the page, and so is worth quoting here:
There is a further setting that allows you to remap the right super key to effectively match MacOSX behaviour if you wish.
- Install/open Gnome Tweaks
- Click Keyboard & Mouse
- Click Additional Layout Options
- Expand Ctrl position
- Select Swap Left Win with Left Ctrl
- ext3 and ext4 have a journal, which, quoting the authors of the linux from scratch guidebook, "...help[s] recover the partition's status in the case of an unclean shutdown."
- Programs run from the Terminal will have their names in italics.
- Nine times out of ten, if I can't do something much like the graphically oriented MacOSX way, I simply switch to the Terminal oriented *nix way of doing things as documented on the website for the software at issue, and that works. So this threw me for a loop.
- BBEdit has a better price tag and far superior documentation to Sublime. That said, I am still exploring how these two programs differ, and the Sublime documentation is under continuing development.
- Of course, I am not recommending delaying security updates at all, as they are a non-trivially good idea.
- I know, it floored me to end up putting iOS that high on the list.
- I can't help but wonder if microsoft will now start having version number wars with apple, if apple doesn't try to kill MacOSX as it seems to be trying very hard to do. Then again, I do wonder how much longer Windows as we know it can continue, as it is long past the spaghetti code stage that forced apple to put its earlier system out to pasture, as evidenced by patch tuesdays including more than a hundred patches.