Skip to main content

Linux: GNOME Shell

I decided to give GNOME Shell a try.
The GNOME Shell redefines user interactions with the GNOME desktop. In particular, it offers new ways for the user to find and open applications and documents, switch between various activities, and view incoming information such as chat messages or system notifications.
To say that I love it would be an understatement. It's exactly the sort of user interface innovation I was hoping would happen in the Linux world. What I like is that it isn't just eye candy. Instead of just being a badly done knockoff of Windows or OS X, it's new, clever, and interesting. It simplifies my desktop, while at the same time making me more efficient and powerful.
  • Here are the screencasts.
  • Here's a cheatsheet that explains all the features, in case they aren't obvious.
  • Here's how to install it on Ubuntu.
I did have one problem. If you switch to GNOME Shell completely, your mouse may disappear when you click the Activities button. Remember, this is still a preview release of GNOME Shell, so bugs are to be expected. The simplest way to fix this issue is to type Alt-F2 and then "restart".


jjinux said…
Using Alt-F2 and "restart" also helps if you switch from your laptop display to an external display, and they have different resolutions.
Alex Conrad said…
(was that previous comment spam?)

I tried Gnome Shell with Karmic running in a VM Player. It's very sluggish. From the very low frame rate I seem to have, it looks like it only uses OpenGL, right? I'll try that on a real install later.

Thanks for pointing this out. It looks nice.
dm said…
haven't tried GNOME Shell, but it does look interesting...

After watching the screencasts, I'm still wondering if and how it handles multiple instances of the same application. Some apps you only want the one instance, other apps multiple instances might be preferred. Is it easy to find and switch between the multiple instances?

Related: how well does it handle the GIMP with its multiple windows?
jjinux said…
> Is it easy to find and switch between the multiple instances?

Yes, there's intelligent handling for apps with multiple instances, especially when you hit Alt-Tab.

> Related: how well does it handle the GIMP with its multiple windows?

It's not a tiling window manager, so there's less to go wrong. I just tried it out, and it handled the GIMP perfectly sensibly.
jjinux said…
> (was that previous comment spam?)

Yeah, sorry about that. I just deleted it.

> I tried Gnome Shell with Karmic running in a VM Player. It's very sluggish. From the very low frame rate I seem to have, it looks like it only uses OpenGL, right? I'll try that on a real install later.

Yeah, I wouldn't use it on VM Player. If I were going to use VM Player, I'd use OpenBox or Xubuntu or something like that. I got tired of waiting for VMWare Fusion, which is why I installed Linux natively on my MacBook.

Since I have a MacBook with 2 cores and 2 gigs of memory, I've been playing with things that can actually make use of all that hardware in a useful (not merely wasteful) way. I think GNOME Shell does. I.e. it's not just eye candy, but is actually pretty useful.

> Thanks for pointing this out. It looks nice.

You're welcome! :)
Unknown said…
Hey JJ. Just came across this old post of yours. In any case, are you still using Gnome Shell? It's my preferred DE as well. One itch that has been scratching at me lately is that the Shell has JavaScript bindings (in fact the shell itself is written in Javascript). I'm curious what it would take for js-interop to get it to work with Dart.
jjinux said…
Oh wow! I haven't played with GNOME Shell in a while, so I never thought of using it with Dart. In theory, it should indeed work with clever use of JS interop.

Popular posts from this blog

Drawing Sierpinski's Triangle in Minecraft Using Python

In his keynote at PyCon, Eben Upton, the Executive Director of the Rasberry Pi Foundation, mentioned that not only has Minecraft been ported to the Rasberry Pi, but you can even control it with Python. Since four of my kids are avid Minecraft fans, I figured this might be a good time to teach them to program using Python. So I started yesterday with the goal of programming something cool for Minecraft and then showing it off at the San Francisco Python Meetup in the evening.

The first problem that I faced was that I didn't have a Rasberry Pi. You can't hack Minecraft by just installing the Minecraft client. Speaking of which, I didn't have the Minecraft client installed either ;) My kids always play it on their Nexus 7s. I found an open source Minecraft server called Bukkit that "provides the means to extend the popular Minecraft multiplayer server." Then I found a plugin called RaspberryJuice that implements a subset of the Minecraft Pi modding API for Bukkit s…

Apple: iPad and Emacs

Someone asked my boss's buddy Art Medlar if he was going to buy an iPad. He said, "I figure as soon as it runs Emacs, that will be the sign to buy." I think he was just trying to be funny, but his statement is actually fairly profound.

It's well known that submitting iPhone and iPad applications for sale on Apple's store is a huge pain--even if they're free and open source. Apple is acting as a gatekeeper for what is and isn't allowed on your device. I heard that Apple would never allow a scripting language to be installed on your iPad because it would allow end users to run code that they hadn't verified. (I don't have a reference for this, but if you do, please post it below.) Emacs is mostly written in Emacs Lisp. Per Apple's policy, I don't think it'll ever be possible to run Emacs on the iPad.

Emacs was written by Richard Stallman, and it practically defines the Free Software movement (in a manner of speaking at least). Stal…

JavaScript: Porting from react-css-modules to babel-plugin-react-css-modules (with Less)

I recently found a bug in react-css-modules that prevented me from upgrading react-mobx which prevented us from upgrading to React 16. Then, I found out that react-css-modules is "no longer actively maintained". Hence, whether I wanted to or not, I was kind of forced into moving from react-css-modules to babel-plugin-react-css-modules. Doing the port is mostly straightforward. Once I switched libraries, the rest of the port was basically:
Get ESLint to pass now that react-css-modules is no longer available.Get babel-plugin-react-css-modules working with Less.Get my Karma tests to at least build.Get the Karma tests to pass.Test things thoroughly.Fight off merge conflicts from the rest of engineering every 10 minutes ;) There were a few things that resulted in difficult code changes. That's what the rest of this blog post is about. I don't think you can fix all of these things ahead of time. Just read through them and keep them in mind as you follow the approach above.…