How’s ASUS UX305CA on Linux for Web Development?

Hello readers, hope this will help you in deciding a light weight ultrabook, or if you had already bought an ASUS ultrabook and want to dual boot it then please follow along.

I have been using MacBook Pro from last 8-10 months, its was provided by my ex-employer. The only difference I found using this machine was the portability and high resolution screen. Since I am a programmer, and we have a kind of obsessiveness with our code to look clean and beautiful. Its not only about indentation, its about colour and high res’ fonts. Macbook Pro possess HiDPI screen which Apple had released this with a tag name called “Retina” display. Hmm that’s Apple. Anyhow I was looking for an alternative of it, had seen MacBook Air at a local Apple store, again its resolution was just 1440×900, so dropped my plan to even consider it. Now from alternatives I had chosen ASUS UX305CA, considered Dell XPS 13 as well but it was costly as compared to ASUS ultrabook series, both are having same spces so why shall I pay extra bucks? for Dell’s branding, of-course not!

ASUS UX305CA is a good machine. It came with 6th generation CORE M3 processor, 4 Gig RAM and a great HiDPI (1920×1080) screen. Its battery does lasts 8-10 hrs (based on usage), plus its fan-less as well which is awesome. It came with Windows 10, which cost me around a total of Rs. 51,500 from an ASUS vendor at Nehru Place.

I knida not a fan of Windows, so installed Linux based OS (dual boot) on this machine. For dual booting you need to have a partition first which you can get by shrinking your C drive (use disk manager on windows). Then while installation of Linux in the partitioning section divide this partition further, I had created 6GB of swap out of the extended partition. Right now its running on Debian’s XFCE environment, Xubuntu preciously. Had tested Linux Mint Cinnamon on this machine but touchpad and other function key based buttons on laptop didn’t worked out. Googled and found out that Elan touchpad is supported on Kernel 4.7 and above. So went with Ubuntu 16.10 beta version which comes with Kernel 4.8 pre-loaded. On a trial run by booting into this using pen drive, it performed really will on this machine. But after installation I found out that Unity is consuming a lot of RAM (~1.8 GB) in idle case.

Screenshot_2016-10-14_23-49-57

So went ahead with the installation of Xubuntu desktop (and other optional items). Since as compared to Unity, XFCE is much light-weight and responsive. Here’s how you can do the same:

sudo apt-get install xubuntu-desktop gksu leafpad synaptic

After completing installation, logout then select the GNOME icon on the login screen and login into Xubuntu’s session. Now clean up Ubuntu’s desktop environment Unity! (After this you won’t be able to login into Unity again, so if you want to keep both environments then skip this step)

sudo apt-get remove nautilus gnome-power-manager gnome-screensaver gnome-termina* gnome-pane* gnome-applet* gnome-bluetooth gnome-desktop* gnome-sessio* gnome-user* gnome-shell-common compiz compiz* unity unity* hud zeitgeist zeitgeist* python-zeitgeist libzeitgeist* activity-log-manager-common gnome-control-center gnome-screenshot overlay-scrollba* && sudo apt-get install xubuntu-community-wallpapers && sudo apt-get autoremove

The above command will also remove the network manager and gnome software center, so be careful with the output it throws. You can again copy paste in the exact utilities you want to remove, rather then going with regex based tools selection for removal.

Cool, now reboot and take a look at your new XFCE environment. Due to HiDPI every stuff on the screen will appear smaller, so we need to scale that. XFCE comes with Settings editor. Here’s how you can utilize it.

  • Open Settings Editor
  • Select xsettings from the left pane
  • Then on the right pane scroll down a bit till you find DPI under Xft, change it to a value which suites you, I had went with 140.

Still icons on the desktop will appear small, you can tweak that as well by going through the desktop settings -> Icon -> Icon Size.

For browsing web, I prefers Google Chrome. This will scale automatically once you had applied the above settings and rebooted machine. For firefox you need to

  • Type in about:config in the address bar.
  • Search for layout.css.devPixelsPerPx and change its value to 1.4 (you choose what you prefers).

Great, now lets move towards our terminal. Default terminal is good but I personally prefers Guake!

sudo apt-get install guake

In Guake preferences you can choose a theme of your choice, it comes with tons of them. I went with Dracula. Now if you like to replace the default shell bash with zsh then follow these commands:

sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

sudo chsh -s $(which zsh) $(whoami)

Oh-My-Zsh too comes with tons of in built themes, just checkout all the themes under

ll ~/.oh-my-zsh/themes/

To select a theme out it you need to open ~/.zshrc using you favourite text editor, find line ZSH_THEME and enter the theme name you want. I had choosen dogenpunk:

ZSH_THEME="dogenpunk"

Awesome, now terminal looks great. If you are using quake for the first time then please press F12 to get the interface after running quake. This terminal’s window by defaults comes on top of all the windows.

Screenshot_2016-10-14_23-59-44

LEMP stack installation:

Linux you already have up & running. Next is NGINX.

sudo apt-get install nginx

Now if you want then you can go with php7.0 but since my drupal projects are based on php5.6 so I had gone with this one. Ubuntu’s updated repository comes preloaded with php7.0. But for php5.6 we need to add a repository provided by ondrej.

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6-fpm php5.6-curl php5.6-cli php5.6-gd php5.6-mysql php5.6-xml php5.6-mbstring

For database lets use MariaDB

First import MariaDB public key used by the package management system

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

Then we’ll add the MariaDB repository

sudo add-apt-repository 'deb http://mirror.jmu.edu/pub/mariadb/repo/5.5/ubuntu trusty main'

Now reload the package database:

sudo apt-get update

And finally install mariadb-server

sudo apt-get install mariadb-server

After installation you can configure and secure mariadb for use

sudo mysql_secure_installation

Just follow along with the options you prefer.

Thats it, now our machine is ready to go ahead with web-development. But before proceeding further you need to configure nginx to utilize php-fpm.

Open

sudo vim /etc/nginx/sites-enabled/default

Under server block configure your nginx to pass the PHP scripts to FastCGI server:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php5.6-fpm.sock;
}

Restart Nginx

sudo /etc/init.d/nginx restart

Viola! Now you can go ahead with the installation of your favourite IDE/Text Editor and your system is completely ready for web-development 🙂

If you need any kind of help/suggestions, then please utilise the comments section of this blog!

See ya!

Screenshot_2016-10-15_09-16-18