Running Moksha under Sabayon

4 November 2015 HOWTOs, Installation guides, Overviews No comments

Moksha running under Sabayon

Moksha (theme: Moksha Radiance, wallpaper: 1366×768 calculate-dm 15) running under Sabayon

Moksha (pronounced: MOK-sha) is a free fork of Enlightenment 17 (E17), that is the default desktop environment of the lightweight Ubuntu (LTS) derivative, Bodhi Linux (BL). Its development began in 2015, when dissatisfied by the high resource usage and loss of features of the later Enlightenment releases, E18 and E19, Jeff Hoogland, the lead developer of Bodhi Linux, decided to fork E17 for BL.1 E19, for example, uses more RAM than LXDE even though E17 and Moksha use less RAM than LXDE and all other complete desktop environments that I am aware of (see Desktop environments and Sabayon for details). Its first stable release (version 0.1.0) was made on the 7th of August 2015.

While Moksha is pre-installed on later Bodhi Linux releases, it is not yet available as an official binary package, ebuild or PKGBUILD for any other Linux distribution, which means, of course, that if you wish to install it on other distributions you are left with really just one option: to compile it manually from source code and then install it yourself. Although, I have successfully made my own PKGBUILD for e_dbus-1.7.10 and moksha-0.1.0 and they can be found here. I have also (unsuccessfully) attempted to create an ebuild for Moksha, which can be found here, see it keeps giving me access violation errors related to /usr/bin/efreetd trying to create a directory /run/user/1000/.ecore. If you are interested in helping me fix this problem, feel free to email me at, or start a pull request at GitHub. Fortunately, Jeff Hoogland along with other members of the Bodhi Linux community, are more than willing to help users of other distributions install and then customize Moksha to their liking, they even have their own forum specifically for such questions.

This blog post will walk you through the process of installing Moksha, getting it ready for easy use, getting modules you want and otherwise customizing it to your liking.


The following script should install Moksha for you, simply copy it into a shell script called “” (the name does not really matter, you could alternatively download from my GitHub repository), make it executable (run user $  chmod +x and then run it with ./ This script is specifically designed to install Moksha on a freshly-installed Sabayon Spinbase machine, which is why its dependency-installing lines are so long. It is also worthwhile noting that this script uses the minimum of bandwidth to get the source code, because alternatively, if bandwidth is not a limitation, the wget lines (line #4-5) can be replaced with


of all the steps in this script, the running of ./ --prefix=/usr is probably the most likely to return errors, which are usually related to missing dependencies. If you get an error from this step, please take note of the error and when asking for support be sure to include it, as odds are it will tell you everything you need to know in order to overcome the error.


The settings menu

The settings menu

Several aspects of Moksha can be customized. Most such customization, must be done from graphical user interfaces (GUIs), as opposed to from the command-line or via editing text files. Customization options, accessible via a GUI can be found under the “Settings” section of the menu that appears on click-clicking the desktop or the start gadget.

Application Menus

Click Menu Settings

Select Menu Settings

Go to Settings→All→Input→Menu→Menu Settings to change your application menus.

Select your Menus. See for example I have selected my LXDE application menu

Select your application menu

Desktop Backgrounds

Click Picture

Click Picture to set a picture on your computer as your desktop background.

To change your desktop background go to Settings→Wallpaper, press “Picture” and choose a picture on your computer to be your wallpaper. If you have problems changing your desktop background, I recommend changing the permissions of ~/.e/e/backgrounds with:

user $  chmod 777 -R ~/.e/e/backgrounds

and trying again.

Keyboard Shortcuts

Click Key Bindings

Select “Key Bindings”

Go to Settings→All→Input→Key Bindings and select your key bindings in the window below. To create a new program launcher click “Add”, press what keys you want in the shortcut, then go to Launch→Command and type in what command launches the program. Then press “Apply”. For example, for qBittorrent, I use the Alt+Q keyboard shortcut. The command I use to launch it is qbittorrent %U.

Choose your Key Bindings

Select your key bindings


Click 'Load' to load a module and 'Unload' to unload it.

Choose which modules you load or unload.

There are several modules you can load under Moksha, which all add functionalities to Moksha. To choose which are loaded and which are not go to Settings→Modules, in order to open the window shown above. There are also several modules maintained by Jeff Hoogland that are specifically designed for Moksha. They are found in Hoogland’s moksha-modules-extra GitHub repository. To download them and install them all with the minimum of bandwidth used, I recommend you use this script:


Use this window to add or remove shelves from Moksha

You can add new shelves with this dialogue and delete existing ones. In order to customize existing shelves go to “Contents” or “Settings”.

In order to customize your shelves (which can look like task bars or docks, depending on how they are set up) go to Settings→Shelves.


To set your theme go to Settings->Theme and select your theme from the menu that appears.

To set your theme go to Settings→Theme and select your theme from the menu that appears.

One of the most important customization, in my opinion, is to install the theme you want. To add a new theme, I recommend you add the following to your ~/.bashrc script:
then run:

user $  source ~/.bashrc


user $  theme <THEME>

where <THEME> is the Moksha theme you want. To find a theme you want I advise you go here. After you have installed the theme, you still have to set it as your current theme. The default Moksha theme of Bodhi Linux is Moksha Radiance, to get install it run:

user $  theme MokshaRadiance

. You can also change the GTK+ and icon themes used by programs running under Moksha by going to Settings→All→Look→Application Theme.

External links


An Introduction to Bash Scripting on Sabayon

31 October 2015 Command-line interfaces, HOWTOs, Overviews, Unix shells 1 comment

optipng 0.7.5 running under Bash 4.3.39 in LXTerminal 0.2.0

OptiPNG 0.7.5 running under Bash 4.3.39 in LXTerminal 0.2.0


  • Links to Wiki articles are provided in this post for those that wish to learn more, but it is important to note that I cannot guarantee their accuracy.

Bash, also known as the Bourne-again shell, is a Unix shell and command language, that is developed as part of the GNU Project. Along with the Linux kernel and package management system, I would rank Bash as one of the three most important components of a Sabayon Linux system. Without it or some other Unix shell in its place, one’s ability to interact one’s system would be very limited and difficult.

It was originally developed by Brian J. Fox in 1989 and has since become the most widely used Unix shell, with the vast majority of Linux distributions using it as their default command shell (only notable exception I have come across is Deepin, which uses Zsh) and since the release of 10.3 in October 2003 is has replaced tcsh as the default command shell for OS X.

In this post I will give some necessary background on Bash and its predecessor, the Bourne shell, as well as some basic scripting in Bash, some applications, etc. It is important to remember I am not an expert at Bash or Bash scripting, I have even had doubts I could even write an entire post on Bash scripting. It is important to note too that this post is nowhere near comprehensive on this topic, as the only type of text I, or anyone, could write that would be comprehensive on this topic would be an entire several-hundred page book, not a dozen-or-so-page blog post. This post just gives you some of the tools to do many of the basic things a novice or intermediate user of Sabayon would like to be able to do with Bash.


Brian J. Fox (1959-), the original developer of Bash

Brian J. Fox (1959-), the original developer of Bash

The development of Bash began in January 1988, when Richard Stallman, the founder of the GNU Project and the Free Software Foundation (FSF), became dissatisfied with the previous author of the GNU shell’s failure to meet the required deadlines and decided, instead, to get FSF staff member, Brian J. Fox to write a free imitation of the Bourne Shell.1 Later in June 1989, the first public release of Bash was made, 0.99 (which was a beta release) and until mid 1992 (when Bash 1.12 was released), Fox remained the lead developer of Bash.2 When Fox left the FSF in mid 1992, Chet Ramey took over responsibility for Bash’s development, which he has kept to this very day.3

Other Unix Shells

The Bourne Shell was one of the first official Unix shells to be developed and was first developed in 1977. I am using the phrasing “official Unix shells”, to draw attention to the fact that the Bourne Shell was developed at Bell Labs for use by Research Unix, which was the original Unix system. The Bourne Shell is named after Stephen Bourne, its original developer.

While Bash was originally developed as a free “imitation” of the Bourne Shell, it also has features that it borrows from other Unix shells: including the C shell and the Korn shell. The C shell (csh) is a Unix shell that was originally developed by Bill Joy — the author of the Vi text editor (which is a direct ancestor of Vim) and was first released in 1978 (and is still under active development today). Its chief distinguishing feature is that its syntax is similar to that of the C programming language. A notable descendent of C shell that is also widely used today, is tcsh (the TENEX C Shell), which before release 10.3 was the default shell of OS X. The Korn shell (ksh) was one of the Unix shells developed at Bell Labs for Research Unix, although unlike most other of the original Unix shells it is still under active development today.

Along with these shells, another free Unix shell that has gained notoriety, that I feel is worthwhile mentioning is the Z shell (Zsh). Zsh was first released by Paul Falstad in 1990 and at the time Falstad was a student at Princeton University. Since then Zsh’s development has become coordinated by Peter Stephenson. What is notable about Zsh, is how feature-packed it is. It has many of the same features as Bash, but it also has spelling-correction, easier customizability and a few other features that Bash lacks.

All free Unix shells that are available for Gentoo or Sabayon systems are located in the category of app-shells within the Entropy Store, Portage Tree and Gentoo Portage Overlays. To show them all from the command-line run:

user $  eix -C -c “app-shells”

Changing Unix Shells

On Unix/Unix-like platforms it is possible to change your login shell using the chsh command. For example, to change your login shell to Zsh (assuming it is installed), run:

user $  chsh -s /bin/zsh

and then reboot.


A natural question, that is asked by everyone, that is introduced to Unix shells, is “What is a Unix shell, exactly?” While this question sounds simple and straightforward, the answer is difficult to put into words, without it being either too generalized and vague, or too focused on specific examples. So I am going to air on the side of generalization and say that a Unix shell, is a command-line interpreter (CLI) that provides a familiar interface by which users can interact with the Unix4 system. Take the example of Bash, which is started whenever you open up a terminal emulator (TEE) or start tty1 (with Ctrl+Alt+F1) within most Linux systems, provided you have not set your default shell to something other than Bash. It interprets every command you type into the TEE or tty1 and can make changes to your system, accordingly. On most Linux systems, Unix shells are stored in the file directory /bin. You can list them all by issuing the command:

root #  cat /etc/shells

for me, for example, on my Sabayon machine this gives the output:

Bash and other Unix shells, have their own unique syntax or language (that is, how commands are passed onto Bash and other Unix shells), although most text editors (TEs) group all shell scripting languages together and call their collective syntax or language, “Shell script” or even just “sh”. Examples of such TEs include: Atom, gedit and SciTE. They can do this without a problem in most cases because Unix shells share quite a lot of their syntax with one another.

Another important concept, for one to understand in order for the rest of this post to make any sort of sense, is that of a script. Scripts are programs that can be interpreted from within a run-time environment (RTE) and they automate the execution of tasks that would otherwise have to be performed manually, one-by-one, by a human operator. In the case of shell scripts, including Bash scripts, the RTE in which the script is interpreted is the Unix shell.

Bash and Files

Bash scripts usually have the file extension of .sh, although some have no file extension. When Bash is started as an interactive, non-login shell (for example, from within a TEE) it first reads ~/.bashrc. When it is started as an interactive, login shell (like when it is started within tty1) it first reads /etc/profile, ~/.bash_profile, ~/.bash_login and ~/.profile. Commands executed in Bash are also recorded in ~/.bash_history. Commands interpreted by Bash are case-sensitive.

Basic Syntax

The Bash syntax has several distinct components, which can be classed as keywords and special characters, bulletins, variables, functions, tests and conditionals.

Keywords and Special Characters

Keywords and special characters (KSCs) are an important concept to understand, they are words, or symbols, that have a special, set meaning when scripting in Bash. Examples are listed in Table 1.

Table 1: Some Keywords and Special Characters Permitted in Bash
KSC Meaning, or usage Example(s)
Used to define functions. Curly braces can also be used to just group lines of code together.
Used for tests, double square brackets are only available in more advanced Unix shells such as Bash, ksh and Zsh.
tests whether the input variable, $1 exists.
# Whatever follows is interpreted by Bash, as a comment, for human operators to read but to be left uninterpreted by Bash.
! Returns the reciprocal (opposite) or negates of what follows it.
(which returns 0 (true) if the variable X does not equal 3, or 1 if it is equal to 3).
$ Evaluates what comes after it, such as a mathematical expression in double square brackets. echo $[3 * 2] returns 6.
| This is called a pipe and it sends the output of a command through another. For example, A | B does A and sends its output through B. The following example downloads the source code tarball of the 1.1.0 release of Atom and pipes it through tar and gzip to decompress it.5
; Allows several commands to be executed on the same line.
~ Denotes the home directory. For example, as my username is fusion809 on my Sabayon machine, my home directory is /home/fusion809.
takes one to current user’s home directory. If it is run as root it will take one to one’s /root.
- Can be used as the arithmetic operator, minus, or as the previous working directory.
takes one to one’s previous working directory.
* Wildcard operator, can take on any value. Can also be used for multiplication. If you have a directory, ~/VirtualBox on your machine and no others starting with the prefix ~/Virtual then:

should change your current working directory to ~/VirtualBox.
. Serves as an equivalent to the source bulletin and as an equivalent to pwd As source (the following will execute every file with the extension .sh in the ~/Shell directory):

whereas as pwd:

which causes no change in current directory.
.. Denotes the parent directory If I am working in the ~/Shell directory, and run:

my present working directory (pwd) would then be ~, my home directory.
&& Executes subsequent commands, provided the preceding command(s) were executed without error. For example, A && B does A and then B, provided that A is executed without error. While A && B && C would do A, then if A returns no error, it would perform B and if A and B ran without error it would then run C.
Conditional statement, checking whether inputs match. case starts them and esac ends them.
Used in for loops. for begins the loop, do enacts commands and done and finishes the loop.
Used in if conditionals.
in Used when dealing with lists This script should, if passed an argument open Atom to ~/Shell/$, otherwise ask the user to select from the list of shell scripts in ~/Shell of which one to open in Atom.
select Gets users to select from a list of options.

until, while and time are some other keywords that are not mentioned there, as I do not know enough about them to really comment on them. Keywords can be used as variables but I would not advise this, as this can quite easily become confusing.


Bash variables are defined using equal signs. They can be made global (making them available for all processes) or local (making them available just for the script at hand). Local variables are defined by just using an equal sign, for example:


while to define this variable globally, one would run:

export PYTHONPATH=/usr/bin/python


Several Bash commands (or bulletins) exist and some (but by no stretch of the imagination all — I do not even understand them all!) basic ones are explained in Table 2. It is worthwhile noting that all these commands are purely Bash commands, by this I mean, they do not call any command-line programs to do their work for them. See many commands you will see in Bash scripts are not Bash commands, per se, rather they are commands that use another command-line program such as mv or pwd to do the work, but they can be run from within Bash. Many of these programs are also borrowed from the GNU Project, namely its core utilities package (sys-apps/coreutils) and are stored in either /usr/bin/ or /bin/, directories.

Table 2: Some Basic Bulletins
Command Meaning Examples Manpage (HTML)
alias Set a synonym for a command or function alias.1p.html
cd Change directory.
changes one’s directory to /home/username/Documents.
date Outputs the date. Inputs/variables can be used to set the timezone and the format of the date given. This gives my local date and time in my preferred format:
export Set variables provided to it as environment, or global, variables. export.1p.html
history Outputs Bash history.
should show the last ten commands executed with Bash.
source Execute script(s) provided to it.
runs the ~/.bashrc script.


Tests are essential for conditionals. As their name suggests, they test to see whether or not a condition is satisfied. If the condition is satisfied they return 0, while if the condition is unsatisfied they return 1. Square brackets (which are a bulletin, by-the-way), [...], are used for tests, although double square brackets ([[...]]) can also be used for this purpose since Bash 2.02. The difference, from what I can tell, between single and double square brackets is that double square brackets allow one to perform more advanced tests than single square brackets. Single square brackets are also POSIX compliant and are found on all Unix shells.6


In Bash scripts conditionals use the output of a test and perform an action accordingly. Conditionals usually involve at least one of the following keywords: case, if, else, elseif and fi.


Functions are essentially convenient ways we can group pieces of code together, so as to give them order and make them more logical. Quite often functions are designed to take input and use it to generate an output, or to perform a task, although some functions require no input. All Bash functions share two main things in common: the use of the word “function” and the fact the function’s contents are contained within curly braces {...}.


Loops (which involve the for keyword), in Bash scripts, are used to automate the performing of tedious tasks that are sufficiently similar to one another.


Selectors (marked by the select keyword) gives users choices as to which input(s) the rest of the selector block uses.


The primary value of Bash scripts is to automate tasks that would otherwise have to be done, over a longer time-frame by a human operator. I personally use shell scripts to make my life, when I am at the command-line, easier.

In my ~/.bashrc file I have links to several shell scripts stored in my ~/Shell directory. Both my ~/.bashrc and the shell scripts in my ~/Shell directory can be found at this GitHub repository. Here is my current ~/.bashrc file:7

I have at least three dozen functions I have defined in shell scripts located in the ~/Shell directory, but here I will mention some of the more interesting, or useful ones for Sabayon users, in general.

Interesting Scripts8

You may have noticed that I am hosting HTML versions of several Linux man pages within the /man subdomain of this blog. I generate them using a function contained within ~/Shell/ called manhtml. For example, to generate emerge.1.html I ran user $  manhtml 1 emerge. Here are the contents of ~/Shell/ (showing all the contents as manhtml depends on other functions to work):

while here is a function I created to help me install Moksha themes (it appears differently in my ~/Shell/ file, as this form is mostly to walk you through how it works):

to install a new Moksha theme you would run user $  theme <THEME> where <THEME> is, of course, the theme’s name (how they appear in their respective GitHub repo’s URL).

Useful Functions for Sabayon Users

The following are some functions that, depending on how you operate on Sabayon, may be helpful.


The following are taken from ~/Shell/ and they are functions (with aliases for said functions) that essentially automate some common actions one may perform with Entropy. They are not all the lines of code in, they merely represent some of the more commonly-used codes. It is important to note some of these functions need not be defined as functions, they could instead be defined as aliases (using alias NAME=CODE where NAME is the function’s name and CODE is what is between the curly brackets).


Here are some lines from my script.

Free Help Resources

Further Reading

NOTE: All the following links are to free PDFs


  1. Source: email from 1987
  2. Source: Chet Ramey’s Scribd document
  3. Source: Bash Webpage
  4. Or Unix-like, in the case of Linux distributions such as Sabayon
  5. Note, I previously did not know how to pipe the output of wget through tar until I asked this question at Unix & Linux StackExchange. The defining of an ATOM variable (instead of just combining it into the second line) is mostly just for space restrictions within this table
  6. Source: Server Fault
  7. The for loop I got from the answers to this question at Unix & Linux SE
  8. Which is in the eye of the beholder of course, you may not find these interesting at all
  9. Its general topic is programming, so it is suitable for shell script-related questions. I have asked two questions there relating to shell script, as of 31 October 2015, both were resolved within an hour.
  10. As of 31 October 2015 I have asked 8 questions relating to shell scripts there and seven have been answered. Each of those that have been answered were resolved (that is, given an answer that solved whatever problem I had) within a day of me asking them.

Text Editors for Sabayon

23 October 2015 Comparisons, Text editors 3 comments

Figure 1: Atom on Sabayon Linux, showing syntax highlighting of a PHP script

Atom running on Sabayon Linux, showing syntax highlighting of a PHP script

Text editors are essential programs for software developers and programmers in general, as they enable users to write and edit source code files. They are popular tools used by both experienced and novice Linux users. In this post I will compare the various text editors available for Sabayon, with regard to several features and properties of each. It is important to note that I am not a programmer, my experience with programming is limited to mostly MATLAB/GNU Octave scripts, a small handful of Python scripts I wrote for technical computing (that is, numerical analysis) and a few bash scripts I have written to make my life easier, when I use Linux systems.

On Sabayon there are over a dozen different text editors (see, for example, the category app-editors at available for installation, many of these are part of the core applications of complete desktop environments, such as GNOME or KDE Plasma. Each of these text editors also has its own target audience, with some being designed to be used only by seasoned programmers while others are useful only for writing simple text files. Entropy and Portage both use the category for programs relating to text editing of app-editors. To list the Entropy packages in this category, from the command-line, run:

user $  equo search “app-editors”

While to list ebuilds in installed overlays, plus the Portage tree, within the category of app-editors run:

user $  emerge –search “%@^app-editors”

To search all overlays run:

user $  eix-update && eix-remote update && eix -RCc “app-editors”

This post will compare several different text editors that are available for Sabayon (I know as I have installed them all myself), with respect to several aspects.


An ideal or perfect text editor would be one with the following features:

  • Syntax highlighting for every computer language available (computer language includes programming languages (such as C, C++, JavaScript, Lua, Python, etc.), markup languages (such as HTML), style sheet languages (like CSS), etc.)
  • Be extensively customizable (or some would say “hackable”), with user-supplied scripts and style sheets.
  • Be accessible to inexperienced users and experienced users alike.
  • Be free and open-source (licensed under either a permissive (e.g., MIT) or copyleft (e.g., GNU GPL) license).
  • Be able to run on any operating system platform.
  • Has keyboard shortcuts (such as Ctrl+C for copy or Ctrl+V for paste) that are intuitive and easily editable.
  • Be fast to start and use minimal system resources to run.
  • Be stable, not likely to crash or experience other bugs. As part of this, the text editor should also have a community of developers to help with rapid and effective troubleshooting whenever an issue arises.

In line with this, each section in which I discuss a particular text editor (TE) will have the following sections:

  • Background: relevant history and technical details of the TE.
  • Customizability: How customizable is the TE. Are there themes, plugins, extensions, etc. available for the TE?  Is it possible to customize the TE with user-supplied scripts.
  • Features: What other features does the TE have? Like how many different computer languages does it offer syntax highlighting and auto-indentation for.
  • Obtaining it: how can one get the TE on Sabayon?
  • Advantages (Pros)/Disadvantages (Cons): this is where I will summarize the positive and negative points of the previous sections as well as discuss how easy it is to use the TE.
  • Ratings: this is where I provide a numerical rating for each of the following points (from 0 to 10, 0 being awful/non-existent, 10 being perfect):
    • Availability: how easy it is to get the TE on Sabayon. A score of 10 would mean that the text editor is pre-installed on a default Sabayon installation. While a score of 8 would mean that it is possible to install the package quite easily with Entropy.
    • Beginner-friendliness: how steep is the learning curve of using this TE? That is, how difficult would it be for me, a non-programmer, to get to know this TE enough to write scripts in it, within an hour of first trying it?
    • Customizability: how easily and extensively customizable the TE is.
    • Features: how extensive is the TE’s syntax-highlighting cover of computer languages (that is, what proportion of computer languages can the TE do syntax highlighting for?). Does the TE also have IDE-type features such as in-built Python terminal, or shell terminal, etc?
    • Popularity: how popular is this TE amongst Sabayon users? According to this poll. I will use just a numerical rating, as I expect this poll will likely get a few extra votes while I am writing this post.
    • System resource usage (SRU): how much CPU/RAM does this TE use? How much disk space does it take up? How much brandwidth is taken up downloading it? Yet again I will be using ps mem to assess RAM usage.
    • Overall: overall how satisfied am I with this TE?


Atom on Sabayon Linux, showing syntax highlighting of a PHP script

Atom on Sabayon Linux, showing syntax highlighting of a PHP script


Atom is a free and open-source (licensed under MIT) text editor developed by GitHub, Inc. Its first public release was in 2014, although its first stable release (1.0 release) was not until June 2015. It is unique amongst the text editors listed here in a few different ways, firstly, its target audience is very wide with it being designed to be usable for inexperienced programmers as well as seasoned programmers and software developers. Secondly, it is written in CoffeeScript, HTML, JavaScript and Less — computer languages usually used to write web pages.


Atom is very customizable, via several themes and plugins that can be installed from the command-line, using the command

user $  apm install <PACKAGE>

or from within Atom itself. I personally prefer the command-line, as I have had some bad experiences with the built-in installer. From the command-line the command for installing new themes or plugins is:

user $  apm install <PACKAGE>

where <PACKAGE> is the plugin/theme’s name. Customizations, including plugins and themes are stored in ~/.atom. Advanced customization (for example, of keyboard shortcuts) must be done by directly editing files in this directory. For example, in order to edit your keyboard shortcuts you need to edit ~/.atom/keymap.cson.


Atom has plugins for syntax highlighting and auto-indentation of most major computer languages including:

  • Ada
  • C
  • C#
  • C++
  • CoffeeScript
  • CSS
  • Fortran
  • GNU Octave/MATLAB
  • HTML
  • Java
  • JavaScript
  • Less
  • Lua
  • MediaWiki
  • PyMOL
  • Python
  • R
  • SageMath
  • Scilab
  • Shell script, including Bash and Zsh.
  • XML

and several others. It also has packages that provide other features, including previews for markup languages such as HTML and markdown, an in-built terminal, etc.

Obtaining it

Atom can be installed via two major methods: either adding an overlay with Layman that contains an Atom ebuild and then installing this package with Portage or manually building the program from source code. I usually prefer the manual route as any momentary glitch in your internet connection can easily stuff up an Portage build, while with a manual build it is no big deal if it does as you can just re-run script/build and then proceed with the installation as usual. If you would rather install Atom from a binary package (experimental) go to this GitHub repository and see the instructions there.

Disadvantages (Cons)

  • Slow to start
  • Must be installed via one of two fairly error-prone methods, or a third experimental method.

Advantages (Pros)

  • Easily and extensively customizable
  • Intuitive and easy to learn
  • Support for a wide range of different computer languages
  • Displays directory structure in (left) side panel


  • Availability: 3-4. It is possible to install Atom on Sabayon, but it is more error-prone than it is on more popular distributions like Debian, Fedora, openSUSE and Ubuntu, which have pre-compiled binary packages available on the Atom website.
  • Beginner-friendliness: ≥8. It is easy to get to used for beginners, as it uses the keymap as several basic text editors like gedit and Notepad.
  • Customizability: 8. It is totally customizable, for those with the skill and time. For lay persons its customizability is more limited, to customization with available packages and themes.
  • Features: 8. Most computer languages are covered by Atom’s syntax highlighting plugins, but some are not, for example, it does not yet have support for desktop configuration files.
  • Popularity: ≥8. While this text editor is new, its popularity on Sabayon is fairly high and increasing.
  • SRU: 2. Atom 1.0.19 is a 59.4 MB download, when it is installed it takes up a total space of 196.2 MB. Here is my ps mem table for running under LXDE:
  • Overall: 7-9. It is my favourite text editor, but it is still early days, its SRU and boot time are issues that are being worked on, new packages and themes are created every week. It may become easier to install it on Sabayon, in the future, perhaps in response to my request that Atom be added to the Sabayon overlay.



Figure 2: Bluefish running under LXDE

Bluefish running under LXDE


Bluefish is a text editor, primarily intended for web development and programming, as it provides syntax highlighting support and other features mostly for web markup, programming and style sheet languages.


I have limited experience with Bluefish but from what I can gather, it is customizable, although I cannot comment on how extensive this customizability is.


Syntax highlighting is available for almost (if not all) all computer languages used in web development.

Obtaining it

It can be installed with Entropy or Portage (and is available in the Portage Tree). With Entropy run:

root #  equo i -av app-editors/bluefish

While to install it with Portage run:

root #  emerge -av app-editors/bluefish

Advantages (Pros)

  • Customizable
  • Has features that would appeal to a web developer

Disadvantages (Cons)

  • ?


  • Availability: >8. Available in the Entropy Store and from Portage
  • Beginner-friendliness: >4. Its keyboard shortcuts are intuitive (e.g., Ctrl+C to copy), behind this my experience with it is not extensive enough for me to comment.
  • Customizability: >4. It is customizable, but as I do not have much experience with this text editor, I do not know just how customizable it is.
  • Features: >7. It is possible to do compiling and use integrated development environment (IDE)-type features.
  • Popularity: 2. It has received one vote on my poll, thus far.
  • SRU: 5. Bluefish (2.2.7) is a 3.1 MB download with Entropy and takes up 9.5 MB HDD space when installed. This is my ps mem table:
  • Overall: ~7. Cannot be too confident as to this rating without using this text editor more.



Geany 1.24.1 running under Moksha

Geany 1.24.1 running under Moksha


Geany is a lightweight GTK+ and Scintilla-based text editor with basic IDE-type features that was originally developed by Enrico Tröger in 2005. It is licensed under GNU GPLv2.


The ~/.geany directory is where customizations are kept. This customization can be made with code snippets (written in HTML, LaTeX, PHP and Python), plugins, themes, etc.


Geany provides auto-indentation and syntax-highlighting for over a dozen different computer languages. Geany has an embedded terminal emulator. Several extra features can be added to Geany, using plugins.

Obtaining it

Geany can be easily installed using Entropy or Portage. Using Entropy run:

root #  equo i geany

while to install it using Portage run:

root #  emerge -av geany

The latest version of Geany in the Entropy Store is 1.24.1, while the latest version of Geany as of 24 October 2015 is 1.25 (released July 2015) which is available from the Portage Tree.

Disadvantages (Cons)

    • The list of supported computer languages, for syntax-highlighting and other features is fairly small, compared to Atom, Gedit, GNU Emacs and Vim. See for example, the screenshot below, showing allowed file types.

Geany Document->File Type->Programming Languages

  • The version of Geany in the Entropy Store is not the latest available

Advantages (Pros)

  • It has a few IDE-type features.
  • It is fairly lightweight.
  • It is cross-platform, hence if you switch from Sabayon to another OS fairly frequently, it should not be too difficult to get Geany on said OS.
  • Keyboard shortcuts are fairly intuitive.


  • Availability: 7-8. I am rating it a little lower than 8, as the latest version in the Entropy Store is not the latest, even though the latest has been available for three months, thus far.
  • Beginner-friendliness: 8. It seems fairly user-friendly, as its keyboard shortcuts are fairly intuitive.
  • Customizability: 7? My experience with this TE is too limited for me to be confident with this rating.
  • Features: 8.
  • Popularity: 5-7.
  • SRU: 8. Geany 1.24.1 is a 3.4 MB download and takes up 9.8 MB HDD space when installed. Here is my ps mem table (remember I have neglected to include the RAM used by the embedded terminal emulator):
  • Overall: 8. Seems fairly good.



gedit running under Moksha

gedit running under Moksha


gedit is a GTK+ based text editor that is one of the core applications of GNOME. In my opinion, it is the second most advanced text editor (after Kate) that is part of a desktop environment’s core application suite. It is also more advanced than Windows’ Notepad and Wordpad text editors.


gedit is able to be customized, although from what I have gathered from reading its Wiki, customization options are limited as it does not seem to support advanced customization (via editing configure files, for example), rather there are some themes and plugins available but the plugins seem fairly limited.


It supports syntax highlighting of several computer languages, including Desktop Configuration files (.desktop or .directory), MATLAB, MediaWiki, GNU Octave, Scilab and shell script, just to name a few I know are absent in a few basic text editors. Although it does not support syntax highlighting for PyMOL or SageMath, so I would not say its syntax highlighting is as extensive as Atom’s or Vim’s.

Obtaining it

It is easy to obtain gedit on Sabayon, via either Entropy or Portage (and yes it is available in the Portage Tree). If I am not mistaken, gedit comes with a default installation of Sabayon GNOME edition. To install it using Entropy on an existing Sabayon machine, simply run (you can omit the -av options, if you are sure gedit is not already installed on your system, I am using these options in case it is and you are not aware of it):

root #  equo i -av app-editors/gedit

Alternatively to install it using Portage run:

root #  emerge -av app-editors/gedit

Disadvantages (Cons)

  • Customization options, beyond with a limited set of available themes and plugins, are limited.
  • Fairly light on features, beyond syntax highlighting

Advantages (Pros)

  • Light on resources
  • Easy to obtain on Sabayon


  • Availability: >8.
  • Beginner-friendliness: >8.
  • Customizability: 6.
  • Features: 8.
  • Popularity: ~7.
  • SRU: 7. Its Entropy package (3.16.3) size is 2.4 MB, while when installed it takes up 11.5 MB HDD space. Here is my ps mem table:
  • Overall: 8.


GNU Emacs

GNU Emacs running under Moksha

GNU Emacs running under Moksha


GNU Emacs (GE) is an extensively-customizable text editor that is developed by the GNU Project. Its original developer was Richard Stallman, the founder of the GNU Project and its first release was in 1985. It belongs to a family of text editors called Emacs, which are text editors that are extensively customizable for users with sufficient programming knowledge. Emacs is abbreviated from Editor Macros, which refers to its origin as editor macros for the TECO text editor, that were developed, in part, by Richard Stallman. GE is written in C and Emacs Lisp (ELisp), a dialect of the Lisp programming language devised just for GE. ELisp is used to write extensions and provide extra functionalities for GE and related text editors like XEmacs.


GE is one of the most customizable text editors available, but much of this customization must be done via writing code in ELisp, which limits much of this customization to advanced users only.


GNU Emacs provides syntax highlighting for dozens of different computer languages, along with several features of IDEs like shell access, compiling code, using git from within GE, etc. The app-emacs Portage category contains several plugins for GNU Emacs.

Obtaining it

GNU Emacs is available from the Entropy Store and the Portage Tree. To install it with Entropy run:

root #  equo i -av app-editors/emacs

while to install it with Portage run:

root #  emerge -av app-editors/emacs

Disadvantages (Cons)

  • Has a steep learning curve for newcomers, hence making it inaccessible to newcomers to Linux and programming, in general.
  • Has an unconventional keymap, which can take some time to learn. For example, to cut text you use Ctrl+W, as opposed to the usual Ctrl+X, while to paste text you use Ctrl+Y.

Advantages (Pros)

  • Extensively customizable
  • Heavy on features, especially for advanced users that can extend it using ELisp.
  • Provides syntax highlighting for dozens, if not hundreds, of computer languages
  • Has its own Wiki, manual and other documentation.


  • Availability: >8. Readily available for installation on Sabayon.
  • Beginner-friendliness: ≤5. Not particularly difficult for a newcomer to use as a basic text editor, but any further usage requires extensive knowledge of ELisp.
  • Customizability: >9. Extensively customizable for all those that understand ELisp sufficiently.
  • Features: >9. It is one of the most feature-packed text editors available today.
  • Popularity: 6. I am actually quite surprised by its lack of popularity on Sabayon, from what I have heard it should have ranked right up there with Vim for popularity.
  • SRU: 7-8. Emacs 24.5 is a 35.8 MB download and takes up 142.2 MB HDD space when installed. Fairly lightweight as far as text editors go, RAM-wise. Here is my ps mem table:
  • Overall: 8. It is a very powerful text editor, but to me, its lack of customizability by those that do not understand ELisp is a significant disadvantage.


GNU nano

GNU nano running within LXTerminal under Moksha

GNU nano 2.4.2 running within LXTerminal under Moksha


GNU nano is a command-line text editor that is developed as part of the GNU Project. Its development began in 1999 by Chris Allegretta, as a free alternative to the proprietary Pico text editor. Later, in 2001, it officially became part of the GNU Project. Several features (like search, search and replace, save, exit, etc.) are accessed using keyboard shortcuts. It can be invoked by running the command “nano” from the command-line. nano can be passed several different options from the command-line, to see a full list see its man page (invoked by running man nano or, if you would prefer to view it in your browser, go here). Usually when I want to edit a file with nano I simply run nano <FILE> where <FILE> is the file’s name (potentially also with its path if it is not in my current directory).


I am unaware of any possible customization of nano, if you know some please do tell me in the comments of this post.


It offers syntax-highlighting, auto-indenting and miscellaneous other support for several computer languages. It also auto-detects the computer language using file extensions. It also has search functions (accessable via pressing Ctrl+W).

Obtaining it

It is fairly simple to get nano on Sabayon. Odds are it will already be installed by default on your Sabayon machine, so check to see if it is with nano (does not matter if you execute this as root or standard user). If you do not have it, you can try to install it with Entropy, via running:

root #  equo i -av app-editors/nano

alternatively, to install it with Portage, run:

root #  emerge -av app-editors/nano


  • Availability: 10.
  • Beginner-friendliness: 7. Fairly easy to get used to, but its keyboard shortcuts are not totally intuitive.
  • Customizability: 0?
  • Features: 8.
  • Popularity: 7.
  • SRU: 10. GNU nano 2.4.2 is a 0.6 MB download and takes up 1.8 MB HDD space when installed. It is incredibly light, here is my ps mem table:
  • Overall: 8. I rather like it for basic editing, but whenever I want to edit a several dozen-line file, or bigger, I usually switch to Atom as it is easier to navigate in Atom, in my experience.



jEdit 5.2.0 running under Moksha

jEdit 5.2.0 running under Moksha


jEdit is a Java-based text editor that began life in 1998, when Slava Pestov started developing it. Pestov later left the project in 2006, when he handed the reigns to the free software community. jEdit provides syntax highlighting for dozens of computer languages so far, and can be customized using scripts written in a variety of different programming languages such as JavaScript and Jython. As it is written in Java it can run on any Java-capable platform, including Sabayon.


It is extensively customizable, via scripts in supported languages. Several plugins, that provide extra functionality, are available via a built-in plugin installer (under the “Plugins” menu).


As previously mentioned auto-indentation and syntax-highlighting support exists for a long list of computer languages. Plugins with extra IDE-like capabilities also exist, including a plugin for using git from within jEdit, another for using a Jython interpreter from within jEdit, another for a Python shell, etc.

Obtaining it

On Sabayon jEdit can be installed via Entropy or Portage (from the Portage Tree, no need to add unofficial overlays for it). To install it using Entropy run:

root #  equo i -av app-editors/jedit

while to install it using Portage run:

root #  emerge -av app-editors/jedit

Disadvantages (Cons)

  • Heavy on system resources.

Advantages (Pros)

  • Easy to obtain it on Sabayon
  • Extensively customizable
  • Has intuitive keyboard shortcuts
  • Written in Java, hence can run on most platforms, if you end up switching to a new operating system in the future
  • User-friendly


  • Availability: 8.
  • Beginner-friendliness: 8. Fairly beginner-friendly, but extra functionalities beyond that available via existing plugins must be added using self-made scripts.
  • Customizability: >8. Very customizabile.
  • Features: 8. Extensive auto-indentation and syntax-highlighting support for a range of computer languages, as has some IDE features.
  • Popularity: <3. Not a single vote casted in its favour so far.
  • SRU: 3. jEdit 5.2.0 is a 2.6 MB download and takes up 10 MB HDD space when installed. Second heaviest text editor compared in this post, after Atom, RAM-wise. Here is my ps mem table:
  • Overall: 8. Seems like quite a useful text editor.



Kate 15.08.1 running under Moksha

Kate 15.08.1 running under Moksha

KWrite 15.08.0 running under Moksha

KWrite 15.08.0 running under Moksha


Kate, which is abbreviated from KDE Advanced Text Editor, is a text editor that is a KDE Core Application (a part of the KDE Software Compilation or KDE SC) and combines features of an advanced text editor (that is, one geared towards software developers and experienced programmers) such as customizability, extensive syntax-highlighting, code-indentation, etc. support with sufficient user-friendliness for it to be suitable for inexperienced Linux users. Its development began in 2001 and has been a central part of KDE SC ever since.

KWrite, as I understand it (but I must admit I am a little confused by the degree of overlap between Kate and KWrite) is designed to be a lightweight derivative of Kate.


Some customization (such as of keyboard shortcuts, the toolbar and a few other features) can be done graphically via going to the “Settings” menu and selecting an option from the menu. From what I can gather, however, limited customization can be done textually via user-supplied scripts.


It has syntax-highlighting and auto-indentation support for over 180 different computer languages, including MediaWiki and shell script, but excluding PyMOL. It also has embedded terminal support.

Obtaining it

Kate can be quite easily obtained from Entropy or Portage. To install it from Entropy run:

root #  equo i -av kde-apps/kate

while to install it with Portage run:

root #  emerge -av kde-apps/kate

Getting KWrite is similarly easy, just use (for installation with Entropy):

root #  equo i -av kde-apps/kwrite

while to install KWrite with Portage run (no need to add any overlays, it is in the Portage Tree):

root #  emerge -av kde-apps/kwrite

Disadvantages (Cons)

  • Minimal customization can be made to Kate/KWrite, via user-supplied scripts.
  • Due to it being part of KDE SC it cannot be too easily ported to Microsoft Windows or OS X, although it is readily available on most Linux distributions.

Advantages (Pros)

  • Easily customizable via graphical tools
  • Intuitive keyboard shortcuts by default
  • Extensive support for a wide range of computer languages


  • Availability: 8. Easy to get on Sabayon.
  • Beginner-friendliness: 8. Easy for beginners to use.
  • Customizability: 7-8. Fairly customizable, but unlike Atom say where advanced users have the option of extending the TE further using their own scripts, Kate does not seem to have this capability
  • Features: 8. Extensive support for computer languages and has some IDE-like features.
  • Popularity: 8. Fairly popular according to my poll.
  • SRU: 7. Kate 15.08.2 is a 2.4 MB download and 9.2 MB package when installed, while KWrite 15.08.2 is a 0.1 MB download and 177 kB package when installed. Fairly lightweight for a graphical TE. Here are my ps mem tables (for Kate 15.08.1 and KWrite 15.08.0, respectively):

  • Overall: 8-9. User-friendly and fairly customizable.



Leafpad running under Moksha


Leafpad is a lightweight and basic GTK+ based text editor. Its capabilities (or rather lack thereof) are very similar to those of Windows’ Notepad.


There is little, if any, customizability for Leafpad.


It offers no syntax highlighting support or auto-indentation support that I am aware of.

Obtaining it

To install it on Sabayon with Entropy run:

root #  equo i -av app-editors/leafpad

while to install it with Portage run:

root #  emerge -av app-editors/leafpad

Disadvantages (Cons)

  • It is very basic, has minimal customizability or features

Advantages (Pros)

  • Its chief advantage is its low system resource usage
  • Easy to install on Sabayon


  • Availability: 8.
  • Beginner-friendliness: 10.
  • Customizablity: 0.
  • Features: 0.
  • Popularity: 4. One person has voted for it so far in my poll.
  • SRU: 9. Leafpad is a 0.1 MB download and 3.3 MB package when installed. It is the most lightweight graphical TE in this comparison. Here is my ps mem table:
  • Overall: 7. Fairly basic, but at least it is stable and easy to use.



Mousepad 0.4.0 running under Moksha

Mousepad 0.4.0 running under Moksha


Mousepad is a core application of the Xfce desktop environment, that was originally forked from Leafpad. Like Leafpad it is fairly lightweight, but unlike Leafpad, Mousepad can be customized and has a few basic features that are absent from Leafpad, such as syntax highlighting support for a few computer languages.


Some basic customization can be done, graphically, by going to Edit←Preferences in the toolbar. Some customization of its appearance can be done by going to the View menu. Beyond this, to my knowledge, it cannot be customized.


It supports syntax-highlighting for roughly, a couple of dozen computer languages.

Obtaining it

It is fairly easy to obtain it on Sabayon, to install it with Entropy run:

root #  equo i -av app-editors/mousepad

while to install it with Portage (and yes it is available in the Portage Tree):

root #  emerge -av app-editors/mousepad

Disadvantages (Cons)

  • Basic, limited computer language support
  • Limited customization options

Advantages (Pros)

  • Lightweight
  • All customization can be done graphically
  • User-friendly


  • Availability: 8. Easy to obtain on Sabayon
  • Beginner-friendliness: 10.
  • Customizability: 2-4.
  • Features: 4
  • Popularity: <3.
  • SRU: 8. Mousepad 0.4.0 is a 0.4 MB download and takes up 1.1 MB when installed. Very lightweight. Here is my ps mem table:
  • Overall: 7. The next step up from Leafpad, in complexity it is.



Pluma 1.8.1 running under Moksha

Pluma 1.8.1 running under Moksha


Pluma is a fork of gedit 2 created for the MATE desktop environment. It has many of the same features as gedit.


Some customization (to the theme or adding some plugins) can be done by going to Edit→Preferences.


Pluma has a few plugins that can be used to add features (mostly IDE-like features) to the text editor. It also has syntax-highlighting and auto-indenting support for several computer languages.

Obtaining it

It can be installed with Entropy by running:

root #  equo i -av app-editors/pluma

or with Portage by running:

root #  emerge -av app-editors/pluma

Disadvantages (Cons)

  • Customization options are fairly limited

Advantages (Pros)

  • Customization is done graphically, making it easier for beginners.
  • Has intuitive keyboard shortcuts
  • Has several IDE-like features like a Python terminal.
  • Has syntax-highlighting and auto-indenting suport for several computer languages


  • Availability: 8. Easy to get on Sabayon.
  • Beginner-friendliness 9. Customization is done graphically, making it more user-friendly.
  • Customizability: 6. Fairly limited customization options, but they can be done graphically at least.
  • Features: 8.
  • Popularity: <3. No one has voted for it yet.
  • SRU: 8. Pluma 1.8.1 is a 3.4 MB download and 12.7 MB package when installed. Fairly lightweight. Here is my ps mem table:
  • Overall: 8.



SciTE 3.6.1 running under Moksha

SciTE 3.6.1 running under Moksha


SciTE (abbreviated from SCintilla based Text Editor) is a Scintilla-based text editor originally developed by Neil Hodgson, that is licensed under a GPL-compatible license. It is a fairly user-friendly text editor, that can be customized and scripted with using Lua. Its syntax-highlighting is based on the contents of the .properties files it loads. SciTE is cross-platform, available on Microsoft Windows and most Linux distributions for free, although for OS X users it is only available for a fee of 41.99 USD.

I first tried it when it was the default text editor used by GNU Octave to edit m files.


SciTE can be customized by editing .properties files or via scripting with Lua. There are no major graphical tools for customizing SciTE.


It provides syntax-highlighting for dozens of computer languages. Support for extra languages can be added by creating .properties files for them.

Obtaining it

It is easy to install it with Entropy or Portage. To install it with Entropy, run:

root #  equo i -av app-editors/scite

To install it with Portage, run:

root #  emerge -av app-editors/scite

Disadvantages (Cons)

  • The list of languages it automatically supports is <30.

Advantages (Pros)

  • Fairly lightweight
  • Extensively customizable
  • Easy to get on Sabayon and other Linux distributions


  • Availability: 8.
  • Beginner-friendliness: 8. You should be able to get started with SciTE without much experience in programming or using text editors.
  • Customizability: 8. Fairly customizable, textually only.
  • Features: 7.
  • Popularity: <3.
  • SRU: 8. SciTE 3.6.1 is a 1.7 MB download and 5.4 MB package when installed. Here is my ps mem table:
  • Overall: 8.



gVim 7.4.827 running under Moksha

gVim 7.4.827 running under Moksha


Vim (short for ViIMproved) is a text editor that was first released in 1991 by Bram Moolenaar, as a clone of Bill Joy’s Vi text editor. It and GNU Emacs are seen as the most powerful free text editors available for experienced programmers. Vim is available as a command-line text editor, where users can edit text files from the command-line, or as a graphical text editor (which is called gVim). There is also a Qt-based GUI for Vim called Vim-Qt that is available via the Entropy Store. Compared to most text editors, Vim is far less intuitive and has a steep learning curve. For one, its keyboard shortcuts are far from conventional, with Ctrl+C for copy, Ctrl+V for paste, etc. not being available. Vim also has its own scripting language (Vim script) for adding functionalities to it.


Vim is extensively customizable, for people with the required level of finesse in programming. There are also several extensions and other plugins available for it, from the internet.


It has syntax-highlighting support for almost (if not every) every computer language. It also has several IDE-type features, like compiling source code from within it. Several other features can be added to it, for example, I wrote some of this post in Vim, using the Vimpress plugin. Several plugins are available in the app-vim Portage category.

Obtaining it

It is easy to obtain Vim (and gVim) on Sabayon using Entropy or Portage. To install Vim and gVim using Entropy, run:

root #  equo i -av app-editors/vim app-editors/gvim

whereas to install it with Portage run:

root #  emerge -av app-editors/vim app-editors/gvim

Disadvantages (Cons)

  • Steep learning curve, making it difficult to learn. If you run vimtutor from the command-line after installing it, you will be taken through a tutorial of how to use it, which can be helpful.

Advantages (Pros)

  • Easy to obtain it on Sabayon
  • Extremely customizable
  • Fairly light on system resources


  • Availability: 8.
  • Beginner-friendliness: 2.
  • Customizability: 9-10.
  • Features: 10.
  • Popularity: 10.
  • SRU: 8-9. Vim 7.4.827 is a 1.3 MB download and takes up 3.1 MB when installed. gVim 7.4.827 is a 1.4 MB download and takes up 3.4 MB HDD space when installed. Vim-Qt 20150102-r1 is a 1.4 MB download and 3.4 MB package when installed. Here are my ps mem tables:

  • Overall: 8-9.



Comparison of SRU of the various Text Editors


Package Management on Sabayon

12 October 2015 HOWTOs, Installation guides, Overviews, System software 2 comments


  • This post contains links to wikis, including the Gentoo and Sabayon Wikis and the English Wikipedia. The information contained on these pages is subject to frequent changes and no one, myself included, can guarantee their accuracy at any given time.
  • Any instruction involving Portage, has the capability to break your system and cause other problems, so if you follow them you and you alone assume any and all responsibility for the consequences!

Often, on this blog, I write posts regarding installing software with Sabayon’s two package managers: Portage which it borrows from Gentoo and Entropy which is wholly original. I felt I would dedicate this post to both package managers, giving you some tips on how to use them safely and most efficiently. Generally speaking when it comes to Sabayon, unless you know what you are doing (for future reference users that “know what they are doing” in this context will be referred to as competent Sabayon users), you are recommended to only use Entropy as your package management system (PMS), as working with Portage is more risky and mixing Entropy with Portage is known to quite easily lead to system breaks. I mix the two, even though I would not call myself a competent Sabayon user, because quite often Entropy does not provide the software I want, while Portage can.

This post will cover some of the basics of using Entropy and Portage and how to use them together, in the safest way possible. It will also cover other related topics like using Layman to add overlays. You will probably notice that the command-line is featured heavily in this article, with little mention (usually all they will get is about a sentence mention each, if they are really notable) of graphical user interface (GUI) front-ends for these programs, this is because I tend to find command-line front-ends for package managers are more stable than their graphical counterparts.

Preliminary Information

Entropy, Layman and Portage are all written in Python. Entropy is maintained by Fabio Erculiani and other developers of Sabayon, while Layman and Portage are both maintained by the Gentoo community. This section will cover some of the preliminary information for each of these programs, including their command-line syntax, so as to make the rest of this post easier to understand.


Screenshot of Porthole running under KDE Plasma 5

Screenshot of Porthole running under KDE Plasma 5

Portage is a package management system that is arguably the most powerful Linux PMS available today. It is written in Python and Bash script, so as to afford users the ability to script with Portage. Portage installs, removes and upgrades software using the instructions contained in ebuild (that is, Bash scripts with the file extension .ebuild) files, which are stored within the “Portage Tree” which is /usr/portage, by default. This tree, only contains ebuilds from the Official Gentoo Overlay (OGO, you can search this overlay online here), ebuilds in overlays added with Layman are added to another location, /var/lib/layman. Normally Portage installs (or “merges“) software from source code, so as to maximize the control users have over the features their software has, but some pre-compiled binary packages exist in the OGO for software that would otherwise take several hours to compile. These packages are in .tbz2 file format and are created by running emerge with the --buildpkg or --buildpkgonly options enabled. Installing software from source code may also improve the performance (minimizing resource usage) of software installed this way.

Portage affords users this extra control via USE flags, which are “keywords that embodies support and dependency-information for a certain concept” (quoted from the Gentoo Handbook), in other words they are keywords that allow users to decide which (if any) optional package features (like language bindings, for example) will be built, when the package itself is built. These USE flags can be enabled or disabled for individual packages (via modifying files in the directory /etc/portage/package.use) or for all packages (via editing the USE="... line in /etc/portage/make.conf. USE flags should not be confused with package keywords (individual package keywords can be found in the directory /etc/portage/package.keywords, editing keywords for all packages can be done by editing the ACCEPT_KEYWORDS="..." line in /etc/portage/make.conf), which are entirely separate keywords, that detail architecture support (x86_64 vs. x86) and a few other features. Likewise packages you do not want Portage to emerge under any circumstances (which can be called masked packages) can be added to files within the directory /etc/portage/package.mask.

Portage is traditionally a command-line package management system (invoked by the command emerge), with no official graphical front-ends available, but a few unofficial graphical front-ends exist in the OGO, of which the most popular is probably the GTK+ based Porthole (app-portage/porthole).

The OGO contains over 18,500 software packages, as of October 2015, and while this may seem like quite a fair number (which it is) there will always be some people that will want to install software that is not in the OGO. To do this it is advisable to search the GPO website, for the package you would like and then add the overlay that contains the package you want with Layman.

Emerge Syntax

According to Portage’s Manpage1, emerge commands have the following format:

root #  emerge [options] [action] [ebuild | tbz2file | file | @set | atom]                                       (1)

This can be confusing to users not familiar with the formatting used by Gentoo’s Manpages (or Linux Manpages in general, for that matter), but I will attempt to explain. Before I do, I need you to get into the mind-frame you had when you first learnt algebra in high school, where variables (like x or y) could be substituted with numbers, letters, other characters or a combination of any, or even all of these. With this mind-frame the above generalized format of emerge commands will make more sense, as all words in that command except for root and emerge can be substituted, depending on what you want to do with Portage.

What is in square-brackets ([...]) are optional parts of the command (that is, they can be omitted) and when you are writing an actual command you omit the square brackets and substitute the word inside with any of a set of possible values it can take on. Some (not all, I do not even understand them all!) possible values options and action can take on are covered in the tables below. Multiple options can be combined with certain actions, often using the shortened notation. For example, to combine the ask and verbose options when emerging GNU Octave, one can run the shortened form root # emerge -av sci-mathematics/octave or the full-lengthed form root # emerge --ask --verbose sci-mathematics/octave. The vertical lines or pipes, as they can also be called, which is |, in (1) means the options separated by it and between the square brackets are mutually-exclusive options (that is, you either pick one or you pick none, depending on what you want to do). To save time, I will call the following part of (1) “input“:

[ebuild | tbz2file | file | @set | atom]

Sets (@set in the “input”) are essentially a useful way of specifying a large group of packages. There are six sets found in a default install of Sabayon, more can be created by users with root access by them editing files in the directory, /etc/portage/sets. Running root #  emerge --list-sets should list all available sets. ebuilds are just the names of packages you want to install. At a bare minimum they should be the package’s name (case-sensitive), without its category (e.g., wordpress for www-apps/wordpress), but sometimes specifying a package’s name without its category leaves some ambiguity (that is, there may be more than one package in the Portage Tree or unofficial overlays added with Layman, that has the name specified), so it is often safer to specify the category also. Some people may want to specify the specific package version they want too, to do this add an equal sign before the category and specify the package version after the package’s name, for example running emerge =sys-apps/portage-2.2.20 should install Portage version 2.2.20. Files are files that have been created by installed packages. tbz2file, as one can probably guess are any binary packages created by emerge itself, in the .tbz2 file format that one wishes to install. Atoms (atom) are essentially the same as ebuilds, only with bounds on their version numbers specified. For example, emerge <dev-lang/python-2.0 should install the latest version of Python available before version 2.0.

Table 1: Options for Emerge
Long Short Meaning
-a Ask before running the action.
–autounmask [y|n]
N/A This option is enabled by default and it basically allows emerge to unmask packages as required and write changes for package.use. Possible forms this option can take on are --autounmask=y, --autounmask=n (which will disable this option and unmasking/package.use changes will not occur) or --autounmask.
–autounmask-write [y|n]
N/A This option is similar to --autounmask, except it can write to package.use and other configuration files directly.
–buildpkg [y|n]
-b By default this option is disabled, but when enabled it causes emerge to install the package(s) and it also creates binary package(s) from the installed package(s) (file format: .tbz2) in PKGDIR (which is specified by /etc/portage/make.conf, by default it is /usr/portage/packages).
-B This option, which is not enabled by default, will only create binary package(s) and not install the package(s) specified to it.
-U Tells emerge to include installed packages where USE flags have changed since installation.
-d Show more detailed debugging information.
-D With this option emerge will look at the entire (or “deep”) dependency tree (not just the immediate dependencies of the package it is emerging, which it does by default) for updates.
-e Reinstalls package and all deep dependencies.
–keep-going [ y | n ]
N/A Continue as much as possible after an error.
-N Reinstall packages that have had their USE flags changed since installation. This option is more comprehensive in the packages it reinstalls than --changed-use.
-O Installs specified packages, without installing any dependencies. This option may cause package breakage.
-n Skips packages that are already installed.
-1 It will emerge the package as normal, but will not add the packages to the world file for later updating.
-o Install the specified package(s) dependencies, only. This is the emerge equivalent to APT’s apt-get build-dep.
-p This option causes emerge to display which packages would have been emerged, had the pretend option not been used.
–quiet [y|n]
-q This option, although results do vary, should minimize the output provided by emerge.
-u Updates packages to the best version available (not necessarily the latest, however).
-v This option causes more details to be given from ask and pretend commands. These details include GNU info errors and (for the pretend command) it will print USE flags.
–with-bdeps [y|n]
N/A During dependency calculations, build time dependencies that are not strictly required will be included. For installation actions this defaults to n, while for depclean actions this defaults to y.
Table 2: Action values for Emerge
Long Short IR? Meaning
None N/A Yes If no action is specified then emerge will merge all packages specified and their dependencies.
N/A Yes Run specific configuring processes that must be done after the package is emerged. The best example for this I can provide are the MariaDB and MySQL packages. Configuring these packages is required in order to set up a database with them.
-c Yes Removes packages not associated with any merged package.
-h No Displays some basic syntactic information, although if you really want some documentation for emerge from the command-line use man emerge.
-P Yes Remove all but the highest installed version of the package specified.
N/A No Causes portage to check and update the dependency cache of all ebuilds in the portage tree.
-r No Resumes the last merge, if said merge was cancelled due to errors.
-s Yes Search for packages who’s name matches with the supplied case-insensitive string.
-S Yes Search the Portage tree for string in package names and descriptions.
N/A No Updates all the ebuilds in the Portage Tree. You should do this once a week, at least. The first time you do it, this will take quite some time (potentially up to a few hours). To save time the first time you do this you may wish to run emerge-webrsync which will download the Portage Tree as a tarball.
-C Yes Unmerges (that is, uninstalls) software packages specified.
WARNING: This command ignores packages that may depend on the unmerged packages. For a more dependency-conscious and hence safer version of this command use the --depclean or --prune options.
-V No Display the version number of emerge.




Wiki Articles


Layman is a command-line tool for managing Portage overlays. It can be installed with Portage (from the OGO) using the command:

root #  emerge -av app-portage/layman

or with Entropy using the command:

root #  equo i -a app-portage/layman

I would recommend installing Layman using Entropy as it is less error-prone and the Layman package it installs was compiled with all the USE flags required to add every type of overlay available (including Bazaar (bzr), Git, Mercurial (hg) and Subversion (svn)). Layman-added overlays (and the ebuilds contained within them) are stored in /var/lib/layman/.

Layman Syntax

The basic syntax for Layman is:

root #  layman [options] [action]

As with emerge, I am not going to cover every option and action available for layman, as that would take too long, plus this is not meant to be a substitute for the manpages of the package managers and other tools covered in this post. Some of the more important/frequently-used actions and options are covered in tables 3 and 4. Please note that all actions when given in long form, if they require input (like --add does) this input must be specified with an equal sign and no spaces. For example to add the “sabayon” overlay you may run:

root #  layman –add=sabayon

or in shortened notation:

root #  layman -a sabayon

It is important to note that while this technique will add the sabayon overlay to one’s machine not all overlays can be added this way, as some overlays are not within Layman’s default list of available overlays (which I will henceforth refer to as the reference list). To view the reference list, run:

root #  layman -L

while to see the list of overlays currently installed, locally, on your machine run:

root #  layman -l

To add a new overlay that is not within the reference list, run:

root #  layman -o <URL of repository XML file> -f -a <overlay name>
Table 3: Options for Layman
Long Short Meaning
-N Remove colour codes from Layman output.
-q Reduce output.
-Q Takes a numerical value between 0 and 4 to determine the amount of output provided. 0 means no output, 4 means full output.
-v Makes Layman give more output details, such as a description of the overlays you download.
Table 4: Actions for Layman
Long Short Meaning
-a Add overlay.
-d Delete overlay. Specify “ALL” to delete all locally installed overlays.
-D Disable overlay. Specify “ALL” to disable all locally-installed overlays.
-i Display all available information about the overlay.
-L List all available overlays. Note that these overlays are not necessarily installed on your system.
-l List all locally-installed overlays.
-r Re-add overlay(s) specified, to re-add all overlays, use the input “ALL”.
-s Synchronize (or in other words, update) overlay(s) specified. To sync them all use the input “ALL” or use the
-S option mentioned below.
-S Update all overlays.



Rigo Application Browser running under KDE Plasma 5

Rigo Application Browser running under KDE Plasma 5

Entropy, is a PMS that was specifically designed for Sabayon by Fabio Erculiani, the original creator of Sabayon. Its first unstable release to be added to Sabayon was in July 2008 when Sabayon 3.5 was released and its first stable release to be added to Sabayon was made in May 2011 with the release of Sabayon 6. Unlike Portage which is primarily designed to install source code packages (although it can also install binary packages), Entropy is designed to work with binary packages only. Binary packages take less time than source code packages to install and requires less user know-how and input. Entropy is also unique in that it has two official front-ends: command-line/textual (Equo) and graphical (Rigo). I personally favour using the command-line for installing packages on Linux distributions, because in my experience graphical installers are more prone to crashes during installation than their command-line/textual counterparts.

Compared to Portage, Entropy is far more simple to use, if you go to the Entropy Store you can see the USE flags used to compile the software packages provided by Entropy, as all packages provided by Entropy had to be compiled with Portage on another machine first (in .tbz2 format). Entropy contains packages from the Portage Tree and packages from Sabayon’s own overlays, which are called sabayon and sabayon-distro, respectively. Entropy is also safer to use and support for using Entropy to install packages is far better than support for Portage-installed packages on the Sabayon forums.

Equo Syntax

The generalized syntax for Entropy’s command-line front-end, Equo, is:

root #  equo [action] [options] [ebuild | atom]

Some (but by no stretch of the imagine all) options and actions for Equo are listed in tables 4 and 5, below. Note some options are only available for certain actions, for details see the man pages for Equo and its various actions (e.g., run man equo install for the equo install manual). One action and another option that are not covered in these tables, that I felt were worthwhile mentioning, are repo and mirrorsort, respectively. The command:

root #  equo repo mirrorsort <REPO>

where <REPO> is the name of an Entropy repository (e.g.,, sabayon-weekly or sabayon-limbo), can be used to optimize the order of preference for the repository’s mirrors, hence, potentially, accelerating the process by which Sabayon downloads software packages.

Table 5: Options for Equo
Option Meaning
-a, --ask Ask before performing actions. For example equo i -a [ebuild] will ask you before it will install the package specified by the ebuild argument.
--deep Reinstall dependencies, even if unnecessary.
-h, --help, help Print help information.
-o If given to the “install” action this option will cause only the package’s dependencies to be installed. This is the equivalent to running apt-get build-dep for APT.
-p, --pretend Show what would be done, had this option not been given.
--purge (for upgrade) it will remove unmaintained packages, if any.
-q, --quiet Quiet (reduce) output.
-v, --verbose Verbose output.
Table 6: Actions for Equo
Long Short Meaning Manpage
cleanup N/A Remove downloaded packages and clean temporary directories. equo-cleanup.1
config N/A Configure installed packages. equo-config.1
deptest dt Look for unsatisfied dependencies. equo-deptest.1
install i Install software. equo-install.1
libtest lt Look for missing libraries required by other packages. equo-libtest.1
mask N/A Mask packages given as input. equo-mask.1
remove rm Remove packages given as input. equo-remove.1
rescue N/A Tools to rescue system equo-rescue.1
search s Search for packages in repositories. equo-search.1
unmask N/A Unmask packages given as input. equo-unmask.1
update up Update repositories. equo-update.1
upgrade u Upgrade packages that have been updated (in the software repositories) since they were installed, or since you last ran this command. equo-upgrade.1


Mixing Entropy with Portage

By default Entropy and Portage act fairly independently of one another. In order for you to use them together, you must tell Entropy that you are also using Portage to install packages by running:

root #  equo rescue spmsync

whenever you emerge, unmerge or update a package. I have this saved in my ~/.bashrc (for root user) as the function spm, so as to make it easier for me to run it when necessary. What this will do is it will cause packages you installed with Portage to be acknowledged by Entropy, as otherwise Entropy has no clue as to their existence. After this you may also wish to mask packages you installed with Portage, so as to prevent Entropy from attempting to upgrade or remove software installed with Portage. To do this run:

root #  equo mask <PACKAGE>

To prevent Entropy from downgrading emerged packages you need to edit


and uncomment (removing the hashtag #) the line

ignore-spm-downgrades = enable

Packages installed with Entropy are almost always safer (less likely to lead to system breaks or have bugs) than their Portage-installed counterparts, so when you install a package with Portage that has several non-installed dependencies I would suggest you install as many of these dependencies as possible with Entropy before you merge the remaining dependencies and the package itself with Portage.

Further Reading

The Algorithm

Occasionally, while browsing the internet, I find a program I would like to install on my Sabayon machine. Here is the algorithm I follow to install it:

    1. I search for whether or not said software is available in the Entropy Store. If it is there I install it with Equo (e.g., via running root #  equo i <PACKAGE>), if not I proceed to the next step.
    2. I search for whether or not said software is available in the main Gentoo Overlay. If it is there I install it with Emerge (e.g., via running root #  emerge -av <PACKAGE>), otherwise I move onto the next step.
    3. I search for whether or not the software is available in any unofficial overlays. If it is, and the version number is acceptable (usually I prefer the latest stable version of a software, but sometimes I will settle for fairly recent stable versions) I may add the containing overlay with
      root #  layman -a <OVERLAY>

      then sync both Portage and Layman with (I also have this added as a function called sync in my ~/.bashrc script)

      root #  emerge –sync && layman -S

      and then emerge the package with

      root #  emerge -av <PACKAGE>

otherwise I proceed to the next step. If the package has several dependencies I try to install as many as possible with Entropy, before I emerge the remaining dependencies and <PACKAGE> itself. Often using pretend instead of ask options (emerge -pv... instead of emerge -av...) will be helpful if you want a list of packages to install with Entropy. Sometimes emerge will say you need to adjust your USE flags (stored in /etc/portage/package.use/), package keywords (stored in /etc/portage/package.keywords), list of accepted software licenses (stored in /etc/portage/make.conf) and alike to install the package you want.

  1. If all else fails I get the source code and try compiling and installing it myself. This step is last, because this step is very error prone if, like me, you do not know an awful lot about compiling software or programming, in general. This step depends on the instructions in any INSTALL or README file included with the source code. If these files do not exist I use my knowledge on common compiling methods to install the software. For example, if the source code is written in C/C++ often there will be an or configure file somewhere in the source code base directory, which I will run (usually by opening up a terminal emulator and running user $  ./<FILE> where FILE is either or configure)) and read the output of. If the output includes an error, concerning some missing dependency, I will try to install said dependency (following the same algorithm outlined here) and re-run the script or if the dependency is on my PC already I will try giving the or configure file a PATH variable pointing to the dependency’s location on my system when I re-execute them. If no errors are encountered when running these scripts, or I manage to fix them with the methods I just mentioned I then run
    user $  make


    user $  sudo make install

    While if the source code is written in Python I look for a file and run

    root #  python install
  2. If errors are encountered at any of these steps (by errors I do not include the absence of available software packages as errors) I also attempt to seek support. For example, if the failure happened with an added unofficial overlay I often find the GitHub repository that houses the overlay and create a new issue for said repository. This process of getting support often occurs quite slowly, taking several days, at least, to get any solution to the problem, so often if failures happen I move onto the next step of this algorithm (if there are any steps left) before I report the failures.




An example of OpenRA running

OpenRA (games-strategy/openra) is a free and open-source futuristic strategy game. For me, it reminds me of one of my favourite Windows games, Outlive. OpenRA is unusual in that it is not available in the Entropy Store, although a few ebuilds for it do exist in the Portage Tree, although it is worthwhile mentioning that these ebuilds are often out of date. For example, as of 12 October 2015 the latest ebuild available in the Portage Tree is for version 20141029 (note how this number represents the date of the release, 29 October 2014), while the latest release is 20150919 (released 19 September 2015). There are unofficial overlays (such as games-overlay) that contain more recent versions of OpenRA, although as of 12 October 2015 they still do not contain the latest release of OpenRA.

To install the latest version available of OpenRA on Sabayon one has four main options:

  1. Emerge the package from the Portage Tree. This will get you release 20141029, at best. I have not tried this due to how old a version this package is. To do this simply run
    root #  emerge games-strategy/openra
  2. Add the games-overlay with Layman and emerge the latest version available from it, 20150614. This option I have not bothered with due to the fact it contains an old version of OpenRA and is an unofficial overlay (which makes it higher risk for system breaks and other issues). To do this run
    root #  layman -a games-overlay
    root #  emerge –sync && layman -S
    root #  emerge games-strategy/openra::games-overlay
  3. Add the dr overlay (not available with Layman) and emerge the latest version, 20150919. This option I have not done, due to the fact it needs freetype unmerged and that would break my system. To do this run:
    root #  layman -o -f -a dr
    root #  emerge –sync && layman -S
    root #  emerge games-strategy/openra::dr
  4. Compile the source code yourself and install OpenRA from that (which will get you the latest version of OpenRA, 20150919). This option I have succeeded in doing and is how OpenRA is currently installed on my system. To do this I ran:
    user $  wget -c
    user $  tar -xzf release-20150919.tar.gz
    user $  cd OpenRA-release-20150919
    user $  make dependencies && make all

    This does not add an executable of OpenRA to /usr/games/bin/ and hence running openra from the command-line will not start the game. So after this I also created a shell script file called /usr/games/bin/openra with nano (that is, I ran

    root #  nano /usr/games/bin/openra

    ) with the line mono --debug /path/to/OpenRA.Game.exe where /path/to is replaced with the path to where you built OpenRA from source code (which for me is /home/fusion809/Programs/OpenRA-release-20150919).

External links


SuperTux 0.3.3

SuperTux 0.3.3

SuperTux (games-arcade/supertux) is a free and open-source (licensed under GNU GPLv3) 2D platform game that was first released in April 2003. Its gameplay is very similar to that of the proprietary game, Super Mario Bros. The initial 2003 release was called “Milestone 1” (or if you would prefer a version number 0.1.3) and is the version of SuperTux available in the Entropy Store and the Official Gentoo Overlay (OGO). I have installed this version with Entropy, using:

root #  equo i games-arcade/supertux

This game is enjoyable, giving several hours of entertainment for me at least. Despite this, due to my preoccupation with using the latest software available, I looked to install the latest version of SuperTux (which are developmental, but still fairly stable, versions of Milestone 2 (or SuperTux 2) which is due to be released in December 2015). I tried installing it using the unofficial yarik-overlay and while this succeeded I found the most stable version provided by it (0.3.4) plagued by bugs. To do this I ran:

root #  layman -a yarik-overlay
root #  emerge –sync && layman -S
root #  emerge -av supertux

So after this, I decided to give manually building and installing it myself, a go. Then I got the latest tarball source code release (tar -xvf supertux-0.3.5a.tar.bz2 should do this from the command-line), decompressed it, changed into the supertux-0.3.5a directory and ran:

user $  mkdir build
user $  cd build
user $  cmake ..
user $  make
user $  sudo make install

this ran without error and the resulting SuperTux 2 installation (which by-the-way I have managed to keep on my system despite never removing my SuperTux 1 Entropy installation) was less buggy, in fact, I do not believe any bugs are left.

External links


  1. Specifically the emerge(1) manpage

Desktop environments and Sabayon

3 October 2015 Comparisons, Graphical user interfaces No comments

KDE Plasma 5.4.1 running on my Sabayon machine

KDE Plasma 5.4.1, an example of a modern DE.1

A desktop environment (DE) is a crucial component of any modern operating system, including Sabayon. It provides a graphical user interface (GUI), with which you, the user, can interact with the various components of the operating system, as well as several pieces of application software. All of the top twenty most popular Linux distributions, by page hit rankings on the DistroWatch website, except for Arch Linux, come with pre-installed DEs. Most modern free DEs came to be in the mid-late 1990s or later. In this post I will compare the various desktop environments that are available for use on Sabayon, it is worthwhile noting that all these comparisons are with the latest versions of these DEs available on Sabayon. For example, when I discuss GNOME, list its features and make comparisons I am really referring to GNOME 3, the latest version of GNOME available, and not the previous version GNOME 2.


What precisely constitutes a “desktop environment” varies, according to whom you ask, but for the purposes of this blog I will define the following as the minimal components of a “complete desktop environment” (cDE):

  • A windowing system (WS). For example the X Window System (X11) or Wayland. Some cDEs may be compatible with more than one of these.
  • A window manager (WM), such as Fluxbox, KWin, Mutter, OpenBox or Xfwm. Some cDEs are also compatible with more than one of these.
  • A file manager (FM), such as Caja, Dolphin, GNOME Files (Nautilus), Nemo, PCManFM or Thunar.
  • A widget toolkit (WT), such as the GIMP Toolkit (GTK+) or Qt.

While an “incomplete desktop environment” (iDE) is one that has at least two of these components, but not all four.

Core applications (CAs) are a feature of several cDEs that is not strictly required in order for a DE to be a cDE but can add to the appeal of the DE. They are pieces of application software that provide core, or basic functionalities such as:

  • Disk management. An example of such software is GParted.
  • Document viewing. Examples of such software include Evince and Okular.
  • Music playing. An example is Rhythmbox.
  • Shell access. These applications are called terminal emulators and include GNOME Terminal, Konsole and LXTerminal.
  • Video playing. An example is GNOME Videos (Totem).
  • Web browsing. An example is Konqueror.


The different DEs will be mentioned in different sections, each with the following subsections:


This is where I discuss the history of the DE and related information.


This is where I discuss the different components of the DE like its WS, WM, FM, WT and CAs.


This is where I discuss available customization options. I also discuss how easy it is to install extensions, themes and applets/widgets for panels.

Obtaining it

How do you get this DE on Sabayon?

Advantages (Pros)

A summary of what can be said about the DE that is positive. For example, for lightweight DEs I may say low resource usage.

Disadvantages (Cons)

A summary of the negative points of the DE.


This is where I give a numerical rating for five aspects of the DE and an overall satisfaction rating, all six are out of 10, with 0 being terrible/non-existent, 10 being perfect.

The five aspects are:

  • Availability: how easy is it to install this software on Sabayon?
  • Customizability: how easy is it to customize this DE? How extensively can one customize the DE?
  • Features: how feature-packed is this DE? Does it have its own set of CAs and if so, how usable are they?
  • Speed and resource usage (SRU): does this DE boot quickly? Does it use a lot of CPU/RAM? Does it require a lot of free disk space to install it? For this aspect a score of 10 means minimal resource requirements, instant boot and a score of 0 means unbootable due to high resource requirements. I may also include the results of running ps mem for DE-related services such as Xorg, its file manager, clipboard, session, display manager, etc. I may miss the odd DE-related service, however, so please do not take my figures as verbatim. ps mem is a Python script I downloaded from GitHub that provides the RAM usage for a program, given its process ID (PID). To get the process IDs I ran ps -efH as root. The output of ps mem for multiple PIDs is tabulated. I ran this as soon as I could (after all I had to get the PIDs first, which takes some time) after booting, so as to minimize its results.
  • Stability: how prone is this DE to crashes and other bugs?


Under this section I provide the DE’s Official Website, Wiki and other useful websites.

Complete Desktop Environments

Budgie Desktop

Budgie Desktop running on Sabayon

Budgie Desktop 8.2 running on Sabayon


Budgie is a desktop environment, built around GNOME 3 (instead of on, it is not a fork) and created by Ikey Doherty in 2015 for an independent Linux distribution called Solus (Evolve OS). Its user interface more closely resembles that of GNOME 2 than of GNOME 3, but it bares even more similarities to the user interface of Chrome OS.


  • Windowing system: X11.
  • Window manager: Mutter.
  • File manager: GNOME Files (Nautilus).
  • Widget toolkit: GTK+3.

It uses the same core applications as GNOME 3.


Fairly minimalistic, in its features, and customizability options compared to GNOME 3.

Obtaining it

It is available from unofficial sources for Fedora 20 and 21 (not the latest release 22) and openSUSE 13.2. It is also available from the Arch User Repository (AUR) for Arch Linux users. It is also the default desktop of Solus and is available from Entropy for Sabayon users. For Gentoo users it is available from the sabayon overlay, package name budgie-desktop. Consequently to install Budgie Desktop using Entropy run:

root #  equo i budgie-desktop

while to install it using Portage run (assuming you have not already got the sabayon overlay added):

root #  layman -a sabayon
root #  emerge –sync && layman -S
root #  emerge budgie-desktop

Note, however, that Budgie Desktop will not work with the version of media-libs/clutter provided by the gnome overlay.

Advantages (Pros)

  • Simple and intuitive to use
  • Stable

Disadvantages (Cons)

  • Not very customizable
  • Still uses a fair amount of CPU and RAM.


  • Availability: 8.
  • Customizability: ~5. Insufficient experience with this DE for me to be sure.
  • Features: 5. It does have core applications, but they are all borrowed from GNOME so I do not believe this DE deserves that credit.
  • SRU: 4. Lower score based on its dependency on GNOME, but my ps mem test gave this result:
  • Stability: >8. Never had any issues, myself, with it crashing. Then again I have not used it enough to be confident about its stability.
  • Overall: 6. In my books, less customizability is a disadvantage, hence why the lower rating.



Cinnamon running on Sabayon

Cinnamon 2.6.13 running on Sabayon


Cinnamon is a fork of GNOME 3 created in 2011 for Linux Mint, due to user dissatisfaction with GNOME 3’s new user interface. Despite being forked from GNOME 3 it has a user interface that more closely resembles that of GNOME 2.


  • Windowing system: X11.
  • Window manager: Muffin, a fork of Mutter.
  • File manager: Nemo, a fork of GNOME Files (Nautilus).
  • Widget toolkit: GTK+3.

Several components of GNOME Core Applications were forked too.


Cinnamon is very customizable, with several available themes and applets (for its panel) available via a built-in (built-in to system settings) installer. The application menu is also customizable.

Obtaining it

No official Cinnamon flavour of Sabayon exists, but it can be installed using Entropy and Portage. Via Entropy it can be installed with the command:

root #  equo i gnome-extra/cinnamon

while with Portage it can be installed with:

root #  emerge gnome-extra/cinnamon

Advantages (Pros)

  • Easily installable with Entropy and Portage.
  • Lighter on resource usage than GNOME.
  • Traditional user interface.
  • Very customizable.
  • Has its own set of core applications.

Disadvantages (Cons)

  • No official flavour of Sabayon is available with Cinnamon pre-installed.
  • Less stable than MATE and GNOME 3.


  • Availability: 8.
  • Customizability: 9.
  • Features: 9.
  • SRU: 5. Has less resource usage than GNOME 3 and similar to MATE. My ps mem table is:
  • Stability: 6. I have had it crash on me, before.
  • Overall: 9.



Figure 1: Screenshot of GNOME 3 running on Sabayon Linux

GNOME 3.16 running on Sabayon Linux


GNOME (an acronym for GNU Network Object Model Environment) was one of the first free desktop environments developed for Unix-like systems such as Linux, along with KDE. It is officially developed as part of the GNU Project and was first developed as a GTK+ based alternative to the Qt-based KDE, due to the fact that at the time Qt was proprietary licensed. GNOME 1 was released in 1999, while GNOME 2 was released in 2002 and GNOME 3 was released in 2011. The release numbers of each corresponds to the version of GTK+ used as their basis: GNOME 1 used GTK+1, GNOME 2 used GTK+2 and GNOME 3 uses GTK+3.

Of these releases GNOME 2 was probably the most popular (and had a user interface similar to that of Microsoft Windows, with an application menu, task bar on a horizontal panel), with GNOME 3 causing a lot of controversy amongst users (most notably Linus Torvalds, the original developer of the Linux kernel), due to its unconventional user interface (the “GNOME Shell” it is called) that broke with the traditional desktop metaphor. Due to this controversy over the GNOME Shell a few GNOME 2/GNOME 3 forks were made around the time of GNOME 3’s release to overcome this issue.


  • Windowing system: X11, Wayland support under development.
  • Window manager: Mutter.
  • File manager: GNOME Files (previously called Nautilus).
  • Widget toolkit: GTK+.

GNOME also has its own set of core applications.


GNOME 3 is fairly customizable (it is worthwhile noting that some of this customization is done through the GNOME Tweak Tool which may need to be installed separately to the DE) and extra extensions can be installed from within the interface of certain web browsers, including Mozilla Firefox (to install Firefox with Entropy run root #  equo i www-client/firefox, it is not recommended to install it with Portage, as compiling Firefox from source takes several hours on most systems), although it is worthwhile noting that such customization cannot be done from within Sabayon’s default web browser, Google Chrome.

Obtaining it

An official GNOME edition exists of Sabayon and it can be installed on an existing Sabayon installation with Entropy/Portage. The Entropy/Portage meta-package for GNOME is gnome-base/gnome, so running:

root #  equo i gnome-base/gnome


root #  emerge gnome-base/gnome

should install it. Several extra core applications can be installed by installing the meta-package gnome-base/gnome-extra-apps. With Entropy run:

root #  equo i gnome-base/gnome-extra-apps

while with Portage run:

root #  emerge gnome-base/gnome-extra-apps

Advantages (Pros)

  • Own set of CAs
  • Fairly customizable, including from within a web browser.
  • Readily available to Sabayon users, as a live ISO for Sabayon exists with GNOME pre-installed and for those users that did not install the GNOME edition they can install it post system-installation using Entropy or Portage.
  • Stable
  • Unique in its user interface

Disadvantages (Cons)

  • Heavy on resource usage. Usually RAM usage tests rank GNOME, KDE and Unity as being nearly tied for the position of heaviest DE.
  • Unconventional user interface may be more difficult to get used to.


  • Availability: 10.
  • Customizability: 8.
  • Features: 9.
  • SRU: 2. Boots fairly slowly and resource usage is high.
  • Stability: 8. Never had it crash on me.
  • Overall: 8.



KDE Plasma 5.4.1 running on Sabayon

KDE Plasma 5.4.1 running on Sabayon


KDE, along with GNOME, is one of the two most important desktop environments in my books. Its development began in 1996, when Matthias Ettrich, a then student at the University of Tübingen founded the KDE Project, which develops KDE, the desktop, along with several core applications for the desktop. KDE originally stood for “Kool Desktop Environment”, a play on the name of the then popular proprietary desktop environment, used on Unix/Unix-like systems, the “Common Desktop Environment”. In July 1998 the Project published its first official release of this DE, KDE 1.0. The first three major KDE releases (KDE 1.0, KDE 2.0 and KDE 3.0) were named “K Desktop Environment” but the fourth and fifth releases of this desktop were called “KDE Plasma”.

Unlike GNOME, KDE is based on the Qt widget toolkit, which was originally partially proprietary licensed until in 2000 it was finally released under GPLv2. Similarly to GNOME each new line of KDE (like 1.0, 2.0, 3.0, …) is based on a new line of Qt (respectively, 1.0, 2.0, 3.0, …).


  • Windowing system: X11, Wayland.
  • Window manager: KWin.
  • File manager: Dolphin.
  • Widget toolkit: Qt.

It also has its own set of core applications, such as the terminal emulator, Konsole, the document viewer, Okular and the screenshooting software, KSnapshot.


KDE is extensively customizable. Window bars, the panel, keyboard shortcuts, GTK+2 and GTK+3 themes (for GTK+ based programs) and icon theme are all fully customizable. This customization can be done quite easily, and extensively, through GUIs. Its system settings utilities (through which you can customize all the aforementioned features) also have built-in installers, with which users can search for new themes and then install them.

Obtaining it

An official flavour of Sabayon exists that as of the 15.10 release, features the KDE Plasma 5 desktop. Until August/September 2015 the only way to obtain KDE Plasma 5 on Sabayon, besides building it manually from source code yourself, was to install it with Portage, but now you can also install KDE Plasma 5 with Entropy, which saves an awful lot of time. This was because Entropy still stored KDE Plasma 4, the previous version of KDE. If you look at the Sabayon forums you will find several people complaining about the transition to Plasma 5, but I have always thought it was for the best. After all Sabayon has claimed to be “bleeding edge” in as far as how up to date its system software is, and leaving KDE Plasma back at version 4 seemed like a major contradiction to me. KDE Plasma 5 tends to be less stable than KDE Plasma 4, however, but in my opinion, at least, its aesthetics and other features are superior.

KDE Plasma 5, both in Entropy and Portage, has a meta package (kde-plasma/plasma-meta) that will draw in all the essential components of KDE Plasma 5 for you. Note the use of the word “essential”, some components like application software such as Calligra Suite and Okular are not included as “essential” components of the DE. To install KDE Plasma 5 with Entropy run:

root #  equo i kde-plasma/plasma-meta

while to install KDE Plasma 5 with Portage run:

root #  emerge kde-plasma/plasma-meta

I personally have found that KDE Plasma 5 is more stable when installed with Portage, so if you find your Entropy installation of KDE Plasma 5 is buggy, I would suggest you uninstall it (unfortunately running root #  equo rm kde-plasma/plasma-meta is not likely to be sufficient to remove all components) and install it with Portage. Although I would suggest you report any issues you have with KDE Plasma 5 at the Sabayon forums or at Sabayon Bugzilla before you do this. Preferably also wait a day or so before you uninstall it with Entropy and install it with Portage, just in case a solution to your problems can be found in a reasonable amount of time.


The last time I had tried to install KDE Plasma 5 with Entropy, was when it was still hosted in an unofficial repository. Now, to overcome one issue I have encountered with Portage-installed KDE Plasma 5 (namely ksmserver crashes) I unmerged KDE Plasma 5 components, ran spmsync (root #   equo rescue spmsync) and installed it with Entropy. Since I installed KDE Plasma 5 with Entropy I have not encountered the ksmserver bug, or any other bugs.

Advantages (Pros)

  • Easy to obtain on Sabayon, with the release of the first ISO to feature the Plasma 5 desktop on the 28th of September 2015.
  • Easily and extensively customizable
  • Own set of CAs
  • Frequently updated
  • Microsoft Windows-like user interface, which may be helpful for those most familiar with Windows

Disadvantages (Cons)

  • High resource usage
  • Stability issues: crashes common, as are other bugs


  • Availability: 10.
  • Customizability: 9-10.
  • Features: 9-10.
  • SRU: 1-2.
  • Stability: 7. Since I managed to overcome that ksmserver issue, this DE seems more stable to me. I have had one crash so far, though, since this fix but it was probably because I was running so many programs at once (far more than I could get away with before).
  • Overall: 9.



LXDE running on Sabayon

LXDE 0.55 running on Sabayon


LXDE (which stands for Lightweight X11 Desktop Environment) development began in 2006, when Hong Jen Yee (who goes by the nickname PCMan) released a new file manager called PCManFM, which would be the first component of LXDE to be released. LXDE was developed to be a lightweight, yet complete desktop environment, with lower power requirements and most tests have found it to be the lightest of the free complete desktop environments. It is based on GTK+2, although a Qt-based fork exists (called LXQt, it was developed due to PCMan’s dissatisfaction with GTK+3) and is mentioned later in this post.

In previous releases of Sabayon, an official LXDE flavour was also available, but currently there is no such official flavour available.


  • Windowing system: X11.
  • Window manager: Openbox.
  • File manager: PCManFM.
  • Widget toolkit: GTK+2.

It also has its own set of core applications, including Leafpad (text editor), LXMusic (audio player) and LXTerminal (a terminal emulator).


LXDE is fairly customizable, although some of this customization cannot be done via GUIs and must instead be done via modifying configuration text files. For example, if you want to customize keyboard shortcuts edit ~/.config/openbox/lxde-rc.xml (although, if you are currently running LXDE, you will also need to run user $  openbox --reconfigure for any changes to take effect). This is because ObKey, a GUI-based program for editing Openbox keyboard shortcuts, by default edits ~/.config/openbox/rc.xml, instead of the real locale, ~/.config/openbox/lxde-rc.xml. While if you want to customize the LXDE Panel you can do so graphically via system settings, or you can do so textually via editing ~/.config/lxpanel/LXDE/panels/panel.

Obtaining it

No official flavour of Sabayon with LXDE pre-installed exists, but it can be easily installed via Entropy and Portage. To install it with Entropy run:

root #  equo i lxde-base/lxde-meta

whereas to install it with Portage run:

root #  emerge lxde-base/lxde-meta

Advantages (Pros)

  • Lightest of the cDEs
  • Energy efficient
  • Stable
  • Has its own set of core applications

Disadvantages (Cons)

  • Fairly basic in its features
  • Infrequently updated
  • Some customization must be done textually


    • Availability: 7-8.
    • Customizability: 8-9.
    • Features: 8.
    • SRU: 7. Here is the tabulated results of ps mem:

  • Stability: 8.
  • Overall: 8-9.



LXQt 0.9 running on Sabayon

LXQt 0.9 running on Sabayon


LXQt is a Qt port of LXDE, that was created due to Hong Jen Yee’s dissatisfaction with GTK+3. It is a fairly lightweight DE and was first released in 2013. It was originally based on Qt 4, but as of 2015’s version 0.9 release it is based on Qt 5 and has dropped support for Qt 4. Another now defunct desktop environment, based on Qt, called Razor-qt was merged with this project.


  • Windowing system: X11.
  • Window manager: Openbox.
  • File manager: PCManFM-Qt. A Qt rewrite of PCManFM.
  • Widget toolkit: Qt 5.

As for core applications, from what I can tell they have not been ported from LXDE yet, if they ever are going to, that is.


I have not had enough experience with it, to know much about its features, but seeing how it lacks its own core applications I would probably say they are likely to be limited.

Obtaining it

It can be installed with Entropy or Portage, both with the meta package, lxqt-base/lxqt-meta. With Entropy, run:

root #  equo i lxqt-base/lxqt-meta

while to install it with Portage, run:

root #  emerge lxqt-base/lxqt-meta

Advantages (Pros)

  • Second lightest of cDEs
  • Energy efficient

Disadvantages (Cons)

  • Unstable
  • Some customizations must be done textually, not graphically.


  • Availability: 8.
  • Customizability: 8? I have not used this DE enough.
  • Features: 8? I have not used this DE enough to know, though.
  • SRU: 6. Here is my ps mem table:
  • Stability: 5. I have found it less stable than LXDE. For example, I think the screenshot shown earlier of this DE, shows a graphical bug, due to the black, empty space in the bottom panel.
  • Overall: 8.



MATE running on Sabayon

MATE 1.8.0 running on Sabayon


MATE (pronounced in a way that rhymes with latte, not late) is a fork of GNOME 2 made in 2011, that is developed by people that liked GNOME 2 but were dissatisfied with GNOME 3. It was originally developed by an Arch Linux user, but it has since been ported to most major Linux distributions and even a few BSD derivatives, including Sabayon for which there is an official MATE edition.


  • Windowing system: X11.
  • Window manager: Marco, a fork of Metacity: GNOME 2’s WM.
  • File manager: Caja, a fork of Nautilus.
  • Widget toolkit: GTK+2.

MATE has its own set of core applications, all forked from their corresponding GNOME 2 core applications.


MATE is fairly customizable, with several available themes for almost every visual component of the DE. Several different widgets are available for its panel, although they cannot be installed from within a web browser like with GNOME 3. There is no official installer for widgets and other extensions/themes.

Obtaining it

An official MATE flavour (or spin) of Sabayon has been recently revived. MATE is also available in the official Entropy repository and in the official Gentoo Portage overlay. The Entropy/Portage meta-package for MATE is mate-base/mate, so running:

root #  equo i mate-base/mate


root #  emerge mate-base/mate

should install it.

Advantages (Pros)

  • Lightweight compared to GNOME 3.
  • Fairly stable.
  • Traditional user interface, making it more intuitive for users to use.
  • Has its own set of core applications.
  • Is available as an official flavour of Sabayon and is easy to install via Entropy and Portage.

Disadvantages (Cons)

  • Not as customizable as GNOME.


  • Availability: 9-10. While it is now as available to Sabayon users as GNOME, there is no guarantee a MATE edition will always be available.
  • Customizability: 6-7. Not as customizable as GNOME 3, from what I can tell. Has no built-in installer of themes, applets and other extensions, nor can new themes, applets and other extensions be installed from within a web browser interface.
  • Features: 8.
  • SRU: 5. Lighter than GNOME, its resource usage is similar to Xfce, although in most comparisons LXDE is lighter than MATE. Here is the results of my ps mem test:
  • Stability: >8. Stable from what I can tell.
  • Overall: 8.



Xfce running on Sabayon

Xfce 4.12 running on Sabayon


Xfce‘s (which originally stood for the XForms Common Environment) development began in 1996, as a free Linux clone of the Common Desktop Environment (a then proprietary DE, now LGPL licensed). It was originally based on the XForms toolkit, but since version 3.0 (released in 1999) it has been based on the GTK+ toolkit. In recent times its development has become fairly slow, with new releases being made every couple of years or so. Its latest release 4.12 was made in February 2015 and provided complete support for GTK+3, and many of its programs had been rewritten to use GTK+3.


  • Windowing system: X11.
  • Window manager: Xfwm.
  • File manager: Thunar.
  • Widget toolkit: GTK+3.

It also has its own set of core applications including Mousepad (text editor), Parole (media player) and Xfce Terminal (terminal emulator).


Xfce is fairly customizable. Most (if not all) of this customization can be done from a GUI.

Obtaining it

An official Xfce edition exists for Sabayon and on an existing install of Sabayon Xfce can be installed via Entropy and Portage. To install Xfce using Entropy run:

root #  equo i xfce-base/xfce4-meta xfce-extra/xfce4-notifyd

while to install Xfce using Portage run:

root #  emerge xfce-base/xfce4-meta xfce-extra/xfce4-notifyd

Advantages (Pros)

  • Easy to obtain, as an official Xfce edition exists of Sabayon.
  • Lighter on resource usage than some of the more popular DEs.
  • Traditional user interface.
  • Customizable.
  • Has its own set of core applications.
  • Stable

Disadvantages (Cons)

  • Some may consider it “boring” in its aesthetics. Although I think this is just because of the default theme given to it on Sabayon. You are free to make it less boring, for example Manjaro Linux uses Xfce and I quite like its aesthetics (see here for a screenshot).
  • Infrequently updated.


  • Availability: 10.
  • Customizability: 8.
  • Features: 7.
  • SRU: 5.
  • Stability: ≥8. I have never experienced any stability issues with it myself.
  • Overall: 8-9.


Incomplete Desktop Environments


Enlightenment 19 running on Sabayon

Enlightenment 19 running on Sabayon


Enlightenment (or E) is a window manager, that first began its development in 1996 and its first release was made in 1997 by an Australian-German software engineer named Carsten Haitzler. There are four major releases of Enlightenment used in modern times: E16, E17, E18 and E19. E16 is still under active development, as is E19 and the future release E20, contained in the Enlightenment GitHub repository. E17 is still very popular, due to its stability and is the basis of Moksha, a WM used by the Ubuntu (LTS)-based distribution, Bodhi Linux.


  • Windowing system: X11 or Wayland (Wayland support is only complete with E19).
  • Window manager: Enlightenment.
  • File manager: Enlightenment File Manger.
  • Widget toolkit: None.

It also has its own set of core applications, with the most notable one being terminology. Some of these applications are incredibly unstable, however.


Enlightenment is somewhat customizable, much of this is limited to textual customization (although I must say I have not learnt how to do much of this customization, yet). Available themes for Enlightenment are limited, aside from those for E17 (which can be found here).

Obtaining it

E16 and E19 are the most readily available on Sabayon from the Entropy and Portage repositories. E17 and E18, are probably best installed manually from source code, or via adding unofficial overlays (most notably rainyday) to layman and then emerging the version of Enlightenment you want. See, for example, this forum post I made asking how to install E17 on Sabayon. E16 can be installed by simply running root #  equo i enlightenment or root #  emerge enlightenment, via Entropy and Portage, respectively. While for E19 you must specify the version of Enlightenment you want as being 0.19, otherwise it will pull in E16 for installation. Using Entropy it can be installed with:

root #  equo i enlightenment:0.19

or (with Portage):

root #  emerge enlightenment:0.19

Advantages (Pros)

  • Its chief advantage is that it is fast
  • It is also stable and E16/E19 are fairly easy to get

Disadvantages (Cons)

  • Lack of customizability
  • Difficulty in obtaining E17 and E18.
  • Unconventional interface can make it tedious to get used to.


  • Availability: 7. E16 and E19 are fairly easy to get but E17 and E18 are difficult.
  • Customizability: 4.
  • Features: 7.
  • SRU: 6. Most tests I have seen have found it uses less RAM than LXDE, granted they were using different versions to me. ps mem gave a total RAM usage of 153.3 MB for E19, here is the table:
  • Stability: 8. Never crashes for me.
  • Overall: 7.



Fluxbox running on Sabayon

Fluxbox running on Sabayon


Fluxbox is a stacking window manager for the X Windowing System. It is included in a default install of Sabayon, including Sabayon Minimal. It was forked from Blackbox in 2001 and was designed to be a lightweight interface for Unix/Unix-like operating systems.


  • Windowing system: X11.
  • Window manager: Fluxbox.
  • File manager: none.
  • Widget toolkit: none.

It has no core applications.


It is easily customized, textually, by editing files in the directory ~/.fluxbox. Beyond this it is very basic, with minimum features.

Obtaining it

As mentioned it is included in the default installation of Sabayon, so there should be no need for you to obtain it yourself.

Advantages (Pros)

  • Lightweight
  • Stable
  • Simple to customize

Disadvantages (Cons)

  • Basic, no core applications or even a file manager.


  • Availability: 10.
  • Customizability: >6. I have not enough experience with customizing Fluxbox, to really comment on this, but I know that most customizing must be done textually.
  • Features: <4. No core applications or even a file manager.
  • SRU: 8. Low on resource usage, see for example this ps mem result.
  • Stability: 8. I have never had it crash on me, before.
  • Overall: 7.


Screenshot of IceWM.

Screenshot of IceWM


IceWM is a free lightweight stacking window manager, by the Croatian software developer, Marko Maček. It is designed to be extensively customizable through text files.


  • Windowing system: X11.
  • Window manager: IceWM.
  • File manager: None.
  • Widget toolkit: None.

It also has no core applications.


It is easily customized by editing text files within the ~/.icewm directory, although on Sabayon this directory must first be created by the user (for example, by running user $  mkdir ~/.icewm). There also several themes available for IceWM.

Obtaining it

It can be obtained from Entropy or Portage. To do so with Entropy run:

root #  equo i x11-wm/icewm

while to do so with Portage run:

root #  emerge x11-wm/icewm

Advantages (Pros)

  • Lightweight and fast
  • Customizable
  • Easy to get on Sabayon

Disadvantages (Cons)

  • Customization must be done textually, for the most part.


  • Availability: 8. Easy to get, but no official flavour of Sabayon with IceWM preinstalled exists.
  • Customizability: >8. Extensively customizable, it is even possible to get it look like Windows NT like operating systems.
  • Features: <2. No core applications are available for it, I have not had enough experience with this WM to know any other features of it that may be available.
  • SRU: 9. Very light on resources, see the following ps mem table.

  • Stability: >7. Never had it crash on me, but I have not used enough to be confident of its stability.
  • Overall: 8. As I said I have not had much experience with this WM, but from what I can tell it is grand for users with the time, inclination and skill to customize it, but not inexperienced Linux users.



Moksha 0.1.0 running on Sabayon

Moksha 0.1.0 running on Sabayon


Moksha, a fork of Enlightenment 17, is the default user interface of Bodhi Linux, a popular lightweight Linux distribution based on the LTS releases of Ubuntu. The word “Moksha” is Sanskrit in origin (just like Bodhi) and means freedom, emancipation, liberation or release. Compared to Enlightenment it is substantially more challenging to get on Sabayon as there are no Moksha ebuilds available in the Portage Tree or any Portage overlay managed by Layman. I have submitted a package request at requesting such a package be added to the OGO.


  • Windowing system: X11.
  • Window manager: Moksha.
  • File manager: Enlightenment File Manager.
  • Widget toolkit: None.

It is also compatible with the core applications used by Enlightenment 19.


Compared to Enlightenment it is lighter weight and provides are more conventional user interface when running the default theme of Moksha Radiance.

Obtaining it

Moksha must currently be configured, compiled and installed manually, from source code, for Sabayon users. I have managed to install it by abiding to the following steps:

Step 1: Getting the dependencies

Moksha has quite a few dependencies, but in my experience dev-libs/efl, dev-libs/e_dbus, dev-vcs/git, dev-vcs/subversion, media-plugins/evas_generic_loaders, sys-devel/base-gcc, sys-devel/gcc and sys-libs/libstdc++ are all you need to install yourself. efl can be installed with Entropy or Portage, while e_dbus must be installed with Portage as the version in the Entropy Store is not compatible with Moksha (Moksha needs version ≥1.7.10, the Entropy Store, as of 14 October 2015, only contains version 1.7.9). The way I installed them was with:

root #  equo i -av dev-libs/efl dev-vcs/git dev-vcs/subversion sys-devel/base-gcc sys-devel/gcc virtual/libstdc++
root #  emerge =dev-libs/e_dbus-1.7.10::gentoo =media-plugins/evas_generic_loaders-1.15.0

Step 2: Get the source code

To get the Moksha source code, one can either download the .zip or .tar.gz releases provided at GitHub or clone its GitHub repository. To get Moksha with Git run:

user $  git clone
user $  cd moksha
user $  git remote add upstream
user $  git fetch -p && git checkout 0.1.0 #replace 0.1.0 with the release you want

Step 3: Configure the source code

To do this run:

user $  ./configure

Now it is important that you read the output of this step, if you get any errors this will likely indicate you are missing a dependency. A list of the dependencies can be found in the README file contained in the GitHub repository, or here, but these dependencies are for Ubuntu systems, so you will need to do some research to get the required dependencies, if you are missing any. You may also specify where you want to install Moksha too at this stage, by adding --prefix=<INSTALLDIR> at the end of ./configure where <INSTALLDIR> is where you wish to install Moksha to. For example, Portage by default (if an ebuild existed, that is, for it) would use the INSTALLDIR /usr.

Step 4: Install Moksha

To do this run:

user $  make
user $  sudo make install

Step 5: Post-installation configuration

Moksha installed by just following steps 1-4 will have several bugs and other issues. What you need to do before you start Moksha is run:

user $  sudo rm -r ~/.e/e #this dir may include content from newer installs of E
user $  su #enter root
root #  cd /usr/local/share/enlightenment/data/config/default #this is dependent on the value of INSTALLDIR
root #  export JEF=
root #  wget -c $JEF/e.cfg $JEF/e_randr.cfg $JEF/exehist.cfg
$JEF/module.battery.cfg $JEF/module.clock.cfg $JEF/module.conf.cfg $JEF/module.everything-apps.cfg $JEF/module.everything-files.cfg $JEF/module.everything.cfg $JEF/module.gadman.cfg $JEF/module.ibar.cfg $JEF/module.notification.cfg $JEF/module.pager.cfg $JEF/module.syscon.cfg $JEF/module.tasks.cfg
root #  exit #exit root
user $  cd ~
user $  git clone
user $  mv MokshaRadiance/MokshaRadiance ~/.e/e/themes/

The INSTALLDIR-dependent line is dependent as it assumes you did not specify the option --prefix at the configure stage and hence make used the default prefix value of /usr/local. If you specified a prefix then this line should be changed to:

root #  cd $INSTALLDIR/share/enlightenment/data/config/default

for example, if INSTALLDIR was /usr then this line would be changed to:

root #  cd /usr/share/enlightenment/data/config/default

Advantages (Pros)

  • Lightweight
  • Provides a conventional Windows-like user interface.
  • Is customizable
  • Stable

Disadvantages (Cons)

  • Difficult and tedious to obtain on Sabayon


  • Availability: 3.
  • Customizability: 8.
  • Features: 8.
  • SRU: 8. Here’s my ps mem table:
  • Stability: 8. Never had it crash on me (yet).
  • Overall: 8-9. I rather like it.


Other Desktop Environments

This post only covers desktops that are readily available on Sabayon. Some DEs are not covered here, because I have failed to install them on Sabayon (A), or because, if I have managed to install them, they were too buggy for me to so much as get a screenshot of them for this blog post (B). Examples of A, include:

  • Deepin Desktop Environment (DDE). An overlay for this DE exists (gentoo-zh), but it is out of date and some of its dependencies are no longer available. If you have not heard of this DE, it is the desktop environment used by deepin, a Chinese Linux distribution based on Ubuntu. DDE is an independent DE (that is, it was not forked from any other DE, or built around any other DE) that is based on HTML5, WebKit and supports customization with JavaScript. While I have not managed to install DDE on Sabayon, I have managed to install it on a Manjaro Virtual Machine of mine and I found it very buggy.
  • Trinity. I have not even been able to find a Portage overlay for this DE. I have written a post on the Sabayon forums, requesting for help installing this DE from source code, but so far I have received no response. It is a fork of K Desktop Environment 3, that is available on several other Linux distributions, but apparently not on Gentoo or Sabayon.

While examples of B include:

  • Pantheon, an independent DE based on Vala and GTK+3 designed for elementary OS. I managed to install it using the elementary overlay (although I must say this was not completely without incident either, I had to file a few new issues at the GitHub repositories maintaining this overlay and those containing its dependencies, before I managed this) but it was very buggy and left my system with some broken packages, so I ended up removing it.


I would like to thank the grand people that have helped me at Sabayon forums with questions relating to this post, including (keeping in mind I am using their usernames for brevity):

as well as Ettore Di Giacinto whom helped me with an issue with Budgie I had. I would also like to thank Martin Wimpress, whom authored this blog post, which inspired me to use ps mem for RAM usage testing. Likewise I would like to acknowledge the contributions of Jeff Hoogland whom helped me with some Moksha errors I was encountering. I would also like to thank the developers of all the software I used, including Pádraig Brady, and other contributors to the ps mem GitHub repository, as well as the developers of Sabayon itself (such as Fabio Erculiani and others) and of these desktop environments, the maintainers of Entropy and Portage repositories/overlays I have used, the developers of WordPress, etc.

Opinion Poll


  1. Wallpaper from Calculate Linux 13 (from the calculate overlay, media-gfx/calculate-wallpapers package)
  2. Sabayon users are allowed to post questions here regarding Moksha

VirtualBox and Sabayon

24 September 2015 Emulation software, HOWTOs, Installation guides No comments

Figure 1: Oracle VM VirtualBox Manager 5.0.4

Figure 1: Oracle VM VirtualBox Manager 5.0.4, running under KDE Plasma 5.4.1 on Sabayon

If I had to rank which pieces of application software I like the most, Oracle VM VirtualBox (previously called Sun VirtualBox and Sun xVM VirtualBox, henceforth I will call it simply VirtualBox or VB) would probably be at the number 1 position. This is because I love Linux and through VirtualBox I can try any Linux distribution or BSD derivative I want. In fact, I first tried Sabayon through VirtualBox, so I owe my new love of Sabayon, in part to this piece of software. In this post I will talk about how you can install VirtualBox on Sabayon and how you can install VirtualBox Guest Additions in a Sabayon virtual machine.

Before I proceed I should define some terminology, a guest operating system (OS) is one being run through a virtualization program (such as VirtualBox), while the host OS is the OS on which the virtualization program is being run. VM is an acronym for Virtual Machine, which is the “virtual” computer, created by the virtualization program, in which a guest OS can be run. VDI is an acronym for VirtualBox Disk Image, a type of file format used by VirtualBox, in which the hard drive of a VM is stored.

Sabayon Guest Additions

If VirtualBox is used to run Sabayon then in Sabayon you may wish to install VirtualBox guest additions (VBGA). What VBGA does is it essentially more seamlessly integrates the guest and host OS. This allows for more seamless adjustment of screen resolution within the guest OS and for clipboard integration: that is when your guest OS and host OS use the same clipboard, so if you copy something in your guest OS and want to paste it into your host OS you can.

VBGA can be installed via three major methods, each may be appropriate under different circumstances. Regardless of the method by which you install VBGA you will need to add yourself to the vboxguest user group and reboot before you can use it, namely by running (where, of course, <USERNAME> will need to be replaced with your actual username):

root # gpasswd -a <USERNAME> vboxguest
root # reboot


The most obvious (and also easy) way would be to install the package virtualbox-guest-additions via Entropy, but it is worthwhile noting that this version of VBGA is often out of date. For example, as of 23 September 2015 the version of VBGA in the Entropy store was 4.3.28, while the latest version of VBGA was 5.0.4. Consequently, if you are using a newer version of VirtualBox than 4.3.28 to run your Sabayon VM VBGA installed via Entropy may not work properly. To install VBGA using Entropy run:

root #  equo i virtualbox-guest-additions


Installing VBGA through Portage sounds like the natural alternative, if the version of VBGA provided by Entropy is unsuitable, but in my experience this method often returns errors. To give it a try, run:

root # ver=5.0.4 #replace 5.0.4 with the version of VBGA you want
root # emerge =app-emulation/virtualbox-guest-additions-$ver
root # equo rescue spmsync && equo mask app-emulation/virtualbox-guest-additions

VirtualBox Extension Pack

Figure 1: VirtualBox Preferences window

Figure 2: VirtualBox Preferences Window.
Click the highlighted icon to the right of the Preferences Window to add your VBEP file.

If neither of these methods work or are suitable, get the VirtualBox Extension Pack (VBEP) and install it. To do this go to File→Preferences, within VirtualBox, and click “Extensions” in the left-menu of the Preferences Window. Then click the button highlighted (the one near “Adds new package.” box) in figure 2 and in the file browser that pops up find your VBEP file and add it. Check that at least one blank disk is attached to the VM before you boot it, see figure 3 for assistance on this.

Figure 3: Disks and controllers for a VM

Figure 3: Disks and controllers for a VM
The disk icon (with “Empty” written next to it), that is circled (in red), to the left of the “Storage Tree” area needs to be present in order for you to be able to insert the Guest Additions CD image. The other CD image icon that is circled (in purple) is what you need to click in order to add a empty disk, if you do not have one.

After this, start your VM, go the Devices menu and select “Insert Guest Additions CD image” in this drop-down menu (refer to figure 4). If this is the first time you have inserted the guest additions CD image, you will need to wait for VirtualBox to download the CD image ISO.

Figure 3: Screenshot of a Fedora 23 VM with the "Insert Guest Additions CD Image..." option highlighted

Figure 4: Screenshot of a Fedora 23 VM with the “Insert Guest Additions CD image…” option highlighted.

After this, in your guest machine (that is, the VM), enter root (with su) and run:

root # mkdir /media/VBox
root # mount -r /dev/cdrom /media/VBox
root # cd /media/VBox
root # ./

add your user account to the vboxguest group (with root # gpasswd -a <USERNAME> vboxguest) and reboot.

Sabayon Host

If you would like to run VirtualBox on Sabayon there are two major ways you can install VirtualBox on Sabayon: A.) using Entropy and B.) using Portage. Option A is the easiest, but option B is the way you will have to go if you want the latest version of VirtualBox. See, as previously mentioned, Entropy houses a fairly out-of-date version of VirtualBox and related packages (4.3.28 vs. the latest version of VirtualBox, as of 23 September 2015, 5.0.4), while the main gentoo overlay of Portage contains a frequently-updated and currently up-to-date VirtualBox ebuild. Additionally if you install VirtualBox through Portage you should not have to install the VBEP, afterwards, as this will have been done during the installation of VB. You can also build the documentation for VirtualBox if you install it with Portage, via enabling the doc USE flag (note this USE flag is not available for the binary Portage package). To install VirtualBox with Entropy run:

root # equo i app-emulation/virtualbox

while to install VirtualBox with Portage run:

root # ver=5.0.4 #as before, replace this with the version of VirtualBox you want
root # emerge =app-emulation/virtualbox-$ver
root # equo rescue spmsync && equo mask app-emulation/virtualbox-bin

or, if you would rather a faster install (as you will be installing a binary package and not a source code package), emerge the virtualbox-bin package instead of virtualbox:

root # echo “app-emulation/virtualbox-bin PUEL” >> /etc/portage/package.license
root # ver=5.0.4 #as before, replace this with the version of VirtualBox you want
root # emerge =app-emulation/virtualbox-bin-$ver
root # equo rescue spmsync && equo mask app-emulation/virtualbox-bin

in my experience installing VirtualBox with Portage occurs much more seamlessly than installing VBGA with Portage. Regardless of method you use to install VirtualBox, after installing it you will need to run:

root # gpasswd -a <USERNAME> vboxusers


Running VirtualBox

After you have installed VirtualBox, you will naturally want to use it. The slideshow below covers the process of setting up a VM in VB, in 14 slides.

After starting the VM from the live ISO you can run the installer (if there is any) or otherwise follow the same method to install the guest OS as you would if you had booted from a live USB. Or, if you would prefer, you can just keep running a live session, just remember any changes you make will be lost as soon as you shutdown the VM. Using this method of installation I have managed to install the following OSs:

  • antiX 15
  • Arch Linux
  • Bodhi Linux 3.11
  • CentOS 7
  • Debian 8.0, 8.1 and 8.2
  • elementary OS 0.3 and 0.3.1
  • Fedora 22, 23 alpha/beta and rawhide
  • GhostBSD 10.1
  • Kali Linux 2.0
  • KaOS
  • Korora 21 and 22
  • Linux Mint 17.1 and 17.2
  • Mageia 5
  • MakuluLinux 7.0
  • Manjaro Linux
  • OpenMandriva 2014.2
  • openSUSE 13.2
  • PC-BSD 10.2
  • PCLinuxOS 2014.12
  • Sabayon Linux
  • Trisquel 7
  • Vector Linux 7.1
  • Xubuntu 15.04
  • Zorin OS 9 and 10

Further Reading

Installing SageMath on Sabayon

22 September 2015 Installation guides, Mathematics software No comments

Figure 1: Screenshot showing the SageMath 6.8 Notebook

Figure 1: Screenshot showing the SageMath 6.8 Notebook solving the Lotka-Volterra equations

SageMath is a free and open-source mathematics software written in Python and Cython that integrates several other pieces of free mathematics software in a common command-line/browser-based notebook interface. It can be installed on Sabayon via two major methods: A.) using Portage and B.) compiling from source manually. Of these option A is usually easiest, but it will take some time to do nonetheless. Option B is something I have not tried on Sabayon in recent memory, because I know from trying this on other distributions (such as Fedora and Ubuntu) that it is a nightmare unless you have a photographic memory of all of SageMath’s dependencies and known build issues on Gentoo/Sabayon.

If you need further assistance than this post provides on installing SageMath using Portage, I suggest you ask for it at the Sabayon forums, as I am not experienced enough with Portage to be able to provide much further assistance (in fact you will find most information provided by this post in the answer to a question I asked in the Sabayon forums). Alternatively you can start another issue in the sage-on-gentoo overlay GitHub repository, detailing any errors you have encountered with this build (although you should only add issues there relating to failed builds of the sage package or other packages provided by the sage-on-gentoo overlay).

Installing SageMath using Portage

An up-to-date SageMath ebuild can be found in the sage-on-gentoo overlay. To add this overlay to layman run:

root #  layman -a sage-on-gentoo

Then sync emerge and layman with:

root #  emerge –sync && layman -S

After this what you do is up to you, but I would recommend you run and take note of the output of:

root #  emerge -pv sci-mathematics/sage

try to install as many of the dependencies as possible with root #  equo i <PACKAGE>. Then run:

root #  emerge sci-mathematics/sage
root #  equo rescue spmsync && equo mask sci-mathematics/sage

to emerge the remaining dependencies (should be >20, by the way) and then SageMath itself. You may need to fiddle around with USE flags and masked packages, to get this to work, however. For example, you may need to add the following line in /etc/portage/package.use/gentoo.use:

before emerging sage. By the way, if you have the science overlay added, you may wish to add the following lines to /etc/portage/package.mask/gentoo.mask:

before you emerge sage and its remaining dependencies, as I know from my own personal experience that these packages often give out errors while compiling, although their counterparts in the main Gentoo overlay do not.

Installing RuneScape Unix Client on Sabayon

19 September 2015 Games, Installation guides No comments

The RuneScape Unix Client (RSU) is a RuneScape game client designed specifically for Unix/Unix-like operating systems such as the various distributions of Linux, including Sabayon. It is developed by Hikari Knight (HK) and others in HK’s GitHub rsu-client repository. While RSU is not strictly necessary to play RuneScape on Sabayon, as it can be played in any Java-capable web browser (such as Mozilla Firefox, Sabayon’s default browser, Google Chrome, is not Java-capable, however, as of version 45), it can be useful for reducing system resource usage and hence improving the performance of the game.

It can be difficult to install RSU on Sabayon, due to the fact it is not in the official Entropy repositories, nor is it in any official Portage overlays. There is a GitHub repository with tools for installing RSU on Gentoo Linux and related systems, including a Portage overlay that can be added using it (and a wiki guide to using this overlay to install RSU), but this overlay is often out of date. For example, as of 19 September 2015 the latest version of RSU was 4.3.4 (released 18 September 2015), while the latest release of RSU provided by this overlay was 4.3.0 (which was released 22 January 2015).

Alternatively to get the latest version of RSU one can download the run installer from RSU’s GitHub repository and install it.

Installing the dependencies

To install the dependencies of RSU using Entropy (equo) run:

root # equo i dev-lang/perl dev-perl/Archive-Extract dev-perl/Config-IniFiles dev-perl/IO-stringy dev-perl/wxperl media-libs/alsa-oss app-arch/p7zip media-sound/pulseaudio

I would not recommend installing these dependencies using Portage (emerge), as the version of Perl used by these packages is masked by /etc/portage/package.mask/00-sabayon.package.mask, specifically the line:


Installing RSU using the run installer

To install RSU using the run installer provided by the rsu-client repository, run:

user $ ver=4.3.4 #replace 4.3.4 with the version of RSU you want
user $ wget -c$ver/
user $ unzip
user $ sudo ./

Running WordPress on Sabayon

16 September 2015 Content management systems, Installation guides No comments

WordPress (WP) is a free content management system, used primarily as a blog application, and is used to power numerous websites (including blogs, such as this one). It requires a MySQL backend database (MariaDB is an acceptable alternative), the PHP scripting language and a web server (usually Apache, but nginx is also acceptable). Henceforth I will refer to this software bundle as LAMP (short for Linux, Apache, MariaDB/MySQL and PHP). Setting WP up to run on Sabayon is fairly simple and boils down to three steps, firstly, getting the dependencies set up and ready for WordPress. Secondly, getting the source code and moving it to the appropriate location on your system. Then thirdly, running the installation script of WordPress.

Step 1: Getting the dependencies

LAMP can be installed with a variety of different methods. It may be prudent to enable PHP support for all packages with

root # euse php

before installing LAMP, if you intend to use Portage to install it.

Table 1: Installing LAMP on Sabayon
root # equo i virtual/httpd-php dev-db/mariadb www-servers/apache
root # equo config dev-db/mariadb
root # equo i virtual/httpd-php dev-db/mysql www-servers/apache
root # equo config dev-db/mysql
root # emerge virtual/httpd-php dev-db/mariadb www-servers/apache
root # emerge –config dev-db/mariadb
root # equo rescue spmsync && equo mask virtual/httpd-php dev-db/mariadb www-servers/apache
root # emerge virtual/httpd-php dev-db/mysql www-servers/apache
root # emerge –config dev-db/mysql
root # equo rescue spmsync && equo mask virtual/httpd-php dev-db/mysql www-servers/apache

After installing LAMP the following files will need to be edited: /etc/php/apache2-php5.x/php.ini (where x is dependent on the version of PHP being used, e.g., if using PHP 5.6 then x=6) and /etc/conf.d/apache2. The first of these will need the following lines uncommented (that is, have the semicolon, ;, before them removed):

the final line can be left commented, if using MySQL instead of MariaDB for the backend database.

Likewise /etc/conf.d/apache2 will need -D PHP5 added to the end of the APACHE2_OPTS="..." line (within the quotation marks, however). Likewise you will need to enable and start the apache2 and mysqld daemons.

root #  systemctl enable apache2 && systemctl start apache2
root #  systemctl enable mysqld && systemctl start mysqld

After this you will need to set up a MariaDB/MySQL database for WordPress. To do this run mysql -u root -p, entering your root password for MariaDB/MySQL and then run CREATE DATABASE wordpress; to create a database entitled “wordpress”. It should not make any difference if you choose to call the database something other than wordpress, just make sure you remember this database name as you will need it for the final step.

Step 2: getting the source code

This step can be carried out a number of different ways, each of them equally valid, but for simplicity this section will only mention one such method that can be done from the command-line.

root # cd /var/www/localhost/htdocs/
root # wget -c
root # tar -xzf latest.tar.gz #you may also wish to delete latest.tar.gz after this step
root # mv wordpress wp
root # chmod 777 -R wp
root # chown apache:apache -R wp

Step 3: Running the install script

To do this simply open your favourite web browser to http://localhost/wp and complete the installation wizard. If you are still working at the command-line and would like to start this final step from the command-line you can run:

user $ xdg-open http://localhost/wp

Installing Atom on Sabayon

14 September 2015 Installation guides, Text editors 4 comments

Atom is a new (its first stable release was in June 2015) free cross-platform text editor by GitHub that is licensed under the MIT License. It is my favourite text editor as it is essentially Vim or Emacs for non-techies, that is, it has many of the same features that both Vim and GNU Emacs boast yet is simple enough that even an inexperienced technology user should be able to use it. There are pre-built binary packages available for the 64-bit versions of the more popular Linux distributions (such as Debian, Fedora, Linux Mint, openSUSE and Ubuntu), but for Sabayon Linux there is so far no Atom binaries available in the Entropy store. Consequently, Sabayon users must either install Atom using Portage (several overlays are available that contain Atom, although the main Gentoo overlay does not) or build Atom from source themselves.

Installing Atom from a binary package

I have recently (23 October 2015) set up a GitHub repository that provides information on how to install Atom from pre-compiled binary package(s) I upload to my Dropbox.

Installing Atom with Portage

To install Atom with Portage using the emc overlay (which I have chosen because it contains the greatest number of Atom ebuilds and seems to be frequently updated), run:

root #  layman -a emc
root #  emerge –sync && layman -S
root #  emerge app-editors/atom
root #  equo rescue spmsync && equo mask app-editors/atom

Building Atom Manually

Getting the dependencies

To install the dependencies for Atom, using Entropy, run:

root #  equo i nodejs libgnome-keyring gcc make dev-util/ninja fakeroot media-fonts/inconsolata

Getting the source code

Atom’s source code can be obtained via cloning its git repository or downloading tarball releases of its source code. If one intends to update Atom when new releases become available it is probably advisable to use git to get the source code.

To get the source code using git, run:

user $  cd ~
user $  git clone
user $  cd atom
user $  git remote add upstream
user $  git fetch -p
user $  git checkout $(git describe –tags git rev-list --tags --max-count=1)

To get the source code using wget, run:

user $  ver=1.0.19 #replace 1.0.19 with the version of Atom you are downloading
user $  cd ~
user $  wget -c$ver.tar.gz
user $  tar -xzf v$ver.tar.gz
user $  mv atom-$ver atom

Building Atom

To build Atom after installing the dependencies and getting the source code, run (from ~/atom):

user $  script/build
user $  sudo script/grunt install

The first of these lines may need to be repeated if errors are encountered.

Upgrading Atom

If one got the source code using git, then to upgrade Atom run:

user $  cd ~/atom
user $  git fetch -p
user $  git checkout $(git describe –tags git rev-list --tags --max-count=1)
user $  script/build
user $  sudo script/grunt install

alternatively, if you got the source code with wget, then to upgrade atom run:

user $  sudo rm -r ~/atom
user $  ver=1.0.19 #yet again, replace this with the version of Atom you want
user $  cd ~
user $  wget -c$ver.tar.gz
user $  tar -xzf v$ver.tar.gz
user $  mv atom-$ver atom
user $  cd atom
user $  script/build
user $  sudo script/grunt install

Known issues

I have noticed that upgrading using git, gave me the output:

Node: v0.12.7
npm: v2.13.3
Installing build modules…
Installing apm…
Installing modules ✓
Deduping modules ✓
Running “download-electron” task
Fatal error: Cannot find module ‘binary’

when I was upgrading from v1.0.11 to v1.0.13. I have reported this issue at the Atom GitHub repository. I ended up having to upgrade using the source code tarball method.


As previously mentioned in this post, there currently is no Atom package in the Entropy repositories, but I have posted a request to add Atom to the Sabayon overlay (which is a prerequisite for it to be added to the Entropy repositories).

External Links