Currently I use Lubuntu on my Acer One laptop. Being a low power, quirky 2 in 1 Windows laptop, I had pain setting up linux on this laptop. Finally I was able to get Lubuntu installed and got it working but wifi connectivity was a big problem on this laptop. The wifi that I configured at install time, ssid only works after installation and any other wifi ssid that I configure it either connects briefly or just stops connecting. I though I was the only one suffering from this problem, but after reading many ununtu forums I get the idea that Ubuntu or even Lubuntu's network manager or the whole stack is not dependable.
After searching the internet I came across Wicd which was the most promising alternative to the default network manager in Lubuntu. But there was a problem, if I ran Wicd then Lubuntu's network manager stopped working and based on some advice should be stopped before starting wicd.
sudo service network-manager stop
Another problem with Wicd was that from its GUI even after setting the password key, using different WPA1/2 formats, it never worked and gave "Bad password" error. Having worked on ncurses based terminal wifi managers earlier I searched for such suitable options. Ubuntus network manager already has nmcli which helps to edit, wired and wifi network settings but given it still depended on Lubuntus network manager I did not explore it further. But wicd-curses was the right tool that I was searching for. With its easy interface I can not only select an ssid but also set the password and connect to all available wifi networks in my vicinity. Unlike wicd gui, wicd-curses worked like a charm from the terminal and even give the strength of the signal.
You can install wicd-curses with the below command
sudo apt wicd-curses
You can type the following command to connect.
The final piece of the puzzle was the DNS access, once the wifi is connected through wifi, the DNS server access stops working and FireFox did not connect to most of the sites. As a solution I added google dns servers to /etc/resolv.conf to get the DNS working.
$ cat /etc/resolv.conf # Generated by NetworkManager nameserver 127.0.0.53 nameserver 22.214.171.124 nameserver 126.96.36.199
Thanks to the above setup my wifi is working fine now.