Desktop Summit ad-hoc tips

For those attending the Desktop Summit in Berlin, you may want to go head and set up tools like bananajour, SparkleShare, and etherpad-lite now on your laptops to be able ad-hoc develop & share files regardless of network quality.
Locally-ran web based tool for sharing git repos over bonjour (w/ publishing & discovery)
SparkleShare is a collaboration and sharing tool that is designed to keep things simple and to stay out of your way. (git based)
An Etherpad based on node.js (much easier to setup than the normal etherpad; also friendlier on your system resources)

A few tips for learning & practicing photography

(I originally posted this on Google+, but figured it’s blog-worthy.)

• Keep shooting; you’re always practicing to get better, no matter how long you’re doing photography (:

• Bring a camera (of some sort) with you — the best camera is the one you have in your hands (if you leave your SLR at home, then your cell phone is your current “best camera”)

• Learn about the rules of composition… throughout time and experience, you’ll learn when to bend/break the rules (you can always practice with different ways of framing the shot and deciding which is best in review).

• The “rule of thirds” is a good tip, where the subject is located approximately ⅓ of the way in fro the sides (top, bottom, left, right). If it’s a ⅓ from two sides, it’s usually even more interesting. Don’t fall into the trap of thinking that every photograph has to abide by this “rule”.

• Fill the frame with your subject. Usually, the most compelling photographs have the subject taking up a lot of space in the picture. Get close, then get closer. (Again, as w/ the “rule of thirds” above, this isn’t always true, but it is often.)

• Nailing the correct exposure is nice; histograms (which show you a chart of dark parts on the left to bright parts on the right) help you out… and the camera’s guess at the “right” exposure is a guess to balance the picture to a medium grey (your camera can help with exposures, but you should override the camera at times)

• Learn how ISO sensitivity, aperture (f/stop), and shutter speed are related… if you adjust one, you’ll have to adjust one or both of the other two if you want to maintain a similar exposure.

• ISO sensitivity is a balance between noise and the ability to record brightness in a scene. The lower the ISO, the less noise (to an extent). High ISOs are used for low light and action shots. You will get a little noise at higher ISOs, but it’s not bad. Noise is okay (to a point). Some of the best pictures in all of history are quite noisy.

• The aperture is also know as the f/stop. It probably works the opposite as what you might assume. Smaller numbers make the aperture (the controllable hole to let in light) wider, so more light floods the camera. Larger numbers make the hole smaller, permitting less light into your camera. Aperture is mainly there to control the “depth of field” (DoF) which basically means “how much of the scene is in focus at one time”. A smaller aperture (bigger hole for the light to pass through) means more light and shallow depth of field… so you’ll have nicer background blurs (“bokeh”). If your lens is fully open (smallest aperture), your images will be a little soft (which is okay, but it’s good to note)… you can bump up the aperture a little to make it less soft. Larger apertures (smaller hole) make more things in focus, but at the cost of shutter speed (the time to take the picture). Larger apertures may also make dust on your sensor more visible, and, due to technical reasons, should probably not be much higher than f/8 – f/11 on most digital SLRs, else you’ll start to lose image quality (although it’s okay).

• Shutter speed is the time it takes to shoot a picture. It’s a fraction, except for long shots. 2 (2/1 seconds) is a long time, 1/20 is short, 1/200 is a lot quicker. You’ll want to have it be quicker than the reciprocal of your len’s length in mm if you’re hand-holding shots. For example, if you have a 50mm lens (or a zoom lens at approximately 50mm), make your shutter speed at least 1/50 or faster, else your hands & arms may introduce a camera shake blur. You can adjust the ISO and aperture to balance this out, if there isn’t enough light where you are. The longer your shot, the more light you let into the camera.

Quick recap of balancing ISO, aperture, shutter speed:
Dark ←→ Light
• ISO: small number ←→ large number
• Aperture (f/stop): large number ←→ small number
• Shutter speed (time): large number ←→ small number (remember: it’s fractional, so it’s 1/_X_, so X should be larger here when you want a smaller number)

Also, quick recap of what each does:
• ISO: sensitivity boosting (but adds noise)
• Aperture: amount of light to let in (more light = shallower focus, less light = more of the scene in focus at one time)
• Shutter speed: how quickly your camera shoots (faster lets in less light, but you can get action shots, slower means more prone to blurs from camera shake or action)

Quick recipes using the above info:
• Portraits: small-numbered aperture, lens length between 85 – 105mm typically (both to maximize a shallow depth of field to make the person or object stand out from the background). Also use nice lighting, but that’s a HUGELY different, detailed topic.
• Sports & action shots: Maximize your shutter speed, to make it as quick as possible. You can do this by cranking up the ISO and you can also reduce your aperture setting (making it a large hole) to let in more light, to counter-balance the shutter setting.
• Nature scene: High apertures are key here, as you probably want everything in focus. Sometimes this means sacrificing time, so it might be so slow that you cannot hand-hold it with a nice ISO (like 100 or 200, whichever your camera’s “native” ISO is), so people often use tripods… especially on cloudy days and during sunrise, sunset, and nighttime. You’ll probably also want to use a circular polarizer filter, which reduces scattered light (and cancels out reflections, makes color “pop”, etc.). Polarizers also reduce the amount of light coming into your camera, so adjust accordingly.

• You can experiment with shots and not worry about anything above that you might not understand yet. Just pointing and pushing the button is enough, but understanding how things work can really help you get the shot you want.

• Shooting in raw means you can adjust more things after taking the picture. It’s a lot more flexible and even allows you to correct mistakes. It also has a lot more data than JPEG, and does not use lossy compression, so your images won’t have JPEG artifacts. You’ll want to use Apple’s Aperture or Adobe’s Lightroom (I use and prefer Lightroom).

Again: Get out there and shoot, shoot, shoot! Feel free to experiment, especially with digital photography, where extra shots don’t cost you money for film and processing.

(However, despite this, I suggest not shooting the same thing in the same way more than once if you can help it. Think about each shot. There is a cost of your time afterward, on the computer.)

Also, you don’t have to upload everything you take a picture of. Even the best photographers in the world sometime take crappy photographs. You don’t see their awful shots, however. They just take a lot and show you the best. (:

Adwaita (GNOME 3 theme) for Chrome

Like many of you, I split my time between two excellent browsers: Firefox and Chrome. Neither feels really all so native in GNOME3 — although Firefox, as it mimics GTK+2 by default, fits in just a little better. Every time I started Chrome, however, I felt a bit frustrated with how much of a sore thumb it stuck out and decided to do something about it.

Introducing the Adwaita theme for Chrome

You can have GTK+3-ish scrollbars, too…

So, go ahead and install the theme and the scrollbars.


  • Chrome’s theming isn’t too flexible, so the tabs are probably about as close as they’re going to get.
  • Due to a bug in Chrome, custom scrollbars do not work in iframes. I have made a workaround (thanks to CSS :not() magic) so that you still will have scrollbars whenever iframes need them. (This matters quite a bit for some web apps, such as Google Mail.)
  • There’s a bug in some builds of Chromium that prevent it from accessing the Chrome Web Store. The issue tracker mentions some work-around, and future builds openSUSE builds of Chromium will have the fix soon.
  • I’ve released the git repos of each on github: adwaita-chrome and adwaita-chrome-scrollbar

Unfortunately, I haven’t spent the time to make Firefox fit in a little better. It would take a bit more effort. Hopefully the Firefox GTK+3 port is coming along nicely? (:

(Alternatively, someone would score some huge hero points by making Adwaita for GTK+2 resemble the GTK+3 version, instead of Clearlooks. This would also make other GTK+2 theme using apps fit in a bit better too, such as LibreOffice.)


I am GNOMEGNOME 3 has been released! Congratulations to everyone involved in making this happen!

I’ve been using the prerelease versions and have found a few tips that are worth mentioning.

Learn shell: There are a lot of quick tips and shortcuts that make using shell even nicer. It’s worth taking a couple minutes to peruse the shell cheat sheet. It’s worth knowing that alt-tab works as expected (even across workspaces) and alt-` (or whatever the key is on your keyboard above tab) will cycle through windows of the current app. There are many other useful tidbits on the cheet sheet page.

Remap keys: In the control center, choose regions and language, select the layouts tab, and then click the options… button. A dialog will pop up. On my ThinkPad, the meta key (the one with a little Windows logo on it) is a bit small, so I remapped capslock to an “additional super” (which makes it switch into gnome-shell’s overview mode). Be sure to also set a compose key here (such as your right alt, for instance) too, for compose key goodness.

(Update: Remapping keys has since been moved to System SettingsRegion and LanguageLayoutsOptions…Compose key position → [select the key(s) you want for compose key])

(Update 2: Remapping keys in GNOME 3.6+ has since been moved to System SettingsKeyboardShortcutsTypingCompose key → [click and hold, and select the key you want for compose key from the dropdown])

Customize keyboard shortcuts: From the control center’s main view, select keyboard and then switch to the shortcuts tab. Here, you will find many actions that are available for mapping to your heart’s content. For instance, I map launching a terminal to F1 (because I’m a computer geek, and Trae McCombs got me hooked on that key shortcut years ago). I also remapped the shell action key plus a few keys for various window and desktop commands. You can do this too, as the shell overview mode only activates when you let go of the key, so if you do press the window key and some other key(s), then that keyboard shortcut will take precidence. For instance, I have it set so that the Windows/capslock (see above for key remapping) key on my laptop plus an arrow will switch the workspaces. (Normally, this is control+alt+up and control+alt+down. On my laptop, I can hit capslock+up and capslock+down. It’s a little easier to hit, given my keyboard.) I also have the same keyboard shortcut with the addition of shift for moving windows across workspaces. In addition, my computer is configured to do other window management with the super key (the win/capslock key) plus others. Super+m is maximize, super+v is maximize vertically, super+h is maximize horizontally, super+w is close window, super+f is fullscreen (which is great for Firefox, if you want it fullscreen with the tabs visible, versus its built-in fullscreen which is fullscreen for the content), etc.

Simply type & search: Once you’re in overview mode, you can immediately start typing and search will match apps. You can also hit down to cycle through matches and hit enter for the selected match. (Hitting enter will launch the top-left app match by default.) It’s also worth noting that there are buttons to perform Wikipedia and Google searches (on the web) at the bottom of every search.

Alt-F2 “run” dialog: If you’d like to quickly run a program and know the name you’d type in a terminal, hit alt-F2 and type. While the dialog looks very simple, it actually supports tab completion. The cheat sheet (mentioned above) lists a few additional hidden commands, such as “r”, which restarts gnome-shell.

Immediate app-to-workspace: If you middle-click (scroll wheel button) an app on the dash (the dock thing on the left), the application will open in its very own (new) workspace. This also works for apps in the application view and in search.

Switch to app across workspaces: When you switch apps via alt-tab or by clicking an icon of a running application in the dash, if the application resides on another workspace, you will be whisked to where the app resides.

Alt-tab with the mouse: While holding alt-tab (or hitting alt-tab and holding down alt after letting go of tab), you can select applications with your mouse. Of course, you could keep pressing tab while holding down alt to cycle through applications and windows.

Drag to the side or top: If you drag a window to the side of the screen, it will snap to fill half the screen. This is useful if you want to work on two things at once (such as referencing one document and typing in another window). If you drag to the top of the screen, it will maximize the window. If you drag away (after the window has been maximized), it will restore its previous size.

Anyway, these have been things I have found to be useful while using GNOME 3. You can download a live image for a CD or USB stick and try it even without installing. (You can also install; I know that the openSUSE version has a live installer — it’s how I installed GNOME 3 on my laptop. Just search for “live” in the overview mode and you should see it.)

Enjoy GNOME 3, and many congratulations to everyone involved!

One-click, part 2

You may remember when I originally redesigned the one-click installer for hackweek in 2008. Well, for this recent Novell/SUSE hackweek, I spent some time to slightly redesign  and expanded on how the one-click installer should work. Will Stephenson also started working on an implementation, too.

Here’s my new one-click mockup (click on the picture to view at full size):

The text on the page should be pretty self-explanatory. Ideally, this would be implemented in a simple graphical client using PackageKit (and PolicyKit).

I believe the openSUSE Build Service (think of it as the “Open Build Service”, since it can produce packages for all the popular distros) even supports multiple repositories in one YMP (but I may be mistaken here), so using it with the OBS would be a fantastic way to easily build your software for multiple distributions (which you can do right now) and make it a snap click for everyone to install your software. Something like this could turn the entire web into an “app store” for Linux, and software could be easier to install than on any other platform, if implemented correctly.

Thoughts? Comments?

Oh, and you can also download the SVG source (to be edited in Inkscape). It uses the Droid Sans font — be sure to have it installed.

the future of Nautilus

Hi everyone! I worked on a few different things during the Novell/SUSE HackWeek. One of these things was continuing my Nautilus redesign that I (Garrett LeSagestarted last year, continued with others (Allan DayHylke BonsMáirín Duffy, etc.) at the London UX meeting and at LGM2010… and then further talked about on the Internet. During the HackWeek this month, I worked collaboratively with others (Allan, Hylke, Lapo Calamandrei, Andy Fitzsimon, and more) using Inkscape, Google Wave, Dropbox, IRC, and IM and we brainstormed on ways to improve Nautilus — not just feature by feature, but how everything would work together. Our overall goals:

  • All the functionality that you need. Nothing you don’t.
  • Clean, simple, attractive
  • Well-suited to small screens
  • Makes many essential functions more discoverable than at present

Please note that this is a work in progress, and is not to be considered final. I am posting our design draft here to request feedback and discussion. To properly move designs forward in the community, we really need to discuss them in the open. We feel these concepts have matured enough to be seen outside of our cross-company collection of designers. The result of our discussions were summarized in another round of mockup explorations, as well as a document summary of key ideas we agreed upon. (This document needs to be moved to GNOME’s wiki at some point in the near future.)

Mockup notes: You can see the progression of the groups of the mockups. We also were playing around with ideas on how to integrate the two menus. (It was later determined that embedding the application menu in the titlebar caused two issues: First, people expect it to be a window manager menu. Second, it could only properly be done with client-side rendering with non-existing versions of the window manager and GTK+. Please disregard this placement in the mockups.)


Overall, this menu restructuring:

  • gets rid of the complexity of Nautilus’ menu system
  • provides the same general feature set
  • prevents us from designing multiple levels deep
  • makes Nautilus look much cleaner than it currently does by not having a menu bar
  • wins us much-needed vertical space

Actions menu

  • File management actions — now moving to an optional (but on-by-default) action bar at the bottom of the window.
  • This is a discoverable version of the right-mouse-button contextual menu.

Open With ###
Open With >

Duplicate Rename…

Dropbox > (and other extensions go here)

Move to Trash



Create > (folders, documents, etc.)

Select All
Select Items Matching…

Application menu

  • Whatever else, when you’re not actually managing files

[Application menu]
New Tab
New Window
New Administrator Window

Connect to Server…

Empty Trash



Close Window
Close All Windows

‘Side-step’ breadcrumb menus

  • Activated via click and hold on breadcrumb folders.
  • Display sibling folders (at the same depth as the folder represented in the breadcrumb).
  • ‘Root’ breadcrumb folder displays other possible roots:

[# Home]
USB Stick
Foo on share


Back and forward menus

  • The back button shall display all history in the past only, and the forward button shows all the future history (relative to present location). Normally, this means the forward button will be disabled until stepping backwards in history.

[ < ] [ > ]
# Foo
# Bar

Clear History

Places menu

  • This menu replaces the places sidebar and bookmarks.
  • When the places sidebar is hidden, it should show up to the left of the Breadcrumbs as a menu, in the same place.
  • It is to be determined if the places sidebar will exist in a toggled form, or if it shall be reduced to a only a places menu.

[ Places ⇩ ]
(All the places one would expect)

Edit Places…


Originally would be the only sidebar, but as of recent mockups, sidebars may go away entirely. Places would then be implemented as a slab-menu.

  • It acts similar to a normal menu.
  • You can click and slide the mouse down during that click to select items, and when you let go, it gets activated. (The eject icons are special cases, but work similarly.)

[FIXME: more info about places]

Actions Toolbar

Dynamic context menus show relevant actions for the selected item.

  • Make contextual actions discoverable
  • Super-easy! Removes the need for awkward right-mouse-button operations
  • Excellent for users with a single mouse/track pad button

Status “minibars”

(See the bottom-left mockup in nautilus-streamlined for now.)

  • Transient, display information only when needed
  • There is no “status bar” by default”
  • # of selected items are shown when files are selected
  • Network loading is shown (with a spinner on the left and stop icon on the right)
  • These minibars will be aligned to the right (unlike the streamlined mockup)

[FIXME: This was discussed in-length, in-person, at LGM2010. We still need a proper mockup.]


A quick and simple way to set up any type of share (eg: local, network, email, IM, Sparkle, Dropbox, Ubuntu One)

  • Reduces menu clutter by locating all sharing mechanisms within a single dialog
  • Makes sharing clear and simple
  • Fast: recent shares are listed first

[FIXME: We have ideas, but this still needs a proper mockup]

New widgets

  • There are no custom widgets in the Nautilus mockups… just new, standard GNOME3 ones!
  • Mockups like these should completely drive what it means to be GNOME3. We should not do one-offs in the software the mockups depict, but make widgets and set paradigms for the entire platform.
  • We should mock up other significant software that incorporate these features.
  • Let’s make sure all the core GNOME apps are new-style, and others will follow. We have to set the example.

Say goodbye to…

While we strive to keep the same featureset in future Nautilus, there are some things which are going away. Please note that almost all of these items in the list are being addressed elsewhere in the interface. We are removing:

  • computer:///
    • The items displayed in computer:/// are already present in the places side pane and will also be present in the breadcrumb dropdown when that is completed
    • computer:/// isn’t as useful as Places or the dropdown because it is one step removed – it’s essentially hidden
    • ‘Computer’ isn’t a good description of the contents of computer:/// anyway. ‘devices:///’ would be more appropriate.
  • “filesystem” in the UI
    • Nautilus should focus on serving real people’s needs. People do not need to manage system files in a file manager. However, that said…
    • We’ll have a hidden gconf key to enable filesystem for über-geeks (or better, wanna-be-uber-geeks, uber geeks use the terminal… or ctrl+L), who are the ones who want this feature in the first place.
    • It will also be possible to navigate the filesystem by hitting Control-L and typing locations, just as it is in current Nautilus.
    • remote directories mounted in /opt/ (and other random places) will be exposed under network
    • any location Nautilus can see is “bookmarkable”, and these bookmarks will show up in places
  • Split pane (“extra pane”)
    • Split panes would prevent many of the features being advocated here, including the single toolbar and actions toolbar.
    • This design removes many of the reasons for split panes in the first place, however. For instance: Non-directory specific controls are kept to an absolute minimum.
    • Split pane mode really calls for better window management.
  • Everything in the sidebar other than Places: including Tree, History, Emblems and Notes.
  • User specifiable backgrounds, emblems and custom icons.
    • Spatial mode as a distinct UI. The Nautilus future design is the perfect combination of the spatial and browser UIs. Its minimalism should feel comfortable and familiar to spatial users.
    • Spatial mode could still be retained as a preference, of course, as: ☑ Open folders in new windows

Many aspects of Nautilus’s UI are extremely old-fashioned and are barely used. The maintenance burden they represent outweighs their usefulness. Nautilus bugzilla is choked up by reports about backgrounds, custom icons and spatial mode. Many of these never get touched. Better to have a minimal UI that is complete and well-maintained than a plethora of half-finished features.

TL;DR (Summary)

A number of us designers in the community are brainstorming and proposing changes to Nautilus. We’re going all the way and suggesting more than little fixes here and there (which is what Nautilus been doing for years.) We’re building a vision of what better file management could be. Read the results of our design discussions above, and check out the latest round of mockups. If you’re a designer, you can also grab the source SVG for editing in Inkscape. Also, please feel free to change the file contents in the mockup to something else. (: