Feb 16, 2012

Ubuntu Linux 11.10 Setup Notes

I have been a fan of Ubuntu Linux ever since 9.10. In fact, I am still using it on my old laptop. But when I got a new machine early this year (2012), I had to go to Ubuntu 11.10, in order to get softwares. As you may know, Ubuntu 11.10 adopts Gnome 3 (unity 2D), which reminds me of Windows Vista. I spent lots time adjusting little tiny damn things in this desktop. I decide to take notes on it for reference.

1. First thing first: switch from lame unity 2D to less but still lame Gnome 3 classic.

In order to do this, you must not choose update when/after installing Ubuntu.

  1. ctrl + Alt + T, to open a terminal;
  2. sudo apt-get install gnome-session-fallback
  3. logout. Before login, click the gear icon and choose GNOME Classic. The reader may also try GNOME, GNOME Classic (No Effect), Ubuntu, Ubuntu 2D.
There are several alternatives at the 2nd step, that I haven't tried. They should work the same way.
sudo apt-get install gnome-shell
Ubuntu Software Center also offers a GUI installation of gnome-shell.
 

2. add/remove gadget to the panels.
alt + right click


3. add/manage printers.


The default printer manager (system settings -> printers) is lame. It automatically detects your LAN printers, yet you'll find that you cannot distinguish them, for they are all called HP Laser Jet xxx.

Several alternative GUI printer managers are available:
Cups printer manager:

  1. open a web browser.
  2. type in 127.0.0.1:631, and hit enter.
The classic GUI printer manager in Gnome 2.4 can be invoked by command:
system-config-printer
You can make a launcher for this in menu Applications:
right click Applications -> Edit Menus

 4. scrollbars in Eclipse.


The overlay style scrollbars are incompatible with default settings of Eclipses. You'll only get partial overlay scrollbar, which makes it difficult to scroll. There are two solutions.

If you want to go back to classic gnome 2.4 scrollbar ( the scrollbar you see everyday ):
  1. ctrl + alt + T, to open a terminal;
  2. sudo vim /etc/X11/Xsession.d/80overlayscrollbars
  3. append the following text:
    export LIBOVERLAY_SCROLLBAR=0
  4. restart Eclipse.
If you want to use overlay scrollbar in Eclipse:
  1. $sudo vim /usr/bin/eclipse
  2. comment the line:
  3. GDK_NATIVE_WINDOWS=true
  4. restart Eclipse.
5. nautilus crashes when accessing some folders.

This bug appears at least in Ubuntu 11.10. When opening or accessing some folders, nautilus crashes suddenly. The icons on desktop disappear. One cannot right-click on the desktop. When opening nautilus in a terminal, one get error information (see references).

It may be caused by a conflict between nautilus-open-terminal and ubuntuone-client-gnome. It is reported that removing either of them fixes the issue.

references:
[1]: http://askubuntu.com/questions/65443/nautilus-on-ubuntu-11-10-keeps-crashing
[2]: http://askubuntu.com/questions/64244/nautilus-crashes-when-accessing-some-folders
[3]: https://bugs.launchpad.net/ubuntuone-client-gnome/stable-2-0/+bug/865567
[4]: https://bugs.launchpad.net/ubuntuone-client-gnome/stable-2-0/+bug/865115

6. system monitor

Today I installed xfce desktop, which is known as an iphoned desktop. xfce can be tuned thoroughly. It is more like the old gnome 2. Especially, old gnome fans can have their windows buttons back to the top left. Actually, it is customizable. I am satisfied with xfce, except for missing real-time system monitoring applet. The xfce-taskmanager sucks. The monitoring applets sucks too. The solution is to have gnome system monitor applet back.
sudo apt-get install gnome-system-monitor 
sudo apt-get install indicator-multiload 
sudo apt-get install indicator-weather
The second and third ones are the panel applet (cpu, memory, network traffic, weather etc) of gnome system monitor. One can use command line, launcher or simply put them into startup applicants, to use them. In xfce, they are put into notification area.

The calender applet also sucks. I find Orage 4.8.1. Orage provides various time formats via user  customized arguments.
update:
there are two issues.
1. indicator-multiload and indicator-weather will also appear in Gnome Classic desktop, where I have two regular gnome system monitor and weather monitors.
2. For some reasons that I still don't figure out, every time I start xfce, nautilus is started and takes over the desktop. I believe it has something to do with the universal access.

7. Screen Reader screws up synaptic

My synaptic crashes today, with the following information if started in terminal:
09:43:27 yang@Weinberg:~$ sudo synapticterminate called after throwing an instance of 'std::out_of_range'what(): vector::_M_range_check
Synaptic is not used in ubuntu 11.10. So I suppose it has not been updated for new version of Gnome. This is a known bug caused by screen reader [1]. The solution is incredibly simple.
Go to System Settings -> Universal Access. Turn on and then turn off the screen reader toggle. [1, #16]
Let me copy the analysis made by the author of the solution post:
GNOME _used_ to have a global "enable accessibility" checkbox. It looks like that's been removed & is now handled automatically. If you're not using any individual accessibility option, the global setting is disabled for you. (For efficiency reasons).


But the old value of the global "enable accessibility" setting was preserved from before I upgraded.


The reason it only happens when GNOME is started normally, is because other environments don't set up accessibility.
references:
[1]:https://bugs.launchpad.net/ubuntu/+source/synaptic/+bug/839219

8. where is Sun-java6?

Oracle bought SUN, as well as the awesome java. Since then policy has been changed. Now even Starbuck is sued for using "java" in its posters. In ubuntu, sun-java6 is not available any more.
Oracle (Sun) Java 6 is no longer available to be distributed by Ubuntu, because of license issues.


It is recommended that users either migrate to OpenJDK, or download and install the newest version of Oracle (Sun) Java 6 manually, or switch to Oracle Java 7. Older versions of Oracle (Sun) Java 6 that have been distributed in the past are vulnerable to security exploits, see this announcement for more information.
One can install sun-java6 from LFFL ppa:
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-plugin
And about oracle-java7?  Forget about it!

references:
[1]: https://help.ubuntu.com/community/Java#Oracle_.28Sun.29_Java_6
[2]: http://www.webupd8.org/2011/10/things-to-tweak-after-installing-ubuntu.html

9. Input Method (im) set up

I need an input method to input Chinese and other special characters, in a US English desktop environment. There are several im modules available: scim (development terminated around 2005), ibus, fcitx etc. I installed all of them. To configure im, go to:
system settings -> language support -> install/remove languages 
install languages you need. After installation, several languages appear in  table of "language for menus and windows". The last entry in use is always English. Languages below it are shaded and ignored. If you don't want, say, Chinese menus or Windows, don't drag Chinese above "English" entry. Namely, only keep English (United States), and English entries in use.


Configuring ibus:

In Keyboard Input Method system, choose ibus. Restart X (or simply logout and login). If the im is not started up, add ibus-daemon to startup applications. Start ibus-setup, under input method tab, add input methods needed such as Chinese, Thai, Japanese, Greek etc..

After these setups, one should be able to input special characters. Logout and login once, to apply changes. if im works but the input panel ( used to display input character candidates ) does not show up, restart to apply changes. See im setups ( for example, [1] ) for more details.

Well, life sometimes is not that easy. Even after these steps, one still cannot use im, or can use im in some applications, cannot in others. The following steps work for some versions of Ubuntu and other Linux distributions [2]. Make sure the settings are consistency.

1). use ibus-gtk/ibus-qt for gtk and kde applications.
sudo apt-get install ibus-gtk ibus-qt
2). In profiles
sudo vim /etc/profile
or
vim ~/.profile
add the following lines for ibus,
# ibus
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

Configuring scim:

In Keyboard Input Method system, choose scim. Restart X (or simply logout and login). If the im is not started up, add ibus-daemon to startup applications. Start scim-setup, under input method tab, add input methods needed such as Chinese, Thai, Japanese, Greek etc..

After these setups, one should be able to input special characters. Logout and login once, to apply changes. If im works but input panel does not appear, reboot to apply changes. See im setups ( for example, [1] ) for more details.

The following steps can be tried if im still does not work well.

1). Add locale support to scim

To display locales:
locale | grep LANG=
add it ( for instance en_GB.UTF-8 ) to
vim ~/.scim/global
in line
/SupportedUnicodeLocales = en_US.UFT-8,en_GB.UTF-8
Use comma to separate more than one locales.

2). Use scim-bridge/ibus-gtk/ibus-qt for gtk and kde applications:
sudo apt-get install scim-bridge
or install them in synaptic package manager. One may also need ibus-gtk3 etc. Then,
sudo vim /etc/X11/xinit/xinput.d/scim
change:
GTK_IM_MODULE=xim
QT_IM_MODULE=xim  
to:
GTK_IM_MODULE="scim-bridge"  
QT_IM_MODULE="scim-bridge"

3). Use scim for gtk, qt and old X applications:
sudo vim /etc/profile
or
vim ~/.profile
add the following lines if use scim:

# SCIM
export XMODIFIERS='@im=SCIM'
export GTK_IM_MODULE="scim"
export XIM_PROGRAM="scim -d"
export QT_IM_MODULE="scim"
scim -d

Finally, one can also use im-swich / im-config to swich/config im applications. Logout and login again to apply changes. ( may need to install them )

trouble shooting:
If the system tray icon and/or candidate panel does not show after you try whatever prescriptions plus a logout/login, please try reboot your machine. My observation is, no matter what changes have been done to ibus/scim, one has to reboot to apply them. I still don't know why.

references:
[1]: http://www.pinyinjoe.com/linux/ubuntu-11-chinese-setup.htm
[2]: https://help.ubuntu.com/community/SCIM

10. Mathematica Crashes with SIGSEGV error:

My Mathematica crashed suddenly when I tried to rotate a 3D object. Running in terminal, Mathematica gives the following information:
Mathematica has received the signal: SIGSEGV and has exited. If possible, please report this problem to support@wolfram.com describing in as much detail as possible what you were doing when the problem occurred.
On POSIX-compliant platforms, SIGSEGV is the signal sent to a process when it makes an invalid memory reference, or segmentation fault [1].

The only post I found relevant to this issue is [2]. They suggested to install X.Org X server -- VESA display driver and use it instead of fglrx:
in
/etc/X11/xorg.conf (back it up first!)
change the line
Driver "fglrx"
to
Driver "vesa"
What I did is to install fglrx-amdcccle. And it seems the issue is fixed.

references:
[1]: http://en.wikipedia.org/wiki/SIGSEGV
[2]: http://mathforum.org/kb/message.jspa?messageID=5891352&tstart=0

11. Installing New Fonts

Ubuntu stores the fonts at /usr/locale/share/fonts . Download ttf fonts you need, make a directory in the fold, and copy the new fonts into it. Then make fonts directory:
cd /usr/local/share/fonts/true-type
sudo mkdir ttf-myfonts
sudo cp ~/theDirIStoreTheFonts/*.ttf ttf-myfonts
cd ttf-myfonts
sodu chown root *.ttf
sudo mkfontdir
fc-cache
Web browsers may need configuration to display certain characters.

Of course, one may also simpler double-click to open fonts in fonts viewer, and then click the install fonts button ...

12. Convert a batch of  jpg pictures to gif pictures
 for pic in *.jpg; do echo ¥pic && convert ¥pic ¥pic.gif; done 
replace ¥ above with $.
creating gif animation from a batch of gif pictures:
 gifsicle --delay=10 160_*.gif > 160.gif
 13. Clock Calibration

I have no idea why my Ubuntu 10.10 has this issue: the clock eventually gets slower for 4 minutes, though it's set to be synchronized with network servers.

It's not adequate to adjust the clock by oneself. After googling, I found the package ntp, is the one I need to install. A few useful commands:
sudo service ntp restart
restart service

ntpq -pn
query time servers
13. Tweak Login/Lock Screen Background

The solution for login background is from here. LightDM is a lightweight display manager that has been made default in Ubuntu 11.10 Oneiric Ocelot, replacing GDM. If you want to change the LightDM login screen background, all you have to do is edit a file and enter the path to the new background:
1. Open a terminal or press ALT + F2 and enter:
gksu gedit /etc/lightdm/unity-greeter.conf 
2. Scroll down to the line that begins with "background" - it should look like this:
background=/usr/share/backgrounds/warty-final-ubuntu.png 
And replace it with the exact path to the wallpaper you want to use for the LightDM background.

An alternative way is to rename a picture to warty-final-ubuntu.png and replace the default one. The default picture looks like:

It is said, tweaking the lock screen background is not allowed in ubuntu 11.10, but will be implemented as early as 12.10. Yet I once ran into an issue. After I used a customized picture as wallpaper and switched back to black later on, my lockscreen background becomes the very customized picture. It cannot be changed by reboot. Eventually, I changed the login background by using the above trick (but instead of using a specific picture, I removed warty-final-ubuntu.png), and after reboot, the lockscreen background simply disapeared, too.

14. ssh session timeout and frozen

After some time being idle, the ssh session will go timeout and freeze. To break (or escape from) it, simply type in enter, ~, . one by another. To avoid timeout, an active interval can be set, such that after that time, ssh will send the server (or client, either one will work) a message to keep it alive.
in /etc/ssh/ssh_config, add
(in client system) ServerAliveInterval time_in_second
(or in server system) ClientAliveInterval time_in_second

No comments:

Post a Comment