Language Selection

English French German Italian Portuguese Spanish

Scrivener Writing Software has a Linux Version

Filed under
Reviews

In some ways, Scrivener is the very embodiment of anti-Linux, philosophically. Scrivener is a writing program, used by authors. In Linux, one strings together well developed and intensely tested tools on data streams to produce a result. So, to author a complex project, create files and edit them in a simple text editor, using some markdown. Keep the files organized in the file system and use file names carefully chosen to keep them in order in their respective directories. when it comes time to make project-wide modifications, use grep and sed to process all of the files at once or selected files. Eventually, run the files through LaTeX to produce beautiful output. Then, put the final product in a directory where people can find it on Gopher.

Gopher? Anyway …

On the other hand, emacs is the ultimate linux program. Emacs is a text editor that is so powerful and has so many community-contributed “modes” (like add-ins) that it can be used as a word processor, an email client, a calendar, a PIM, a web browser, an operating system, to make coffee, or to stop that table with the short leg from rocking back and forth. So, in this sense, a piece of software that does everything is also linux, philosophically.

And so, Scrivener, despite what I said above, is in a way the very embodiment of Linux, philosophically.

I’ve been using Scrivener on a Mac for some time now, and a while back I tried it on Linux. Scrivener for the Mac is a commercial product you must pay money for, though it is not expensive, but the Linux version, being highly experimental and probably unsafe, is free. But then again, this is Linux. We eat unsafe experimental free software for breakfast. So much that we usually skip lunch. Because we’re still fixing breakfast. As it were.

Details with Screen Shots Here

Anyway, here’s what Scrivener does. It does everything. The full blown Mac version has more features than the Linux version, but both are feature rich. To me, the most important things are:
A document is organised in “scenes” which can be willy nilly moved around in relation to each other in a linear or hierarchical system. The documents are recursive, so a document can hold other documents, and the default is to have only the text in the lower level document as part of the final product (though this is entirely optional). A document can be defined as a “folder” which is really just a document that has a file folder icon representing it to make you feel like it is a folder.

Associated with the project, and with each separate document, is a note taking area. So, you can jot notes project-wide as you work, like “Don’t forget to write the chapter where everyone dies at the end,” or you can write notes on a given document like “Is this where I should use the joke about the slushy in the bathroom at Target?”
Each scene also has a number of attributes such as a “label” and a “status” and keywords. I think keywords may not be implemented in the Linux version yet.

Typically a project has one major folder that has all the actual writing distributed among scenes in it, and one or more additional folders in which you put stuff that is not in the product you are working on, but could be, or was but you pulled it out, or that includes research material.

You can work on one scene at a time. Scenes have meta-data and document notes.

The scenes, folders, and everything are all held together with a binder typically displayed on the left side of the Scrivener application window, showing the hierarchy. A number of templates come with the program to create pre-organized binder paradigms, or you can just create one from scratch. You can change the icons on the folders/scenes to remind you of what they are. When a scene is active in the central editing window, you can display an “inspector” on the right side, showing the card (I’ll get to that later) on top the meta data, and the document or project notes. In the Mac version you can create additional meta-data categories.

An individual scene can be displayed in the editing window. Or, scenes can be shown as a collection of scenes in what is known as “Scrivenings mode.” Scrivenings mode is more or less standard word processing mode where all the text is simply there to scroll through, though scene titles may or may not be shown (optional).
A lot of people love the corkboard option. I remember when PZ Myers discovered Scrivener he raved about it. The corkboard is a corkboard (as you may have guessed) with 3 x 5 inch virtual index cards, one per scene, that you can move around and organize as though that was going to help you get your thoughts together. The corkboard has the scene title and some notes on what the scene is, which is yet another form of meta-data. I like the corkboard mode, but really, I don’t think it is the most useful features. Come for the corkboard, stay for the binder and the document and project notes!

More in Tux Machines

Open Hardware: Adafruit, Arduino, Librem 5 and More

  • RFCat N32 Long Range nRF52832 Bluetooth Board Delivers 30x the Transmission Power with an Amplifier

    Bluetooth 5.0 has two main new features: high speed (2Mbps) and long-range. But as we’ve seen in our nRF52840 vs nRF52832 vs nRF52810 comparison is that only nRF52840 supports Bluetooth 5.x long range. Bluetooth 5 long range is achieved with two new lower bit rates of 500 kbps and 125 kbps. So what do you do if you’d like a longer range and keep using the higher bit rates? You add a power amplifier and LNA to your board, and that’s exactly what Nikolaj (RFCat) did with RFCat N32 board based on Nordic Semi nRF52832 wireless SoC. [...] The board is pre-loaded with Adafruit NRF52 bootloader supporting OTA, FreeRTOS, and Arduino. Source code and samples are available on Github. The Arduino library is based on Adafruit nRF52 Arduino Core and for some reason, only shared as a zip file (rfcat.zip in the Github repo).

  • Meet MrK_Blockvader, a little mobile robot that’s lots of fun

    One of the simplest ways to make a mobile robot involves differential steering, where two wheels move at different speeds as needed to turn and a ball caster keeps it from tipping over. The MrK_Blockvader is an excellent take on this type of bot — demonstrated in the first clip below — featuring a nice blocky body comprised out of 3D-printed parts, RC truck wheels driven by tiny gear motors, and an integrated roller on its back. The MrK_Blockvader is controlled via an Arduino Nano, along with an nRF24 breakout that allows it to receive signals from a radio transmitter unit. The build includes LED lighting as well as a piezo buzzer for all the beeps and boops. It can also take advantage of various sensors if necessary.

  • PoE FeatherWing Brings PoE, Unique MAC Address to Adafruit Feather Boards (Crowdfunding)

    After the launch of Microchip SAMA5 powered Giant Board last year, Silicognition LLC (Patrick Van Oosterwijck) is back with another Adafruit Feather compatible board. PoE FeatherWing is an expansion board that adds PoE support to Adafruit Feather board and can handle up to 4 Watts of power. The expansion board also comes with a built-in globally unique MAC address. It’s similar to the official Ethernet FeatherWing, but with the addition of PoE and a unique MAC address. [...] Since the board re-uses the same WIZnet W5500 Ethernet controller, it is fully compatible with existing software written for the Adafruit Ethernet FeatherWing meaning it can easily be programmed with Arduino or CircuitPuthong using standard libraries.

  • Tiny modules unlock i.MX8M Mini and Nano

    Keith & Koep’s Linux-friendly 48 x 32mm “Myon II” and “Myon II Nano” modules feature the i.MX8M Mini and Nano with 8GB and 4GB LPDDR4, respectively, along with eMMC expansion, GbE, MIPI-DSI and -CSI, and up to -40 to 85°C support. Germany-based Keith & Koep has added two new members to its 48 x 32 x 4.2mm Myon family of compute modules. While the Myon I runs Linux on a Snapdragon 4.0, the pin-compatible Myon II and Myon II Nano integrate NXP’s i.MX8M Mini and i.MX8M Nano, respectively. The company previously showcased the i.MX8M Mini in its larger, SODIMM-style Trizeps VIII Mini, which was announced last year along with an i.MX8M-based Trizeps VIII module. [...] Since Keith & Koep does not post press releases, we are not sure when the Myon II arrived, but they are listed as “new” and we have yet to see any coverage of the modules. Both the Myon II and Myon II Nano support Linux Kernel 4.14, Android 9, and Windows 10 IoT Core.

  • Librem 5 Dogwood Update 3

    The battery shipping with dogwood is 3600mAh, roughly 80% more battery than previous batches. Combined with early kernel optimizations usage is now measured in multiple hours, and with additional kernel work will continue to see leaps forward. A diffuser has been added between the screen and the indicator light. This makes notifications easier to notice at extreme viewing angles and overall better appearance. The volume buttons have become a volume rocker increasing usability. In previous versions, the headphone jack was recessed and not centered. In Dogwood it’s now flush with the top of the phone and centered in the frame.

Linux Kernel and the Linux Foundation: x86-64 micro-architecture, NVMe ZNS and Community Specification

  • Linux Might Pursue x86_64 Micro-Architecture Feature Levels

    Stemming from the recent GNU glibc work on better handling modern CPU optimizations with newer instruction set extensions across Intel and AMD product families, the concept of x86-64 micro-architecture feature levels is being talked about by open-source/Linux developers. The idea of these feature levels is breaking up the supported instructions beyond base x86_64 into that of what is supported at reasonable times by both Intel and AMD processors. While newer Intel/AMD CPUs generally support more instruction set extensions, there are other headaches involved in the current handling of x86_64 CPU capabilities considering the likes of modern Intel Atom CPUs only supporting a sub-set of the extensions supported by Core and Xeon CPUs, thus coming up with these reasonably sane feature levels is being talked about by Red Hat developers with input from Intel and AMD engineers.

  • NVMe ZNS Support Coming To Linux 5.9

    NVMe ZNS is for the Zoned Namespaces support that is part of the NVMe 2.0 specification debuting in H2'2020. ZNS is similar to existing SMR (Shingled Magnetic Recording) and ZBC (Zoned Block Commands) with allowing applications/software to control the placement of data on the NVMe SSD within zones rather than relying upon the SSD device exclusively for data placement. NVMe ZNS aims to improve solid-state drive lifetime with reducing write amplification, reducing latency, improving throughput, and potential TCO benefits.

  •        
  • Linux Foundation launches Community Specification for creating standards and specifications [Ed: This misses the point that the Linux Foundation outsourced this to Microsoft (Github) proprietary software and monopoly]

    According to the Linux Foundation, Open Standards are “specifications made available to the public, developed, and maintained via an inclusive, collaborative, transparent, and consensus-driven process.” These standards allow for interoperability and data exchange among different products or services.  The Linux Foundation believes it’s important to have a standards project because items like due process, balance, inclusiveness, and intellectual property clarity are important for developing open-source projects, and a standards project ensures there aren’t any surprises regarding intellectual property down the line.  “The Community Specification builds on these best practices and brings them to the Git repository development environments that developers are already using. And it makes it easy to get started. You can start using the Community Specification by bringing its terms into your repository and getting to work — just like starting an open source project,” the Linux Foundation wrote.

Python Programming

  • The Real Python Podcast – Episode #17: Linear Programming, PySimpleGUI, and More

    Are you familiar with linear programming, and how it can be used to solve resource optimization problems? Would you like to free your Python code from a clunky command line and start making convenient graphical interfaces for your users? This week on the show, David Amos is back with another batch of PyCoder's Weekly articles and projects.

  • Managing Python Environments with direnv and pyenv
  • wxPython by Example – Creating a wx.Notebook (Video)

    In this tutorial, you will learn how to add a wx.Notebook to your GUI application using wxPython. The notebook widget is how you would add a tabbed interface to your application.

  • 12+ Free (or Low-Cost) Websites to Empower Your Programming Education

    Although we still talk about programming as a standalone career, the dominance of technology in our lives makes it clear that coding is much more than a career path. In my opinion, computer science is more than a college major or a high-paid job - it’s a skill, essential for thriving in a modern-day economy. Regardless of what you want to do for a living - work in healthcare, marketing, business, or other fields - you will see more coding and have to deal with the growing number of technologies throughout your entire life. Now that we live in a tech-driven world, asking “Should I learn to program” is almost synonymous with “Should I learn to speak, read, or count?”. The short answer is: yes. How to start your journey in coding? The good news is, there are plenty of resources to support you all the way through. To save you the trouble of looking them up and choosing the right ones, I created my list of learning platforms that offer well-rounded programming education and help you stay competitive on the job market. Here are 12+ useful educational resources every coding student should check out.

  • A Hundred Days of Code, Day 003 - Methods

    My understanding about methods? They are functions in classes that help me manipulate the data the objects contain when they are created. I have been using something them subconsciously all along. The __init__ method, that is called/run automatically every time an object is created.

  • Another try at a new Python module for OpenPGP aka johnnycanencrypt

    Using OpenPGP from Python is a pain. There are various documentation/notes on the Internet explaining why, including the famous one from isis agora lovecraft where they explained why they changed the module name to pretty_bad_protocol. sequoia-pgp is a Rust project to do OpenPGP from scratch in Rust, and as library first approach. You can see the status page to see how much work is already done. Using this and Pyo3 project I started writing an experimental Python module for OpenPGP called Johnny Can Encrypt.

  • PSF GSoC students blogs: Weekly Check-in #4

today's howtos