How to run Scrivener on Linux

Scrivener happily running on Ubuntu, like a boss

Scrivener is easily the best application around for long-form writing. Yes, you can do it in Word or LibreOffice (or even, like Cory, just a text editor), but the combination of structured rich text, note-taking, outlining and character notes that Scrivener has will make your life easier. And, of course, you can compile your work into just the right format at the end.

There is no Linux version of Scrivener these days, probably because the number of people wanting to both run it and pay for it was insufficient to justify keeping it going. Them, as they say, are the breaks. There are several open-source alternatives, such as Manuskript and Bibisco, but when I’ve tried them I’ve always felt like they are a developer’s idea of what writing is like, rather than a writer’s. They feel like databases where you end up filling in fields, and that just doesn’t work for me. That’s not to say it won’t work for you — and you should try them and thank the developers for their work — but it just doesn’t work for me.

Another option which can work on Linux but isn’t open source is Obsidian. Using some judicious plugins, such as Longform, you can get some of the structured writing capability that Scrivener has, but to make it work, you need to spend a decent amount of time creating templates and tweaking, and all of that is time not spent writing. Oh, and get to know Pandoc. You will so need to know Pandoc.

The good news is that you can get Scrivener working on Linux, and I will show you how to make it run and not look like a rat’s ass. It takes a bit of work at the start but once done, it’s done. Many pages around have part of the details of how to do this, but some don’t quite work, and others have typos, so I thought I would pull everything together into a single article. Thank you, in particular, to Thomas Peltcher, who started me off on the right track.

A brief note about Fedora. These instructions should work with any Ubuntu-based distro. I’ve tested it on Ubuntu 22.04, 22.10, Mint 21.1, Pop!OS 22.04 and Zorin OS 16, and it all works. However, I have never been able to get this working on Fedora. Using the same steps, I can install Scrivener, but when I try to run it, it freezes at “Loading fonts”. If anyone has a solution to this, feel free to either comment or email me, and I’ll include it in this article.

Install Wine (7) and Winetricks

The first thing you will need to do is install Wine. If you’re running Ubuntu 22.04, you will have an ancient version installed by default, and you probably want to update to Wine 7. However, Wine 7 can sometimes end up freezing, in the same way, trying to install on Fedora does so be prepared to roll-back if you find this.

Note: you don’t have to install Wine 7 to make Scrivener work. It will work perfectly happily with the default available from Ubuntu 22.04, Ubuntu 22.10, or distros based on those versions. But it won’t look as nice, and you may need to spend extra time in Wine tweaking it so it looks like a Windows 7 app and more like something close to native on Ubuntu. That’s my setup at the top of the page. Looks pretty good, doesn’t it?

If you are on Ubuntu 22.04, I have good news: all you need to do is go to the WineHQ page and follow the steps there using the Stable branch. however, if you are on 22.10 (as I am), you will need to choose the Development branch instead. The 22.10 version of Wine 7 hasn’t been released, but it is in that branch. I am on the Development branch and have had no problems at all.

Next, install Winetricks through the software store or via the terminal (sudo apt install winetricks will do it). Winetricks is a neat little app which makes it much easier to download and install optional parts of Windows that apps require, such as dotnet.

Configuring Wine

First, you need to set the architecture correctly. No, I don’t really know what that means either, but basically, open up a terminal and type this:

sudo dpkg --add-architecture i386

Followed by:

env WINEARCH=win64

Important! That’s a double-dash before “add”, not an em-dash. You will often find instructions on the web have that wrong, not because the authors are idiots, but because, annoyingly, WordPress often “helpfully” converts double dashes to em-dashes. I’ve even seen some pages where users have commented correcting this from the text, and then WordPress has converted their double dashes into an em-dash. Thanks, WordPress.

Next, you will want to install an appropriate version of dotnet and the core Windows fonts. You may already have the latter installed, but it’s fine to do it again if you’re unsure. In the terminal, type:

env WINEPREFIX=$HOME/.wine winetricks --force dotnet45 corefonts

