yet.org

Elementary

Elementary is a new initiative to create an Operating Sytem with an emphasis on elegance.

Elementary team have a commitment to a particular toolkit (GTK+) and support a preferred programming language (Vala). They’ve created an application development framework (Granite) and other developer tools that are designed to help developers build apps specifically for this platform.

Current Luna Beta 1 version is based on Ubuntu 12.04 LTS (Precise Pangolin).

Let’s review all the components of this sleak OS.

Major Components

Window Manager - Gala

Gala is built on LibMutter which is the library used by Mutter the Gnome3 Window Manager. Both Mutter and Gala uses Clutter which does its rendering using OpenGL or OpenGL ES to offer a light and smoothly-animated experience in addition to support for more complex decoration theming. Power users will love the new workspace management features as well.

LibMutter offers smoother (antialiased) window corners. Gala also gives us the ability to have beautiful big shadows beneath our windows and resize windows is now smoothly done in realtime

Gala organize Workspace in a horizontal list, a workspace will be automatically closed with the last window. If you close a Workspace from the switcher, Gala will close all running windows too.

When using alt+TAB only the selected window will be displayed, the Dock will display the order in which the windows will appear. Elementary OS team choosed not to introduce any new and invasive UI element that would only be seen during window switching.

Grid-based window tiling is inherited from LibMutter

Desktop environment and shell - Pantheon

Consists of the greeter, panel, app launcher, dock, window manager, settings app, and theme.

Pantheon Greeter (login screen), is now built on LightDM. It features smooth graphics and animation with Clutter, displays the time and date with beautiful typography, and has built-in accessibility.

Application launcher - SlingShot

App launcher, displays an optimal 3x5 paged grid of app icons built for speed and utilizes Granite which ensures consistency with the rest of the system.

Top panel - WingPanel

WingPanel is a space-saving top panel with a refined look providing easy indicators access; clicking an indicator reveals a pleasing popover with the relevant items, and the Applications item now opens Slingshot instead of a menu.

Dock - Plank

Plank is meant to be the simplest dock on the planet. The goal is to provide just what a dock needs and absolutely nothing more. It is, however, a library which can be extended to create other dock programs with more advanced features. Thus, Plank is the underlying technology for Docky (starting in version 3.0.0) and aims to provide all the core features while Docky extends it to add fancier things like Docklets, painters, settings dialogs,

Plank is one of the only part of Elementary to be developed in Vala by 3rd party developers and features LibUnity integration to allow to show app badges, progess bars and contextual quicklist items.

If you need to change the Dock Position, change the value of Position= in the ~/.config/plank/dock1/settings file, put instead: 0/1/2/3 respectively for left/up/righ/bottom.

Settings - Switchboard

Unified system configuration, supports a slick open standard for settings panes, called plugs (standalone executable binaries). Luna comes with a number of plugs preinstalled as well as a transitional compatibility layer for GNOME’s System Settings panes.

Switchboard is divided in four categories : Network, Hardware, Personal, System. Application level settings won’t be available here.

Elementary Applications

Terminal - Pantheon Terminal

A lightweight and simple terminal emulator. It makes use of Granite, meaning it has excellent and consistent tab management.

Editor - Scratch

Scratch is the text editor that works for you. It auto-saves your files and remembers your tabs so you never lose your spot, even in between sessions.

It is written from the ground up to be extensible. Keep things super lightweight and simple, or install extensions to turn Scratch into a full-blown IDE; it’s your choice. And with a handful of useful preferences, you can tweak the behavior and interface to your liking.

Scratch closely follows the high standards of design, speed, and consistency. It’s sexy, but not distracting.

Syntax-highlighted languages: Bash, C, C#, C++. Cmake, CSS, .Desktop, Diff, Fortran, Gettext, HTML; ini, Java, JavaScript, LaTex, Lua, Makefile, Objective C, Pascal, Perl, PHP, Python, Ruby, Vala, XML.

Additional features include:

  • syntax highlighting with gtksourceview–3
  • a find bar to search the words in the files
  • strong integration with Granite framework by elementary-team
  • tab and split documents system

Web Browser - Midori

Newer and much faster version of WebKit, providing an all-around better experience and supporting the latest in CSS3 and HTML5. A new Dynamic Notebook has been integrated from Granite, giving Midori a beautiful and consistent tabbed browsing experience. Midori also makes use of Popovers in its bookmarking interface. Lastly, Midori has received many important compatibility and security updates.

Mail Client - Geary

A new mail client which supplants Jupiter’s (previous release) Postler and does a mighty fine job. Geary brings some of the best features of webmail to the desktop—like threaded conversations and excellent HTML rendering—while excelling in desktop integration with attachment handling, mail notifications, and more.

Geary doesn’t store the data locally (keeps some caching though) but syncs with the mail server in “real time”.

Currently lacking features of v0.2: Searching, Multiple accounts, Offline mode.

Calendar - Maya

Maya, a new app in Luna, is a simple desktop calendar. With it you can create, view, and manage events to organize your agenda.

Contact - Dexter

Dexter is a contact management application for Pantheon

Music player - Noise

Noise is a brand new music player, it combines a beautifully simple interface with a powerfully fast backend to let you get right at your music. It makes excellent use of Granite’s ThinPane and DecoratedWindow widgets, ensuring consistency with the rest of the desktop.

Developement Framework - Granite

Granite is an extension of GTK. Among other things, it provides the commonly-used widgets such as modeswitchers, welcome screens, AppMenus, search bars, and more found in elementary apps.

Elementary Keyboards Shortcuts and special keys

⌘ + Left/Right Switch Workspace
⌘ + Space App Launcher
⌘ + Zero New Workspace
⌘ + S Workspace overview
⌘ + W Window Overview
⌘ + A Window Overview across all workspace
⌘ + L lock screen
⌘ + ⇧ + Left/Right Move Window with Workspace
⌘ + Ctrl + Left/Right Snap Window to Half of Workspace
⌘ + Ctrl + Up/Down Maximize/Unmaximize Window
⌘ + Click + Drag move window around
⌘ + Right Click + Drag Resize Window
Crtl + ⇧ + C copy inside the terminal
Crtl + ⇧ + V paste inside the terminal
Crtl + alt + tab cycle through panels
AltGr + n + space ~

Customization

Elementary is great, but let’s make it even better with the following customization

  • ZSH installed, alias rake=“noglob rake” added, globbing interfere with [] in Rake commands
  • Oh My Zsh auto-installed from GitHub shell script, see YET article
  • Sublime Text 2 installed with Twiligh color scheme.
  • VMware Tools for Ubuntu 12.04 see installation Note.
  • RVM installed to install & manage Gems (nanoc, adsf, fssm, ..) & Ruby 1.9.3
  • peg-multimarkdown installed from source
  • gimp installed
  • exclude host from proxying with: gsettings set org.gnome.system.proxy ignore-hosts “[‘localhost’, ‘127.0.0.0/8’, ‘10.0.0.0/8’, ‘192.168.0.0/16’, ‘172.16.0.0/12’ , ‘*.localdomain.com’ ]” gconftool -R /system/http_proxy [to remove proxying which interfere with Sublime Text Package Control]
  • iftop, vnstat, htop, slurm installed for network & process monitoring
  • tree installed for nice tree dir colored output.
  • dnstools installed to debug DNS issues.
  • dropbox installed from deb provided on their site.
  • dconf-tools to configure Pantheon Terminal colors using dconf-editor but still a work in progress, waiting for future release of Luna. Currently using Gnome Terminal instead to benefit from Solarized Dark palette. using customization below.
  • sudo apt-get install python-setuptools; easy_install Pygments; easy_install sphinx; export LC_ALL=en_US.UTF; export LANG=en_US.UTF–8; make html; make epub
  • sudo apt-get install sshfs; usermod -a -G fuser brauns; sshfs user@:/remote/path/ /mnt/local/path
  • pidgin installed (IRC client)

AltGr inversion trick

  1. Linux VM need to be configured with Mac Profile Keyboard in settings

  2. To switch both Alt keys (from blog)

  3. Edit ~/.Xmodmap

    % vi .Xmodmap

    clear mod1
    clear mod5
    keycode 108 = Alt_L
    keycode 64 = ISO_Level3_Shift
    add mod1 = Alt_L
    add mod5 = ISO_Level3_Shift

  4. Reread this file with xmodmap .Xmodmap

  5. see here for more information on Apple Keyboard on Ubuntu

Note: to display keycode of touch pressed on the keyboard, you can launch from a terminal the showkey application.

Adding Sublime Text 2 Icon & Launcher

  1. Copy Sublime Text 2 classic Icon or this newer one

    % cp sublime_text.png ~/.local/share/icons/

  2. Edit launcher

    % vi /usr/share/applications/sublime_text.desktop

    #!/usr/bin/env xdg-open

    [Desktop Entry]
    Name=Sublime Text 2
    Exec=/home/brauns/SublimeText2/sublime_text
    Icon=sublime_text
    Type=Application
    Categories=GNOME;GTK;Utility;TextEditor;Development;
    MimeType=text/plain;text/x-web-markdown;
    StartupNotify=true
    Terminal=false

Solarized colors

Dircolors

To install Solarized color theme for LS_COLORS:

wget --no-check-certificate https://raw.github.com/seebi/dircolors-solarized/master/dircolors.ansi-dark
mv dircolors.ansi-dark .dircolors
eval `dircolors ~/.dircolors`

To make it persistent you can add the above line to your ~/.zshrc

Gnome Terminal

To setup Solarized for GNOME Terminal:

git clone https://github.com/sigurdga/gnome-terminal-colors-solarized.git
cd gnome-terminal-colors-solarized

And now you can set it to light or dark using the following commands:
./set_dark.sh
./set_light.sh

Conclusion

I’ve been using Elementary for few days now, I find it even better then Mac OSX. I’m now using it fulltime now :). So I encourage you to test it, You’ll find the iso on their site.