The Moonspeaker:
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 (learning the ins and outs of GNU software is easy) 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 desktop 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.
UPDATE 2022-08-16 - Well, as always, times change and while the basic information is still valid in terms of how to work through setting up a GNU/linux system, and much of it even applies to BSD variants, I have had to drop canonical's Ubuntu altogether. It was already a bit tenuous as an option for me because of the decision to taint the default installation with an amazon.com spy application. Then canonical stopped that, but it turned out the corporate decision was to do something worse by taking money from microsoft and striving to incorporate more and more microsoft software into their system. From the look of things, microsoft is toying with simply destroying canonical or taking over its version of Ubuntu, rebranding it windows XX (as in roman numerals), and performing the old apple trick of making that operating system closed. The flail could almost work for them, but I doubt it will due to how corrupt microsoft is. I have never liked microsoft, and back in the day part of how and why I came to stick with earlier apple hardware and software was specifically to avoid microsoft. Like it or not, for about twenty years that was the most accessible alternative for people who were not computer science majors, and it took the Free Software Foundation and Richard Stallman to finally rectify that by a combination of rabble rousing and trying to get the Hurd project moving faster. I am earnestly rooting for the Hurd, because it looks to me like another kernel option is direly needed with microsoft now busily poisoning the linux foundation which has in its turn put Linus Torvalds on a far shorter leash. (The question of whether Torvald's move to the states was ultimately positive or negative for the linux kernel is a big question for another day.)
Based on my research and disgust for microsoft, and my positive experiences working with Trisquel, the better direction to go these days is an ubuntu derivative, all of which are developing along their own lines now. Trisquel meets the FSF criteria for being free/libre, but there is also linux mint for people who still want something as windows-like as possible. I can relate to wanting the graphical interface to be as familiar as possible, although not to wanting something like windows. There are other well-regarded ubuntu variants, and at least 77 variants all together. Ubuntu itself is a variant of debian, and there are many others of those, including devuan which does not use the infamous systemd, and even devuan has variants. All of which means, if you can run one of these on your hardware, the chances are you can run any of them, and typically with a familiar desktop. The most common one is still GNOME and its fork MATE. Nearly all of them have a ready to download ISO that can be burned to a USB thumbdrive and loaded up as a live testing system without changing your current system.
One thing that can be a bit difficult to keep clear on is that desktops and systems are two different things. The way I have parsed it out is that the operating system is the kernel and any extra bits the kernel needs to run, and the desktop is a program sitting on top of the kernel that provides the interface we work with day to day. This division is generally quite clear in a GNU/linux and freeBSD contexts, but quite blurred in the way macOSX does it now, mainly because of naming holdovers from the pre-Darwin days. MacOSX is built on a closed version of the BSD variant kernel called Darwin (Darwin itself is still available as free/open software), with the MacOSX desktop which can loosely be referred to by the system code name of the time. MacOSX like windows, does not allow any other desktop software to be installed because they are totally committed to branding. In the wider world of BSD and linux kernels, it is possible to have more than one desktop, although it is not possible to use more than one at a time. This flexibility is often referred to as some sort of liability because not so honest people like to pretend the only important thing is imposing a brand no matter what. After all, they are committed to brand in its original cattlemarking sense.
UPDATE 2024-05-24 - At last I finally found enough information to add support for the macros and key bindings that are part of my core usage pattern in TeXShop to TeXWorks. TeXWorks does have copious documentation, but it is to weep how often its volume comes not from meaningful information but from dumps of default key bindings and qt function names. These lists do come with brief annotations for each item, although with no sample code snippets for the qt information. On the flip side, there are a few sample scripts provided with TeXWorks, and they provide enough information to write macros and assign key bindings to them. The few scripts for TeXWorks I have found elsewhere are insanely complicated, perhaps because they are intended for use in automated document processing. The way I finally found all the good bits was by going backwards from hunting through the file paths to different resource folders, then using the names of the folders to find the related sections in the TeXWorks documentation. It seems to me that two of the major benefits on the TeXShop side of providing the documentation as LaTeX files and ready pdfs are serving as a ready means to check the install is working, and that the people composing them used the software. That goes again to the point at the start of this essay, that programmers are not best suited to write documentation for people who are not also programmers. To do an effective job of writing such documentation, the person in question must use the program for some sort of real work.
Around the same time I finally worked out the TeXWorks challenges, I also managed to sort out the Gedit snippet system. It has some odd "gotchas" that are not obvious from studying the installed snippets. The big one that required some experimenting to solve was positioning placeholders so as not to trigger an autoselect behaviour that could lead to accidentally deleting the entire tag or symbol just inserted with the snippet in the first place. The Gedit documentation on its snippets is a sort of mini-version of TeXWorks: roughly documented lists, but little by way of helpful code snippets or explanations. This is a shame, because it makes it much harder to use a well-implemented and thoroughly useful feature of the program. For both programs, when time allows I will have to write up my specific findings and post them.
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. You may want to follow the same practice apple encourages by having separate calendar, reminders, and mail applications, which 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.
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 on different partitions of the same hard drive, 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, 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 unless a person has installed the MacFuse extension, which is easy to do. For my purposes, keeping the files I use between both kernels on an exFAT formatted thumbdrive is effective and stable. I strongly recommend immediately reformatting any new thumbdrive to get rid of the execrable microsoft fat32 file system, which is slow and has a file size limit of 4 gigabytes. Either "feature" makes fat32 drives unstable for regular use.
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, since updated to apt, which is the recommended version to use now. 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.
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. That said, I have been able to solve such issues now with just about everything but any hp all-in-one unit. 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 box temporarily 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.
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 and committed to scripting solely using javascript mutant Qt script, which is really too bad. TeXWorks has a wonderful start and its interface is excellent, but it lacks crucial support for user-defined keybindings and macros that serious LaTeX and TeX users absolutely need. 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 since found comparable writer's studio type application for linux called manuskript.
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 set period of time. There is no excuse whatsoever to tie cosmetic updates to needful security ones, and even less excuse for refusing to provide details about what the security updates fix. If for some reason it is necessary to delay a security patch – a definitely suboptimal but alas common situation – it is important to know what to turn off (i.e. macros, or built in publishing) or to take a machine fully offline until the patch can be applied.
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:
- Install/open Gnome Tweaks
- Click Keyboard & Mouse
- Click Additional Layout Options
- Expand Ctrl position
- Select Swap Left Win with Left Ctrl
There is a further setting that allows you to remap the right super key to effectively match MacOSX behaviour if you wish.
- 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. UPDATE: In the end I had to ruefully give up on Sublime. It is an impressive program, but even more optimized for scripting and programming than Gedit is, with html and its ancillaries left very far behind. This is consistent with the recommendations I have seen for it, which are generally from programmers rather than webmasters or web developers.
- 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.
|