Getting to know Elive-E16 desktop by customizing it.

History

Elive, on it's introduction, made quite a splash. A distribution that excelled in the way the E17 desktop environment was presented. Snazzy, with great optical effects whilst being fast and stable.

Elive Stable with its E17 Desktop

That was more than a decade ago and the Stable version from those days is only available on it's original 32 bit Debian Wheezy base, which alas isn't supported anymore. While still usable in it's own way, age is beginning to show especially when it comes to having a modern browser available.

The world and Elive have moved on and now there are 64bit as well as 32bit versions, built on Debian Buster: Elive-Beta-3.8.19 ... and counting.

Although the current naming scheme (Beta) does suggest there are bugs and stability issues, this certainly is not the case. Elive Beta is a fast, pretty and stable distribution well worth downloading and using on a daily basis.

It has to be noted that the current iterations of Elive do not run the E17 desktop, for a number of reasons. Mainly because E17 itself isn't maintained anymore and being replaced by Enlightenment (that actually is E17's right name) version E24, which is still under heavy construction and prone to unexpected changes. To remedy this the Elive team decided to use the trusty E16 desktop as it's still actively maintained, perfectly stable and modifiable to a great extent. Thus offering a sound, fast and intuitive desktop base for your daily work-flow whilst continuing to integrate and test Enlightenment behind the scenes.

There were some hurdles to be taken to get E16 into a shape that would be acceptable to contemporary desktop demands, of which the greatest was that E16, like most of it's contemporaries at the time, actually wasn't a comprehensive desktop suite with adapted applications. Finding and integrating external, light-weight applications and still keep a comprehensive look and feel to the desktop is a continuing and daunting task. It's the main reason this article or How-to came about .

The current default desktop that comes with the live/install image, uses Cairo-dock as panel and systray holder while E17's conspicuous desktop-pager has been replaced by two small and shade-able virtual desktops on the left hand side.

Elive Beta first start-up default E16 Desktop

 

Now while cairo-dock in it's own way is a formidable panel application, I personally found it to be too obtrusive, resource hungry and Gnome oriented. Almost a whole Desktop in itself, which is quite a feat but not what I expect from a "lean & mean" desktop panel, that has to get out of my way when I'm working. It definitely had to be sacrificed in my quest for a lightweight work environment.

The two virtual desktops, each subdivided into six areas are a clever trick but I found that they actually confused me more often than not, making me yearn for the big pager E17 had. The fact that the pagers could be shaded out of the way with a click was something that did appeal and gave whole array of new configuration possibilities to consider.

So I decided to have some fun and see what I could do to get closer to my personal idea of what a minimal, lightweight desktop should be like and at the same time shed some light on the workings of E16.

Let the fun begin.

 

Removing old and installing new stuff.

 

 

As mentioned previously, the first thing to do is to remove cairo-dock completely. It will be in the way of other applications, especially with the area it reserves for icon magnification.

This removal is done by right-clicking anywhere on the dock itself or on one of the external iterations like the CD icon top left

choosing "quit"

50%

and "POOF!" cairo-dock and all it's sub docks are gone. Now you can carry on from there and install or run other stuff but bear in mind that on a restart of E16, cairo-dock will be there again.

The easiest way to prevent this coming up again, is to simply stop it being run at start-up by editing the file that does just that. A file that we will need to edit to enable our own applications later on, so we might as well get acquainted with it. The file resides in a hidden directory (a so called dot directory) which can be made to show up in your file manager by using the keyboard shortcut Ctrl + h combo. Hitting that combo a second time hides them again ( the combo is a toggle), which certainly helps to give a more uncluttered view of your home directory (aka $HOME). The file we want is ""$HOME/.e16/startup-applications.list" and a double-click will open it in your preferred editor or in "scite", the Elive default editor.

 

Scite in action

 

As you can see "cairo-dock" is there as the last entry. The easiest way is to simply "comment out" that entry by putting a # at the beginning of that line so that if you ever want to re-enable cairo-dock again you will only have to remove the # there.

It's all about choice

Having gotten cairo-dock out of the way we'll need to look for a replacement, that is if you want a dock, panel or systray icons. The reality is that you don't need any of those extras to be functional on E16. A simple click anywhere on your desktop will open a menu offering the available applications. A true minimalist might find that more than ample but personally I do have a few favorite applications I want ready access to through my touch screen and I find the systray icons very helpful in many ways, as well.

So let's have a quick look at what applications show promise in that respect.

Here's what I've been trying out:

First and foremost I found I wanted a taskbar that included the systray, much like most desktop environments do. Luckily Elive has just that application available in the repositories: "tint2"

It's easy enough to install. Just double-click on your desktop to fire up a terminal and enter the following command there: api tint2 Which will prompt for a sudo password (that's generally your own login user password) and subsequently installs "tint2".