Again, that’s two dashes before “force”. And again, WordPress often wants to convert it.

Finally – and this should be final – run the Scrivener installer. Sometimes it has been known to crap out if you double-click on it, so the best way is via the terminal. Navigate to the directory where the installer is (mine was in ~/Downloads, as I had just downloaded it) and run this:

wine Scrivener-installer.exe

That should be it, although some people have reported that it chokes when you try and enter your license code. If that’s the case, the solution appears to be to install speechsdk, which you should be able to do via Winetricks. I haven’t actually done it, but I didn’t need to.

Does Wine look really tiny to you? Wine doesn’t play well with fractional scaling, so if you have that turned on you have a couple of choices. First, you could turn it off. But you probably don’t want to, so what you need to do is go to the terminal and type “winecfg”. Go the graphics tab and crank the DPI up to the point where the sample text looks nice and readable to you – on my 1900×1200 laptop, with fractional scaling at 125%, I make it 244dpi and it looks OK. But you may wish to go smaller or larger.

Making it look like you actually want to use it

So now you have a working version of Scrivener, yay! However, if it’s anything like mine, it looks like a sack of crap with blurry fonts, tiny menu items, and so on. Good news: all of this is fixable. The bad news, it takes a bit of boring and repetitive work.

First, ensure that Wine is set to use the light appearance theme: it looks much better. This should be correct out of the box, but just in case it isn’t, go to the terminal, enter winecfg, and go to the Desktop Integration tab. Set the theme to Light — if you have Scrivener open, you’ll need to quit and restart to make it take effect.

When you open Scrivener, you might find things look a bit off. For example, when I installed everything from scratch every time I highlighted something in the Binder at the side it showed as black text with a black highlight — not exactly readable. Another time it had buttons and menu items which didn’t highlight at all, but worked perfectly.

This is because Scrivener has its own theming system which doesn’t always play nice out of the box with Wine. The good news is it’s easily fixable. The best way is to reset the Wine theme to the default, which makes it look like ropey old Windows 98. But don’t worry: the next step will change that.

You could go through all the appearance options and set your own theme, but a quicker way is just to use a third party theme as your base and customise from there. There’s a really good, simple white theme which I like in the Scrivener forums. This makes a great starting point for further customisation. Download it, change the extension from .zip to .scrtheme, and in Scrivener load it from File> Options > Manage button > Import themes. Select the downloaded theme, load it and you’re good to go.

Next, let’s deal with those blurry fonts. This is down to your menus using fonts in Windows, but which don’t match the ones in Ubuntu, so you need to change them to something which works on both. Open Scrivener, and in the File menu, choose options. In the Appearance tab/General Interface, change the GUI Font to something which more cleanly matches your Ubuntu install – I chose Ubuntu Light.

That settles the menus, but the Binder at the side may still look too small. In the same options, go to Binder, select the Fonts tab, and pick something nicer. Again, I’ve gone for Ubuntu light.

You can go through the rest of the interface, too, if you want, changing the fonts on Corkboard, Index Cards, Outliner, and so on to something which works more nicely for you.

Once the interface looks decent, you will probably want to change the main editor, too — unless you like really ropey Courier (hey, I’m not one to kink shame). This is done in the Editing tab. I’ve set mine to Optima because who doesn’t love Optima? I’ve also bumped the paragraph spacing because I’m not a barbarian.

Things which don’t work

You should now have a working installation of Scrivener, which doesn’t look like trash. Almost everything will work, but there are a few things that don’t, and you need to bear them in mind.

First of all, forget about importing a web page into notes directly. It will freeze Scrivener. Workaround this by saving any webpages you need as PDF or text and importing them.

Second, some good news: Scratchpad works! Yay! However, it only works if you invoke it via the menu, not via a keyboard shortcut. And as with the Windows version, if you have saved web pages into the Binder on Mac, they’re unreadable and might crash your app. If you’re working cross-platform, make sure to convert them to text.

And that’s it! You should now have a working, good looking version of Scrivener. Now all you have to do is 50,000 words for NaNoWriMo and you’ll be a writer.