Updated: March 14, 2025
I've been writing books for over 30 years now. I began publishing them in 2011. So far, I unleashed 21 books unto the wild. By and large, fiction is super easy to write. You just use your own head. Even my technical works on kernel crash analysis, problem solving, ethics, or career help were relatively simple to jot down. Recently, though, I had completed my most ambitious project yet. A military history book.
Nonfiction is hard. You cannot wing it, use your experience or imagination. You must work with references, tons and tons of them, read other books, you must use citations, and so forth. Well, for the past three months, I have engrossed myself into this ultra-complex endeavor. Now, it's done. The book weighs 90K words, it has some 35 figures and tables, each, plus almost 700 citations. It also includes a piece of simulation code, for a specific combat scenario, written in Matlab-like octave. And I did all of this work using Linux and Linux tools. Well, 90% of the work. Let me tell you more. Linux from the perspective of a seasoned author with fifteen million words under their belt.
Why Linux and open-source tools?
I am not an ideologist. I'm a pragmatist. And my pragmatic approach is to stop using Windows for good, if possible, or at least, minimize the use as much as I can. I announced this plan a while back, and by and large, it's been going really well, both on the gaming and software fronts. I am trying to accomplish this migration with Linux. Indeed, I have a bunch of machines running primarily this or that version of Kubuntu.
The weakest link in the equation have always been computer games and office work. Steam has largely solved this with the wonderful Proton layer. But office is tricky. I tend to write all of my books in LibreOffice, and have done so for years and years. The last step, though, is the most difficult one. Whenever I need to send the final manuscript to publishers, they always ask for DOCX. No exceptions.
To that end, I must resort to Microsoft Office. I have a native Office 2016 install, plus I have Office 2010 set up in a Windows 10 virtual machine, which is kept offline. So that is always an option. But then, what about the actual writing process?
As I told you, LibreOffice does the job. But the program has its many flaws. I've reviewed pretty much every single version out there. The experience has been inconsistent, a rollercoaster of quality and compatibility, going from great to average back to great again. I'm not going to bother you with links to a dozen plus reviews from the past decade. You can check my Office section, if you're interested. The 24.2 release, the last one I tested, is actually quite solid, and I hope it only improves.
Even so, I've always had issues with how LibreOffice handles styles and navigation. A lot of wasteful mouse clicks and actions. Not a new thing. Overall, the existence of these "bugs" has never really been a major issue. Writing fiction is mostly unformatted. You just dump a bunch of words, and you're done. Nonfiction is trickier.
The use of tables, figures, source code, references, footnotes, abbreviations, multiple tables of contents, and other elements all mean heavy use and reliance on styles and constant navigation up and down the manuscript. Then, typically, one needs to read a few dozen if not hundred books as part of their research, cross-reference twice as many documents, add annotations, add quotes, and then some. All of these pose a unique challenge you rarely see in fiction. But they are the bread and butter of nonfiction, especially history.
Well, to make my writing "challenge" ever harder, I decided to try to do as much as I can using Linux and associated programs. However, I also did a lot of reading on my phone while sipping latte in this or that coffee shop (yes, I'm a fashionable git), and had to copy/share whatever findings I discovered there onto my desktop. That part of the work isn't purely free software, but there are some free software elements. Anyway, let me tell you how it all went.
LibreOffice Writer
Let's start with the good things. My final book weighs 134 MB, it's 310 pages long, and it contains the aforementioned multitude of figures, tables, citations, and other fancy elements. Opening and/or saving the document takes about three seconds. By and large, Writer handles it all just fine, with no stuttering or lag or similar issues. The length and the complexity do not pose any problem.
The navigation tab is useful. It does show many wondrous things, including the list of all your images and figures (separately), all your tables, even all your footnotes and endnotes, as well as any abbreviations you marked. You can use these to generate tables of contents more easily. To an extent. More on the shortcomings later on.
I found the sidebar powerful yet clunky for multiple reasons:
- Navigation and styles cannot be shown simultaneously. In Word, navigation is positioned on the left, styles on the right. Here, it's one pane, and you must juggle between them. That's wasteful, and it reduces your situational awareness (see, I'm using a military jargon here).
- Both the styles list and the navigation marker jump based on where you are in your document, and what's selected. This is also wasteful, because say you want to mark a piece of text with a new unique style. Writer will add these to the bottom of the list. But most of the text uses the generic "Body" style, which is shown at the very top of the list. So, every single time, you must scroll, select new style, select another section of text, the list jumps, repeat. Furthermore, the styles are applied with a double click. Wasteful.
- I couldn't find an easy way to export footnotes into a list of references.
You can't see both Styles and Navigator at the same time.
Scrolling through styles can be tricky.
There were other issues, too. Tables and figures require captions to show correctly in tables of contents, even if you use your own styles. Figure captions are always displayed fully, so you can't use say the first sentence for the table of content, and have a more elaborate explanation later in the document. This forced me to use really short captions that miss the point. I had to add an entire section to the book called Image reference, with more detailed captions.
Adding images was a bit meh. Every single time, the image would be set to float, center alignment. Why? Why not use nowrap left-align option? I also had to rescale every single image to page width, and make sure the proportions are correctly preserved. This took a lot of time, and I couldn't easily export these settings into a new style.
I also find the paste function to be a bit clunky. Say you copy a piece of text that comes with extra formatting. Doing a simple Ctrl + V pastes everything. Ctrl + Shift + V shows a little window where you can choose what kind of paste you want. Ctrl + Shift + Alt + V does the unformatted paste. Now, I would rather have these two shortcuts reversed. Because this makes the process harder, slower.
These are all seemingly small things, but when you need to do 1,000 of these, they do add up. In particular, the copy & paste option was tricky for me, especially when working with citations and footnotes. I had to build my own index manually, and each paste was a pain.
Okular
Plasma's PDF program is Okular. By and large, it's a nice tool, but I found it severely lacking in my work on the history book. First, it was relatively slow. Firefox would load documents in about 1/5th of the time it took Okular to display the exact same files. Using the search function, Firefox would find the desired strings more quickly, and it also shows the number of matching entries. Okular's search was slow, and it does not display how many results it found, one or ninety-three.
In this regard, Microsoft Office does it much better. Word shows you all the entries, but also some 20-30 words that wrap the search, so you can more easily select what you're looking for. And on the phone, I was using the lovely Readera app for my books, and here too, the search gives you the "surrounding" words, so you have more context, and it's easier to locate the exact search entry you need. More on this soon.
Okular's numbering and navigation by page number and/or section is also sometimes clunky. It did not always work as I expected. This was tricky. Considering I read some 200 books and about twice as many reports and monographs, all in the PDF format, my heavy reliance on Okular did harm my productivity a little.
If you need to work with lots of files simultaneously, you face another conundrum. By default, Okular opens every file in a separate instance. Not bad, but going through them can be difficult. I solved this by ungrouping Okular (and only Okular) in Plasma's task manager. More on this later, but this is a beautiful and unique thing that only Plasma can do.
The second part of the problem is that Okular uses whatever metadata it can find for the title, so you can't always figure out what document you're viewing. You have to manually rename files. And then, you can also use tabs. Yes, Okular has a tabbed interface! But it's weird. One, it gives you no visibility into what open documents you have at any given moment. Two, if you use a mix of multiple instances and tabs, Okular will always append tabs into the most recent (last selected) instance, so your tabs will be scattered all over the place. You shouldn't really use tabs if you allow more than one instance of the program to be open at any given time. Meh.
GIMP, GwenView, Octave, Kate ...
For some basic image processing, GIMP did fairly well - rotation, perspective fix, DPI, stuff like that. GwenView also handled all of the different images files without any problems. Octave, ah. Whenever I use it, I remind myself how much superior Matlab-like programs are for data analysis than any "conventional" programming language. It's also fun to brush up on the knowledge that I once wielded fiercely twenty-ish years back when I did a lot of image and signal processing in the medical industry. Octave was simply fun. I did have to install the statistics package (from the archives), but other than that, things were solid.
And you can freely rotate even 2D graphs. Fabulous!
Kate behaved reasonably well. It saved empty buffers, but the search & replace could be more efficient. It would be nice to more easily correlate search strings to files, but overall, this is a tiny complaint.
Plasma desktop
Overall, I have very few complaints. But there were a few niggles. Sometimes, the icons-only taskbar would not show an indicator (+ sign) for multiple open LibreOffice documents, and sometimes it would, and only for this specific program. I also showed you recently how to use selective grouping for various programs, and that's a true time saver.
The desktop is also configured to restore your session on startup by default. This works great, but not for all programs. For instance, LibreOffice, again. If I left any documents open, on next system reboot and startup, LibreOffice would complain that it had crashed, and would try to recover the files. Alarming. Likewise, GIMP does not preserve documents across sessions. Could this be a GTK thingie? I am not sure, but I'm not happy.
Again, LibreOffice-wise, I couldn't find a way to open different documents with different window size and position, e.g.: place one flush left, half the desktop width, place a second one flush right, and set its width to two thirds of the desktop, for instance. Maybe this is a general Plasma limitation, but it would be nice if there were a way around it.
Among the different Linux programs I used (in Kubuntu), LibreOffice, Okular and GIMP all crashed once. I was able to recover LibreOffice documents just fine, but it was still scary. GIMP's data was lost. In Okular, I was merely viewing files (read only so to speak), so no biggie.
Online stuff, non-free stuff, phone & desktop connectivity
Now, let's talk about some other things I had to do, or rather, chose to do. This section also includes a few proprietary bits and pieces, like search and the use of my phone as a reading device here and there. We're talking Android, Firefox for Android (with UBlock Origin, of course), plus Readera for actual book and document reading. Then, I would take notes in the Android's stock Notes app, which I would later sync to my Linux desktop using KDE Connect. A mix of open source and not. Let's elaborate.
Search
By and large, over the years, the online search services have gone down in quality and accuracy. Considerably. Once, you could actually search for what you wanted, and you'd get it, not a semi-curated list of what seems to be most profitable. Today, if you type a search query, even with quotation marks and the site: qualifier, you will still often get tons of random garbage, links to Youtube videos, and alike.
Overall, I used two search engines: Google and Bing. Google was average overall, with lots of "AI" summaries that quote simply the wrong thing from what it considered the top result. Bing did even worse when it came to text. However, Bing's image search is superior to Google's, at least in my view. However, both struggled finding old images, stuff from the 60s and 70s, even stuff that is in the public domain and available on various government sites. Google did a bit better finding those, but much worse with image matching (find by photo).
Interestingly, Google was bad for general searches but it did well with esoteric queries that simply have no commercial value. There, it actually returned the expected obscure references and odd PDFs and alike. For example, if you type something like "World War II B-17 bomber ordnance CEP pattern Europe", you will get what you want. Bing did a little worse in this regard.
Translations
I elected to use Firefox's built-in translation. This isn't cloud-powered, so that's a big bonus. Overall, the translations worked really well. The best part is, you still stay on the same pages, the URLs do not change, and if you continue your navigation, Firefox will auto-translate (from that point onward). Very neat and useful.
Book reading, annotations, quotes
Readera is a really cool app. One of the few mobile products actually worth their weight in megabytes. With some 200 books loaded into its library, I could actually see whether it was helping me achieve my goals, namely productivity and easy data organization.
Well, I was able to catalog books by tags, so that helped some. The search is excellent. Then, I would occasionally highlight bits of texts, which you can then translate, read aloud, share, or save as quotes appended to the document. The only problem is, you need the paid version of the program to see all your quotes in one big aggregated view. Otherwise, you must open each file to see what gives, which sort of misses the point.
Going to KDE Connect could work, but not when I'm on a different network. More on this soon.
Great quotes-keeping functionality.
Instead, I would sometimes screenshot pages in lieu of a more accurate highlighter, but the app on my Samsung A54 doesn't really tell me much. App name, date and time, that's it. Over time, I'd improve my note-keeping screenshot collection by going into Readera's edit mode before snapping, but even then, you wouldn't always know the title of the document, or see the page you're on. Quite often, I had to resort to keeping a manual index, e.g.: a note that says book X, page Y, reason for taking the screenshot, or why a particular quote or reference is useful. Once you have a few hundred of these, it becomes quite hard keeping track of things. But, it is manageable. I guess keeping track of several hundred anything isn't easy, period.
I am sure there are more streamlined ways of doing things. The problem is, when you're reading, you really want to be reading, especially if you want to go through one or two books a day. Every time you must pause and make a note is a distraction. On the phone, this is extra clunky, due to the simplistic nature of touch interfaces. All in all, it went well, and without having to resort to using six other apps just to keep track of what I'm doing.
Phone & desktop sync
Enter KDE Connect. This worked really well. KDE Connect, which I recently mentioned in my article on how to sync your local, offline music (MP3 and whatnot) to iPhone, is an excellent, multi-purpose phone syncing tool. It lets you share contacts, files, clipboard, control the volume, ring the phone, and tons of other features. I really like the clipboard tool. On the phone, I'd simply mark and copy the contents of my notes, and share the clipboard through KDE Connect. Then, on my Plasma desktop, I could simply grab the notes. Done.
The one downside to sharing is that if you send URLs to KDE Connect, it will automatically try to open them in a browser. So if you send say a 100 links, then this becomes a bit of a burden. The simple sharing of text seems like a more sensible option. Or at least pop a warning. Oh, yes, you must allow notifications for most things.
But then, the very last step ...
You're not going to like this, but this would be opening the ODT file in Word, and converting it to DOCX, so that I can then send it to agents and publishers. This remains the weakest link in the entire chain. Overall, I had reasonable fun working with LibreOffice, but I cannot risk using its odt->docx conversion. That might be somewhat okay for ordinary fiction, with no tables or images or any fancy formatting. Here? Hm.
Conclusion
Before you say anything, yes I'm aware there are "writing focused" apps and programs out there. I also know that I may have done some things more efficiently, and here, in fact, I would really appreciate your comments and suggestions via email. Just remember I purposefully avoided getting myself bogged down in software, or having to add half a dozens tools into my arsenal, for tiny, incremental benefits. My goal was to write, and I did write almost 100K words in three months. For nonfiction, this is a lot. In general, that is a pretty fast pace. That means my workflow was pretty decent, all things considered.
There were some clunky bits. My general observation is, yes, you can write complicated books with free tools. No need to remind me, I know LaTeX and LyX exist, I wrote about them tons. I know you can even make ebooks from LaTeX, directly. I wanted to use a simple word processor, as I need to interact with people in the publishing industry for whom Word is THE Word. This is where my FOSS story gets unraveled a bit, but there's no way around it, it seems.
LibreOffice Writer did well. It handled the big manuscript fine, but it does have lots of productivity issues, like style and navigation handling. I wasted tons and tons of mouse clicks there. Okular was a bit meh. The other tools worked reasonably okay. The big issue seems to be cross-program data sharing, difficulty indexing quotes and citations, and limited search inside documents and across documents. If someone out there sees a few useful nuggets in this article, and these can be implemented to make free, open-source writing tools even better, then great.
Now, stay tuned for an actual update on this nonfiction work, so I can actually reveal its name, give you some details, and dispense with having to blank out information like I did in the images above. Again, the agents and the publishers are quite finicky about certain things, so there. So, the simple answer is, yes, you can do it with Linux and FOSS. About 90%. Take care, folkses.
Cheers.