As a cairo-dock substitute I eventually found "plank" to be the most satisfying albeit I did contemplate having only tint2 as the panel as well. I do use just that on my old Lenovo Yoga that only has one or two applications to run.

The yoga set up

Installing plank is as straight forward as was tint2. In the terminal: api plank will find and install it, bringing in all the needed dependencies. Plank, like tint2 can be started from the menu, utilities category.

Plank, once started with it's default configuration is fairly plain but further on we'll customize it exactly to our needs. First we'll concentrate on adjusting tint2 to our specific needs.

 

Customizing tint2

To start tint2 open the "click-anywhere on the desktop" menu and in the Settings section find "Tint2 Settings".

 

Which will open the tint2 configuration window.

Here's a short video on how to change some settings to your own taste:

 

To accommodate, that is give enough room, for the pager (If it shares a space with the panel) "tint2" has to be set to a smaller size than 100% (I used 70%) to avoid overlapping. Once done, I can set the pager to maximum size and it will use the available 30% left there.

On a side note:

In the video you can see me adding "app-launcher" to the launcher items. You will not have that application available on your pristine Elive installation yet but don't worry, it's something we'll be creating later on.

Customizing our plank.

Plank's content itself is easily customized by drag&drop, meaning you can drag items off it and make them disappear or adding them by right-clicking on a running application icon and opting to check "keep in dock", The default plank installation comes with a few themes that can be found by right-clicking anywhere (but not on an icon) in the dock and holding the Ctrl key at the same time and then going into "prefererences".

Which shows there aren't really many options, necessitating a hunt for those on the net, as the Elive repositories don't really offer much in that section either. A wonderful growing collection of themes can be found on github:

https://github.com/dancooper71/Plank-Themes

Where, as the on-site explanation reveals is as easy as copying the contents of the Plank Themes folder found there, to $HOME/.local/share/plank/themes or to /usr/share/plank/themes if you want system-wide usage.

After this, your plank will have 100+ themes to test out and play with. Yay!!!

More additions.

As promised, we'll now handle the "app launcher" that could be seen in the tint2 video. The thought that led to this is, that I found it a bit dumb to have an icon on my panel that launches the same menu, as single click on the desktop does. I wanted something more intuitive and versatile whilst avoiding having to type commands in a terminal to start an app. After contemplating "kupfer" for a while, I found that "rofi" was the best candidate. Ultra theme-able through simple config files and plenty of themes already available by default.

Again installation was as simple as api rofi in the terminal but then the default theming, as with most apps was extremely bland. After digging around I discovered the command rofi-theme-selector which allows one to try out and view the available themes. Eventually I opted for the "arthur" theme to run and altered the config of that theme file in "/usr/share/rofi/themes/arthur.rasi" to have it use two columns.

Which is described in the man-page for "rofi-theme", excellent documentation for anyone wanting to play around with the themes. Eventually resulting in the following widget using the command rofi -show drun

Also allowing me to type a fuzzy search into a command or it's description and launch it with an Enter.

Now having downloaded all the third party stuff we need, let's get on with having everything up and running.

Making them run on startup

That's fairly easy and we already hinted at that before. It requires adding the applications to our "$HOME/.e16/startup-applications.list" which can be done by editing that file in your editor and adding the apps, line by line.

The geeky and faster way is to simply use the following command:

Custom applications

There is a "thing" with plank, as well as tint2 that they require an app to have a .desktop entry in "/usr/share/applications/", albeit somewhere in your $HOME or a dedicated directory will suffice too.

Tint2 can be configured to add a custom directory containing extra applications next to those applications found in "/usr/share/applications" but they will need to be in the right .desktop format. Those same .desktop files can be dragged onto plank with full functionality.

Rofi, which we installed previously for instance, doesn't come with a .desktop file. We'll need to roll up our sleeves and do it ourselves.

We'll want to call it "rofi.desktop" obviously and it's content would be something like the following:

Where after "exec=" the command to run (including wanted flags) is put and "Icon=" is the path to the icon I use for it, but it can be any icon you want it to be.

I used my own home-grown icon set there and If you want to, feel free to download and use the icon set here:

https://gitlab.com/triantares/custom-elive-icon-set

If you add this rofi.desktop file to /usr/share/applications/ (you will need "sudo" for that) it will also show up in your desktop menu as "app launcher".

Naturally you can do this for other "rogue" programs you downloaded or made yourself or even to check out why it doesn't show an icon in your desktop menu ..... or simply to change an icon that you find bothersome or plain ugly.

 

re-arranging the default E16 desktop.

 

Options, options, options.

Let's have a quick look at a few of the options available:

Large pager on the left with plank and tint2

Single tint2 on top with large pager below

Pager top right with plank on the left and resized tint2

 

The pager

As my personal preference I use the excellent retrowave theme (which can be installed with the usual: api e16-theme-retrowave) but I definitely want a proper E17 like big pager on the top right of the screen and also have the slide-in and -out function available. That'll need some customizing in the theme, as it's oriented to the default setup only, something we are specifically trying to change.

