All is about my experience | Linux

Like Us

Showing posts with label Gnome. Show all posts
Showing posts with label Gnome. Show all posts

12 May 2017

Load Resource UI dengan Vala


Untuk memuat file UI dengan vala terdapat dua cara yaitu Builder.from_file() dan Builder.from_resource()
Tentunya kedua cara tersebut memiliki kelebihan dan kekurangan misalnya from_file() hanya dapat bekerja jika file .ui berada satu folder dengan source file .vala , kelebihannya mungkin lebih simpel dan gak banyak konfigurasi lainnya.
Sementara from_resource() kekurangannya yaitu konfigurasinya lebih banyak dari from_file, Namun biasanya ini cocok untuk membangun aplikasi skala besar juga lebih terstruktur.

Oke, dalam artikel kali ini kita akan belajar cara Load menggunakan Builder.from_resource() dan bagaimana cara ngebuild file resource tersebut.

Pertama-tama buat window baru dengan Glade yang didalamnya terdapat sebuah tombol

GtkWindow:
ID - window
Default Width - (checklist)
Default Height - (checklist)

GtkButton:
ID - tombol

Simpan ( CTRL+S ) dengan nama contoh.ui

Kemudian buat project baru dengan Builder ( Gnome Builder ):
Project Name - Contoh
Language - Vala
Template - Gnome Application

Copy file contoh.ui kedalam direktori /data pada project "Contoh" yang barusaja dibuat. atau bisa dengan klik kanan pada direktori /data ( sidebar/project ) -> Open Containing Folder

Buat file baru dalam direktori /data dengan mengkilk kanan folder /data pada sidebar -> New -> Empty File. dan beri nama contoh.gresource.xml
<gresources>
    <gresource prefix="/app/namaku/contoh">
      <file preprocess="xml-stripblanks">contoh.ui</file>
    </gresource>
</gresources>
Simpan dengan menekan CTRL+S

Build Resource File

Buka Makefile.am pada directory /src lalu copy dan paste

bin_PROGRAMS = contoh

resource.c: $(top_srcdir)/data/contoh.gresource.xml
    $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(top_srcdir)/data --generate-source $<

BUILT_SOURCES = resource.c

contoh_SOURCES = \
    $(BUILT_SOURCES) \
    main.vala

contoh_CPPFLAGS = $(CONTOH_CFLAGS)
contoh_VALAFLAGS = --pkg gtk+-3.0

contoh_LDADD = $(CONTOH_LIBS)

-include $(top_srcdir)/git.mk

Tekan CTRL+F7 untuk build project
Selanjutnya ubah isi dari /src/main.vala dengan

using Gtk;

int main (string[] args) {
    Gtk.init (ref args);

    var builder = new Builder.from_resource("/app/namaku/contoh/contoh.ui");
    var window = builder.get_object("window") as Window;
    var button = builder.get_object("tombol") as Button;
    window.title = "Jreng Jreng Jreng";
    button.label = "Hulalala";
    window.destroy.connect(Gtk.main_quit);

    window.show_all ();

    Gtk.main ();
    return 0;
}

Build project ( CTRL+F7 ) dan Jalankan project ( CTRL+F5 )
Selamat mencoba dan berkreasi

07 May 2017

Membuat GUI Dengan Glade


Karena belajar itu menyenangkan jadi mari kita terus belajar dan belajar. #LoL

Oke, pada artikel kali ini kita akan belajar merancang sebuah tampilan GUI dengan menggunakan software Glade. yang nantinya akan kita gunakan sebagai bahan atau tampilan dasar dari aplikasi yang akan dibuat.

Langsung saja kita buka aplikasi Glade, kamu akan dihadapkan dengan tampilan kurang lebih seperti screenshot berikut

Disana ada Palette, Inspector dan Properties

Palette: Tempat Komponen/Object seperti Window, Container, Label, Button, etc. semuanya dapat dicari disini
Inspector: List/Daftar komponen yang sedang digunakan
Properties: Setting/Konfigurasi dari komponen/Object

Coba kita buat window baru dengan memilih/klik icon "Window" pada Palette bagian Toplevels.


Lalu pada bagian Properties
ID : Windowku
Title: Membuat window dengan Glade
Default Width: (centang)
Default Height: (centang)

Untuk melihat preview bisa dengan mengklik tombol Gear ( Preview Snapshot ) pada toolbar.

Coba tambahkan beberapa komponen baru pada window yang baru dibuat, guna mengenal nama-nama komponen yang tersedia pada Palette.
Selamat berkreasi dengan komponen komponen yang telah disediakan di Palette.

Untuk menyimpan hasil desain tekan CTRL+S

05 May 2017

Memanggil Dialog dari Main Window dengan Vala


vala
Kali ini kita akan belajar membuat window dialog yang dapat dipanggil dari window utama.
Jadi kita akan membuat dua tampilan window, kita akan gunakan Gtk.Window sebagai main window dan Gtk.Dialog sebagai second window atau dialog.

Buka program Builder dan buat project baru, atau boleh gunakan project yang sudah ada yang biasa digunakan untuk latihan.

Window Dialog

Buat object/class baru yang akan kita jadikan sebagai window dialog yang nantinya dapat dipanggil dari window utama ( main window )
Tambahkan kode ini kedalam "src/main.vala" setelah "Using Gtk"

public class Dialogku:Dialog {
    public Dialogku() {
        this.title = "Ini aku";
        set_default_size(200,200);

        var label = new Label("Taraaaa... aku dialog");

        var box = get_content_area() as Box;
        box.pack_start(label, true, false, 0);
    }
}
Pada kode diatas kita telah membuat Object/class baru "Dialogku" sebagai turunan dari object "Gtk.Dialog" dan nantinya object ini akan dapat dipanggil dari main window

Sekarang kita coba panggil object tersebut dari window utama melalui event tombol yang diklik. Ketika tombol diklik maka tampilkan "Dialogku".
Tempatkan setelah class "Dialogku"


int main (string[] args) {

    init (ref args);

    var window = new Window ();
    window.title = "Tombol";
    window.set_default_size (300, 100);
    window.border_width = 20;
    window.destroy.connect (Gtk.main_quit);

    var button = new Button();
    button.set_label("Klik untuk membuka dialog");

    //Tombol diklik, tampilkan "Dialogku"
    button.clicked.connect(() => {
        var dialog = new Dialogku();

        //Agar dialog selalu ditempatkan diatas window utama
        dialog.set_transient_for(window);
        dialog.show_all();
    });

    window.add(button);

    //Tampilkan window
    window.show_all();

    Gtk.main ();
    return 0;
}
Seperti inilah hasilnya


Kode lengkapnya disini

using Gtk;

public class Dialogku:Dialog {
    public Dialogku() {
        this.title = "Ini aku";
        set_default_size(200,200);

        var label = new Label("Taraaaa... aku dialog");

        var box = get_content_area() as Box;
        box.pack_start(label, true, false, 0);
    }
}

int main (string[] args) {

    init (ref args);

    var window = new Window ();
    window.title = "Tombol";
    window.set_default_size (300, 100);
    window.border_width = 20;
    window.destroy.connect (Gtk.main_quit);

    var button = new Button();
    button.set_label("Klik untuk membuka dialog");
    button.clicked.connect(() => {
        var dialog = new Dialogku();
        dialog.set_transient_for(window);
        dialog.show_all();
    });

    window.add(button);

    //Tampilkan window
    window.show_all();

    Gtk.main ();
    return 0;
}

Mari berdiskusi dikolom komentar

Vala Event Handler ( SIGNALS )


vala - event handler - signals
Berbicara tentang bahasa pemrogramman, tentu kita tak kan lepas dari yang namanya Event. Event itu sendiri adalah aksi atau kejadian yang terjadi pada aplikasi. Contoh sederhananya misalkan kejadian ketika user menginput data, user menggeser mouse, user menekan tombol, etc. Ah kurang lebih seperti itulah kira-kira.

Menurut bos wikipedia
Event is an action or occurrence recognized by software that may be handled by the software. Computer events can be generated or triggered by the system, by the user or in other ways. [...]
 Jadi Event Handler adalah sebuah fungsi yang akan menangani event-event tadi. Event tidak hanya disebabkan oleh user saja, tapi juga bisa oleh system.

Unik dan berbeda dari bahasa pemrogramman lainnya Vala tidak mengenal yang namanya Event, yang ada adalah Signals. Yup, signals.
Di situs resminya dijelaskan
Signals are a system provided by the Object class in GLib, and made easily accessible by Vala to all descendants of Object.

Daripada bingung mending kita langsung ke contoh

Oiya, contoh ini saya copas dari vala wiki :v


public class Test : GLib.Object {

    public signal void sig_1(int a);

    public static int main(string[] args) {
        Test t1 = new Test();

        t1.sig_1.connect((t, a) => {
            stdout.printf("%d\n", a);
        });

        t1.sig_1(5);

        return 0;
    }
}

Dari contoh diatas kita bisa lihat bagian "public signal void sig_1(int a)", signal/event harus didefinisikan terlebih dahulu agar signal itu dapat direspon dengan metode "connect()".
Pada bagian berikutnya "t1.sig_1.connect((..." kalau di javascript mungkin bisa di ibaratkan EventListener. Akan dijalankan ketika ada signal dikirim ke "sig_1()"

Selanjutnya saya punya contoh lain. coba buat project baru dengan builder dengan nama project "Tombol". Dalam folder "src" ( pada directory project ) buka "main.vala" dan ganti isinya dengan


using Gtk;

int main (string[] args) {

    Gtk.init (ref args);

    var window = new Window ();
    window.title = "Tombol";
    window.set_default_size (250, 250);
    window.destroy.connect (Gtk.main_quit);

    var label = new Label(null);

    var button = new Button();
    button.set_label("Klik aku dong");
    button.clicked.connect(() => {
        label.set_label("Taraaaaaa.. bakikuk");
    });
 
    //Buat container Box untuk wadah dari label dan button
    var box=new Box(Orientation.VERTICAL, 10);
    //Masukan label kedalam box
    //Pada argument ke-dua saya set "true" agar label memenuhi seluruh bagian kosong
    box.pack_start(label, true, false, 0);
    //Masukan button/tombol kedalam box
    box.pack_start(button, false, false, 0);

    //Tambahkan box ke window
    window.add(box);

    //Tampilkan window
    window.show_all();

    Gtk.main ();
    return 0;
}

Jalankan project dengan menekan CTRL+F5. kira-kira hasilnya seperti ini


Oh. mungkin ada yang bertanya tanya "Kenapa haru menyertakan Using Gtk?"
Simple, adalah untuk mempersingkat penulisan kode. bisa saja tidak menyertakan "Using Gtk" namun object Gtk harus selalu dipanggil ketika object turunan dari Gtk akan dipanggil.

Dengan Using Gtk

var window = new Window(); //Window adalah objek turunan dari Gtk
var label = new Label(); // Label juga objek turunan Gtk

Tanpa Using Gtk

var window = new Gtk.Window();
var label = new Gtk.Label();

Mari berdiskusi di kolom komentar. :P

04 May 2017

Membuat Program "Hello World" Dengan Vala



Oke, sesuai janji saya sebelumnya di artikel kali ini kita akan belajar membuat program "hello world" dengan menggunakan bahasa pemrogramman Vala dan tentunya Builder sebagai IDE nya.

Belum tau apa itu Vala?

Ahkk. ketahuan dah, pasti kamu gak nonton "The Conjuring". nonton dulu gih, nanti kalau udah nonton balik lagi kesini. ( readers: lu mau gua ketok pake palu? ) eehh.. ampun mbah..

Menurut wikipedia
Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system. [...]
Nahas, saya gak bisa bahasa inggris jadi gak bisa nerjemahin.. #sad
Intinya Vala adalah sebuah bahasa pemrogramman yang menghasilkan kode C sebagai hasil dari kompilasi kode vala itu sendiri.

Dan secara tidak langsung meskipun developer menulis programnya dengan Vala, program tersebut bisa dibilang sebagai program yang ditulis dengan C. karena memang kode Vala tersebut di compile menjadi C, dan kemudian di compile lagi menjadi binnary sebagai C. dan bukan sebagai Vala.

Udah mengerti? Sekarang mari kita buat program "hello world"


Buka Builder dan buat project baru. Disesuaikan seperti pada screenshot
Sebagai contoh saya menggunakan nama "Hello" sebagai nama dari project.
Project Location adalah tempat dimana nantinya kode kamu disimpan, silahkan sesuaikan sendiri.

Language, disana terdapat empat opsi C, C++, Python, dan Vala. pilih Vala.
Pada contoh saya menggunakan GPLv3+ sebagai lisensi dari project yang akan dibuat.

Template, pilih GNOME Application . memudahkan untuk konfigurasi awal. klik "Create" ( Pojok kanan atas )


Saya rasa screenshot diatas sudah cukup jelas.
Sekarang perhatikan bagian direktori project ( blok paling kiri ), sebagai default disana terdapat 4 folder. data, m4, po dan src.

Lalu apa tujuan dari folder-folder ini?

data: biasanya digunakan untuk menyimpan data seperti Ui, font, config, icon. dan semacamnya
m4: disini file-file library Autotools
po: ini biasanya digunakan untuk menyimpan source terjemahan. misal applikasi yang dibuat tersedia dalam beberapa bahasa
src: disinilah source code program kamu disimpan

Coba kita double klik folder "src" dan tarraaaaa.. ada dua file disana "main.vala" dan "Makefile.am"
Nah, "Makefile.am" adalah dimana kamu konfigurasi Autotools. dan "Main.vala" adalah dimana program kamu ditulis.

Double klik lagi "main.vala" untuk membukanya. project akan secara otomatis di build


Oke. mari kita lihat isi dari "main.vala" kurang lebih isinya seperti kode berikut


using Gtk;

int main (string[] args) {
    Gtk.init (ref args);

    var window = new Window ();
    window.title = "hello";
    window.set_default_size (200, 200);
    window.destroy.connect (Gtk.main_quit);

    /* You can add GTK+ widgets to your window here.
     * See https://developer.gnome.org/ for help.
     */

    window.show_all ();

    Gtk.main ();
    return 0;
}

Jika kamu jalankan programnya maka akan menghasilkan window kosong/blank ukuran 200x200 dengan title "hello". Coba tekan CTRL+F5 untuk menjalankan program

hapus kode tersebut dan ganti dengan


using Gtk;

int main (string[] args) {
    //Memulai Gtk
    Gtk.init (ref args);

    //Buat objek window baru
    var window = new Window ();

    //Tentukan title dari window baru
    window.title = "Hello World";

    //Set ukuran window baru
    window.set_default_size (250, 250);

    //Event ketika aplikasi ditutup, data akan dibuang dari RAM
    //Maksudnya adalah mematikan total aplikasi
    //Banyak aplikasi yang ketika ditutup tapi sebenarnya masih aktif di background
    //Dan menjadi beban pada RAM
    window.destroy.connect (Gtk.main_quit);

    //Buat objek label baru
    var label = new Label("Selamat Datang!!");

    //Tambahkan label ke window yang telah dibuat
    window.add (label);

    //Tampilkan window
    window.show_all ();

    //Aplikasi berjalan
    Gtk.main ();
    return 0;
}

Jalankan aplikasi dengan menekan tombol CTRL+F5

Tinggalkan pertanyaan dikolom komentar

Glade


Menurut keterangan dari situs resminya,
Glade is a RAD tool to enable quick & easy development of user interfaces for the GTK+ toolkit and the GNOME desktop environment.
Readers: Lu kayak orang lagi males aja cuk. ngasih deskripsi yang bener dong
Saya: Maaf bos, mungkin saya lagi lapar . eh ngantuk :v

Kenapa saya buat artikel ini? 
Karena sebelumnya saya memposting http://deriload.blogspot.com/2017/05/gnome-builder.html

Apa hubungannya?
Saya katakan sebenarnya Glade dan Builder itu seperti sepasang kekasih. kenapa?
Karena fungsi Glade itu sendiri adalah sebagai RAD ( Rapid Application Development ) tools, tepatnya untuk mendesain UI yang nantinya digunakan oleh developer guna mempercepat proses pembuatan aplikasi.
Jadi developer tidak harus menulis UI dengan manual, mungkin kamu gak tau gimana ribetnya kalau membuat tampilan GUI dengan kode program. nih saya kasih contoh
GtkWidget *window;
window = gtk_application_window_new ();
gtk_window_set_title (GTK_WINDOW (window), "test");
gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
gtk_widget_show (window);
Nah, itu hanya untuk membuat window kosong/blank dengan ukuran 200x200. Ribet?
Disinilah Glade berperan, developer tidak perlu susah payah membuat objek semacam window tadi dengan kode, juga tidak perlu lagi mengatur posisi objek-objek tersebut ( tombol, teks, dll ) dengan menggunakan kode.

Yup. Nantinya desain yang telah dibuat dengan Glade akan disimpan dalam format XML (.xml) dan dapat di muat ( load ) dengan Gtk.Builder. pengembang hanya perlu memanggil kembali objek-objek tersebut.
Ada banyak sekali bahasa pemrogramman yang sudah support Glade, misalnya C, C++, C#, Vala, Java, Perl, Python, dan masih banyak lagi lainnya.

Install Glade?

Yang pake archlinux angkat tangan. :v
sudo pacman -S glade
Oh? gak pake archlinux?
Ooops. itu bukan tanggung jawab saya. :v :v ( readers: digebukin baru tau rasa lu ) :v ammpuun
Biasanya glade sudah tersedia di repository resmi tiap distro, jadi bisa disesuaikan.
Buat pengguna ubuntu mungkin bisa menginstall glade dengan perintah "sudo apt install glade"
Para sesepuh bisa langsung install dari sourcenya https://glade.gnome.org/sources.html

Gnome Builder



Nama ini mungkin masih asing bagi sebagian besar orang, mungkin termasuk kamu yang juga baru menyadari keberadaan tools kelas dewa ini setelah membaca artikel ini. #LoL
Tapi nama ini tentunya tidak asing lagi bagi mereka para developer software linux, khususnya mereka yang memang kesehariannya berada dilingkungan gnome.

Lalu apa itu Builder ( Gnome Builder )?

Builder is a new IDE for GNOME that is focused on bringing the power of our platform to more developers than ever before. [...]
Nah, jadi intinya Builder adalah sebuah IDE yang dikembangkan khusus untuk membuat aplikasi gnome.

Mungkin kamu bertanya-tanya
"Lho.. buat gnome doang? lalu bagaimana dengan platform lain? apakah aplikasi yang dibuat dengan Builder hanya dapat berjalan dilingkungan gnome?"

Geezz.. memang awalnya Builder dibuat hanya untuk memudahkan para developer gnome, tapi bukan berarti aplikasi yang dibuat dengan Builder hanya dapat berjalan di gnome saja.
Dengan Builder, pengembang tidak lagi di repotkan dengan konfigurasi ini itu ( autotools, meson, etc. ) yang memakan banyak waktu, jadi hampir semuanya serba otomatis.

Yuk intip seperti apa interface dari Builder ini.
Antarmuka Builder
Gimana? keren bukan?
Untuk lebih lengkapnya bisa dicari https://wiki.gnome.org/Apps/Builder


Install Builder

User archlinux bisa langsung menginstallnya dengan perintah
sudo pacman -S gnome-builder
Atau mungkin lebih suka menggunakan flatpak?
flatpak install --from https://git.gnome.org/browse/gnome-apps-nightly/plain/gnome-builder.flatpakref
flatpak run org.gnome.Builder
Ingin build dari sourcenya langsung? boleh
https://download.gnome.org/sources/gnome-builder/3.24/gnome-builder-3.24.1.tar.xz

Punya pertanyaan seputar Builder? kita bahas dikolom komentar :P

18 December 2016

Extensi Keren Gnome-Shell 3.22




 Extensi gnome paling keren versi penulis. :P yuk simak

1. EasyScreenCast
Yang suka recording desktop pasti suka extensi ini
Dengan EasyScreenCast kamu gak perlu lagi menginstall aplikasi ScreenRecorder ataupun semacamnya. Cukup dengan extensi ini, recording desktop menjadi sangat mudah


2. OpenWeather
Bagaimana cuaca hari ini? dan besok? Panas, Mendung, atau mungkin Hujan?
Yeah.. OpenWeather, dengan extensi ini.. terjawablah sudah pertanyaan tadi.


3. Random Walls
 Bosan dengan wallpaper yang itu-itu aja? Gak perlu khawatir, RandomWalls telah hadir guna mengurangi kebosanan kamu.
Tidak hanya mengganti wallpaper pada tampilan desktop, Wallpaper pada lockscreen juga dapat di gonta-ganti dengan extensi ini. Durasi minimal adalah 1 menit ( 60 detik )

4. Caffein
Jangan tidur, ayo bergadang. dan tuangkan kopi hangat pada cangkir caffein.
Desktop kamu akan tetap menyala ( gak masuk lockscreen mode )

5. Simple Net Speed
Menampilkan kecepatan UP/DOWN koneksi internet pada panel atas ( top panel ).
Bisa dilihat pada screenshot paling atas, paling kiri.. 0bps/0bps

6. TopIcons Plus
Pindahkan legacy tray icon ke panel atas ( defaultnya di sudut kiri bawah )

7. Status Area Horizontal Spacing
Icon pada panel gak rapi? extensi ini solusinya

8. Services Systemd
Mengaktifkan service ( apache, sql, dll ) harus masuk terminal dulu?
Ah.. itu mah cara lama..


9. Glassy Gnome
Pernah lihat desktop macOs?
Saya selalu ingat kesan background nya yang 'transparan'. apanya yang keren? disenjatai dengan extensi ini, gnome 3.22 juga mampu.

Bisa dilihat pada screenshot diatas, background firefox nampak transparan.. wallpaper desktop nya kelihatan

Sebetulnya masih ada banyak lagi extensi-extensi keren untuk gnome-shell yang tidak saya sebutkan diatas... sisanya bisa dicari sendiri di https://extensions.gnome.org

Sebagai tambahan, Touchpad Indicator, Gno-Menu, Frippery Move Clock, Text Translator

09 June 2015

Memindahkan Button Titlebar Gnome 3.16


Tombol Tittlebar Dipindahkan
Hanya sekedar tips kecil buat pengguna gnome 3.16 , cara memindahkan button close,minimize,maximize. dari kanan ke kiri atau pun sebaliknya dan bisa juga seperti contoh pada gambar diatas, tombol close di sebelah kanan dan dua tombol lainnya di sebelah kiri.

Dapat dilakukan secara sederhana dengan bantuan software "dconf Editor"

Pertama buka software bersangkutan, dan buka
org.gnome.desktop.wm.preferences
Dibagian 'button layour' value default 'appmenu:minimize,maximize,close' yang berarti button disebelah kanan. Anda dapat mengubahnya menjadi
minimize,maximize,close
Dengan begitu semua button akan pindah ke sebelah kiri.
Saya sendiri menggunakan settingan ini
minimize,maximize,right:close
Perhatikan yang saya beri warna merah, itu hanya penanda yang dimaksudkan button close agar di sebelah kanan. tidak harus menggunakan 'right' , bahkan sembarang pun tetap bekerja

semoga berguna.

07 June 2015

Meratakan Spasi Icon Tray Gnome 3.16


Gnome 3.16
Apakah kamu menggunakan GNOME sebagai desktop default di sistem linux?
Lihat di sudut kanan 'atas desktop mu, mungkin sedikit merasa kurang nyaman dengan posisi icon yang tidak merata atau margin antara icon satu dan lainnya tidak sama?
Apalagi jika kamu menggunakan TopIcons untuk memindahkan system tray dari bawah ke panel atas dan beberapa extensi aktif semisal 'Medial Player Indicator' dan extensi lainnya yang memang menambahkan icon di panel kanan atas. Ya, kurang lebih seperti ini tampilannya
Icon Tray Tidak Rapi
Terlihat spasi tiap icon tidak sama, jujur saya merasa kurang nyaman melihatnya :P kamu juga?
Menginginkan yang seperti ini?
Icon Tray Lebih Rapi
Bahkan kamu bisa mengubah jarak tiap icon sesukamu, dan tentunya dengan bantuan sebuah ektensi =D
Ubah Spasi Tiap Icon
Pilih salah satu ektensi berikut =D
  1. Status Area Horizontal Spacing ( sudah saya test )
  2. Icon Area Horizontal Spacing

13 April 2015

GNOME


GNOME adalah lingkungan desktop dan antarmuka grafik pengguna yang berjalan di atas sistem operasi. GNOME secara keseluruhan terdiri dari perangkat lunak bebas dan gratis. GNOME merupakan proyek internasional untuk menciptakan kerangka, aplikasi perangkat lunak untuk desktop, dan juga untuk mengatur peluncuran, penanganan file dan manajemen tugas jendela (window). #wikipedia
GNOME Shell
Sebelumnya telah dijelaskan mengenai bermacam varisi Desktop Environment (DE) yang termasuk dalam keluarga besar Linux, GNOME adalah salah satu Desktop Environment veteran yang project nya dimulai pada tahun 1997.

Menurut sumber dari wikipedia
GNOME dimulai pada Agustus 1997 oleh Miguel de Icaza dan Federico Mena sebagai proyek perangkat lunak bebas untuk mengembangkan lingkungan desktop dan aplikasinya. GNOME dimulai karena KDE, proyek lingkungan desktop (yang juga merupakan perangkat lunak bebas), bergantung pada Qt toolkit yang pada waktu itu memakai lisensi Proprietari. Sebagai ganti dari Qt, GNOME memilih kerangka GTK+. Lisensi GTK+ adalah GNU Lesser General Public License (LGPL), lisensi perangkat lunak bebas yang mengijinkan pemakaian ke lisensi lain seperti lisensi Proprietary. GNOME sendiri dilisensi di bawah LGPL untuk datanya danLisensi Publik Umum GNU (GNU GPL) untuk aplikasinya.
Perusahaan perangkat lunak California, Eazel mengembangkan pengatur file Nautilus dari 1999 sampai 2001. De Icaza dan Nat Friedman kemudian menemukan kode helix (selanjutnya disebut Ximian) pada 1999 di Massachusetts. Perusahaan itu mengembangkan infrastruktur dan aplikasi GNOME, dan pada 2003 perusahaan itu dibeli Novell.
GNOME 2.x (rilis GNOME sebelumnya) sangat mirip dengan lingkungan desktop konvensional, menyajikan desktop yang simpel di mana pengguna dapat berinteraksi dengan objek virtual, seperti jendela, ikon, dan file. GNOME 2.x menggunakan Metacity sebagai pengatur jendela standarnya. Pengaturan jendela, aplikasi dan file dalam GNOME 2 mirip dengan kebanyakan sistem operasi desktop. Pada pengaturan standar GNOME 2, desktop memiliki menu peluncur untuk akses cepat ke are program untuk menampilkan program dan lokasi file; jendela terbuka dapat diakses dari taskbar di bawah layar, dan di atas kanan tersedia area notifikasi bagi program yang berjalan di latar belakang. Namun posisi itu dapat diubah pengguna ke mana saja atau diganti dengan fungsi lain atau ditiadakan. #Wikipedia
Mengenai project GNOME itu sendiri sebagaimana saya kutip dari website resminya
The GNOME Foundation is a non-profit organization that furthers the goals of the GNOME Project, helping it to create a free software computing platform for the general public that is designed to be elegant, efficient, and easy to use. #GNOME_Foundation

Mengapa GNOME?
Karena gnome mudah digunakan oleh awam sekalipun tidak terkecuali anda yang mungkin pengguna windows os. dengan antar muka desktop modern memungkinkan pengguna dapat dengan mudah dan cepat untuk berpindah dari satu aplikasi ke aplikasi lainnya
GNOME Shell
Juga banyaknya dukungan extensi dan thema yang dapat diinstall juga komunitas pengguna GNOME ini.
Walaupun sebelumnya kehadiran GNOME3 sempat dipermasalahkan tapi kini sudah dapat diterima user GNOME2 sebelumnya.

Ingin mencoba GNOME ini?
Bisa anda temukan disini

Bagaimana cara menginstallnya di ubuntu

sudo apt-get install gnome-shell

atau

sudo apt-get install ubuntu-gnome-desktop

Nanti pilih GNOME saat login
Pilih GNOME Saat Login
Jika ingin menghapus gunakan perintah

sudo apt-get remove gnome-shell

atau

sudo apt-get remove ubuntu-gnome-desktop

Jangan lupa tinggalkan coretan dikolom komentar =D