Sunday, April 03, 2011

Ubuntu 11.04 Unity: How to Disable Unity Autohide

Ubuntu 11.04 comes default with Unity, a slick new user interface that helps for users with limited space, i.e. Netbooks. However, I have dual 23 inch monitors, I have more than enough space for menus and options, and when things are shrunk to please the un-power-users, it really pisses off the power-users. So, instead of griping and disabling Unity altogether, and going back to pure Gnome, I'll stick it out with Unity, lest I be ridiculed for being resistant to change. Plus, lots of man-hours went in to Unity, so I'll give it an honest attempt.

First Major Gripe: Unity auto-hides, and thus my taskbar is gone.
I do FAR MORE on my computer than just surf the web. I'm a programmer, so I have my editor windows open (atleast two), I have several terminal windows open. I also have several images open, I'm constantly taking screenshots. And I always have gedit open, for just pasting some text for a period of time. So, without a taskbar, I'm significantly hamstrung. And having to mouse over the Ubuntu icon, or mouse over it, and then jiggle it until the Unity bar full of installed applications pops up, is very very sucky.

FEATURE REQUEST: Allow me to right click somewhere in the Unity bar launcher and have an option for Preferences that takes me to the setting manager, and have the setting-manager installed by default.

1) To disable auto-hide, you first gotta install the setting manager for Unity.
sudo apt-get install compizconfig-settings-manager

2a) Open System Settings (to eventually find compiz-config to eventually find unity-config)
To open the newly install setting manager, I've found it by clicking the power button in the top right corner, and going to System Settings.

2b) Find compiz config (so we can then find unity config)
From the System Settings, search for compiz, and click the first result.

2c) Find Unity config
From the CompizConfig Settings Manager, search for Unity, and click the first result.

3) From Ubuntu Unity Plugin, change Hide Launcher to: Never

Now, the Unity launcher will never autohide.

Future gripes:

  • where is the show desktop button?
  • how do I use Unity to switch between multiple instances of the same program open. 
    • i.e. Chrome window 1, and Chrome window 2. (assume I've never heard of Alt-Tab). 
    • Perhaps Unity UI team can borrow inspiration from Windows 7, and mousing over an icon in the Unity launcher will then show thumbnails of all running instances of that program.

Friday, April 01, 2011

IntelliJ Idea: Frustrations with "cannot resolve Java"

I'm trying to convert myself to using IntelliJ IDEA, as word on the street is that thats what the power developers are using. I'm pretty sold on NetBeans myself. Its pretty, it works every time, its really intuitive and easy to use, it does the task at hand without cluttering me down with loads of crap.

My initial impressions of IntelliJ IDEA are that, I need to force myself to enjoy using it. Hopefully my obstacles to using IDEA will be resolved so I too can get with the program. In this post I'll shed some light on solving a big nasty roadblock I ran into with IDEA.

The Problem:
IDEA doesn't know what Java is.

My first sign that something is very wrong:
IntelliJ IDEA Cannot resolve symbol 'String'

IntelliJ becomes very annoying when it can't find the JDK. It will however prompt me every 10 seconds, that it recommends me to use org.apache.xpath.operations.String, instead of Java's in-built String. It will recommend me a whole crapload of things, such as detecting Spring, wanting to add IDEA project files to the git repository, but it won't detect that I don't have a JDK set.

The nail in the coffin:
IDEA: Cannot resolve symbol 'java'

This does wonders for programmer happiness, in fact, IDEA actually made me frustrated. Even though IDEA was the only IDE that had a certain feature that would be its selling point for me, all of that erases when it doesn't know what Java is, and doesn't give me Code Completion for String.

The Fix:
Properly set the IDEA Platform JDK for your project/module.

Go to Project Structure (Ctrl+Alt+Shift+A), and ensure that Platform Settings[SDK's] has your path for Java set, in my case /usr/lib/jvm/java-6-sun, and then the main fix:
Set the Project Settings[Project] --> Project SDK to your current JDK. I had mine set to none for the project I was working on. Therefore, no java, no string, no primitive types, no nothing.

Once you set that, it should kick off a reindex, and your project will have full Java support. I suppose during the install of IDEA, it didn't detect Java from the usual places, and decided not to ask me.

Sorry if this is a ranty post, but an uncooperative IDE is almost as bad as code thats not doing what you're intending it to.