To do that I'll need to alter the retrowave theme in "/usr/share/share/E16/themes" or create and add my own. The latter is the better option in the long run, as those edits in /usr/share will be reset to the default settings every time the theme is upgraded, losing all customization.

This is what I'm aiming for:

Semi transparent Pager slid open (keeping it on top of everything)

and slid back in.

As the current pager only allows for unshading/shading from left to right we'll need to add an option for up/down and the clickable bar underneath. Here's what we need to do, to be able to have a pager that does just that.

  • In the "$HOME/.e16/Retro-Custom/borders/" directory we add the file: "pager_bottom.cfg" which contains the following content:
  • Then to have this option available when we manipulate our pager, we need to have that border option added in the file "Retro-Custom/borders.cfg" thus:
  • Giving us more choices on border styles in general but the pager in particular, when using Ctrl, Alt & Right-click to access those options.

E16 GUI magic

E16 can be configured by editing text files, but because it's E16 (i.e Enlightenment based) there are ways of doing that through settings or by Ctrl, Alt & -right-clicking- widgets to open extra options. Let's do that, first by opening the enlightenment, settings:

And first setting the pager to only show a single instance in the Desks department.

And setting the number of wanted screens in the Areas department.

In both cases not forgetting to click "apply" to save the choice.

 

After this we can simply drag the open pager to anywhere we want to by grabbing it using Ctrl, Alt & Left-click and resizing it to our needs by simply grabbing one of the corners and pulling.

Once the pager has been placed on the top right corner, we'll want to change the shading direction and the border into what we added earlier by using Ctrl, Alt & Right-click in the pager itself and going into the "set border style" sub-menu

and choosing "pager_bottom".

The other "side_---" options shown there are additions of my own for plank. We'll be discussing those in a later stage.

As I intend to have the pager shading/unshading using a shortcut key (the SUPER or WIN key), I'll want the "Set Stacking" set to "On Top" to have it accessible above anything else I've opened on my desktop, whenever I want and getting it out of my way again with the same key.

I don't want to have to go about resizing or moving my window away just to see the pager, I want fast access.

After which we'll have to make sure all the settings we've made like size, placement, stacking, border style and such are remembered by: you guessed it!!

Ctrl, Alt & Right-click and choosing "remember ..."

Which is something you can do with any opened window or widget on any version of Enlightenment and have it open in exactly the same place and size in the future.

Nifty plank tricks

Now having customized the pager in the way we just did, I realized the same could be done for my favorites-panel using plank. Now plank is quite nice, especially since it's been getting some extra attention lately by the folks from the Elementary distribution but it has some caveats.

  • A major one is that the "hide" options don't work in the way that I need and like the pager, I want it to be easily accessible at all times.
  • Another is that it takes up quite a bit of screen space, similar to cairo-dock, blocking access to any applications in that space.

That meant disabling the "hide" options in the plank preferences and having it behave in the same fashion as our pager. Ergo creating a shortcut key-combo for it to shade/unshade but having do so without a border, unlike the pager.

That leads to the need of creating more border options: Specifically the "side_left|right|top|bottom" border options were made to test the various positions on the screen. To keep the plank panel without borders but being shade-able does require a small 1 pixel border from which to shade, a 0 pixel border will refuse to work.

Not liking a long 1 pixel border over the full length of my screen, I opted to keep that on the short side of the panel i.e "side_top" for a panel on the right side and ""side_left" if i want the panel on the bottom.

Like with pager we'll need to add the border option both as a config file as well as adding it's instance to "~/.e16/themes/Retro-Custom/borders.cfg"

Here's the content of "~/.e16/themes/Retro-Custom/borders/side_top.cfg"

Which requires the mentioned addition to borders.cfg but this time we'll do it through the command-line in a terminal again with:

Then, like with the pager we'll Ctrl, Alt & Right-click to set the correct border as well as the stacking position and "remember ..." it. Unlike the pager, this particular border doesn't allow the shading to happen by clicking the visible border and can only be done through the shortcut key combo.

Let's create those now.

Setting key bindings

To do this there are, as always two ways: GUI and command-line.

Through the menu, settings, e16keyedit or by editing the specific file that keeps those settings: "~/.e16/bindings.cfg". Let's add the shading toggle for the panel to the WIN or SUPER (on my machine it's only on the left so that'll be SUPER_L) and the pager to Ctrl & WIN and again, let's do that with some command-line magic

for the pager and

for plank.

I suspect that for some readers the command these keys run might need some explaining, especially the "eesh" part.

eesh in short

eesh in all simplicity is a way to interact directly with, in this case E16, through scripts or directly using the command-line where in other cases it would be through your default shell, be it "bash" or "zsh". The best way to get to know it is to simply look at it's "help" options in a terminal with:

Which gives:

To see how it works just use the following from a terminal:

Or to get a list of all currently opened windows: