Posts Tagged ‘screenshots’

(on Technorati , Del.icio.us)

GNOME 3.0 Beta v0.0.6 Impressions

GNOME 3.0 is due for release April 16 and I’m pretty excited by it. So I finally decided to check out first-hand how it’s progressing. My perspective is that of a GNOME 2.X user, but like many people, I was a little skeptical of the changes in 3.0. I tried the 0.0.6 image from the GNOME3 website and ran it off the USB key.

The Good

  • It’s pretty. And minimal. Love the new font.
  • High quality and scalable graphics and interface – tried it on both a 10″ netbook and a 23″ monitor with success. Large title bars and close buttons – easy to hit.
  • All the updated core GNOME programs! I especially like the progress with Nautilus, the file manager. Instead of using a status bar, it uses a floating alt-type yellow info box to display info. Plus it seems much faster.
  • Single stroke exposé-like effect that reveals all windows, scaled and tiled. This is bound to the Windows (Super) key, which actually makes it more appropriately named for GNOME3 than any version of Windows. Note: It can also be reached by clicking Activities in the top-left corner. From here, you can use your mouse to switch to a window or quickly close windows, launch/switch-to a program from the left sidebar, or you can start typing a substring of a program to run, or a string to search using wikipedia or google (these options appear after you type something… OR you can browse applications by clicking Applications. Additionally, on the right, you can manage workspaces. With the smart launcher and window manager functionality tied to a single key, I found myself actually starting to heart the windows key and its prime keyboard real estate.

  • Don’t worry, you can still alt-tab! 🙂 And it’s improved, with mouse input, and grouping instances of the same program.

  • Integrated chat with notifications is great.
  • Modal windows are now attached to their parent window (by default, this can be changed).
  • Slick animations with meaning. Like the modal windows that slide out of the parent window’s title bar. I think OSX does something like this….
  • Yelp, the Help browser is about a billion times faster. Seriously. This is largely due to the shift from gecko to webkit, I believe.
  • No more minimize/maximize buttons. At first, I wasn’t sure about this and thought I wouldn’t like it, but the way the new desktop is designed, I don’t miss them. You can add them back, if it’s a concern. And all the old window shortcuts still work: [Alt+F9] = Minimize; both [Alt+F10] and [double-click title bar] = Toggle Maximize; [Alt+right-mouse-button] = window menu.

  • GNOME is just much leaner than it has ever been before. Instead of starting 3 different programs at login (nautilus, gnome-panel, metacity), it simply starts gnome-shell.

The Bad

  • Requires 3D support. Unfortunately, this is not always a simple request for us Linux users. Tried it on my netbook and failed. Couldn’t run it and probably never will thanks to the terribly supported poulsbo integrated graphics.
  • And not just any 3D support… Tried it on my desktop, also with integrated graphics, but a better supported ATI x1250 – performance wasn’t stellar, but it was usable.
  • Not very mature and not very customizable (yet). Panel Applets in prior versions of GNOME are extremely popular. Now we have this huge piece of space we can’t do anything with. But I’m sure something like panel applets will come eventually.
  • It’s really hard to train myself to look to the middle of the top panel for the time/date… I keep looking at the top-right. 😛
  • Some of the changes had me fishing for functionality. Like, where is the control-center? It’s not in the Applications list under the Activities window. It’s under the user menu, under System Settings.

    And once you’re in the System Settings, you often want to change many things. At first, I was opening System Settings, selecting a component (they’re called Panels) to adjust (Background, for example), making changes, closing, repeat. When you open a panel from the System Settings window, that panel replaces the contents of the System Settings window. I didn’t notice the All Settings button that replaced the search entry in the dark grey area! After realizing that, it wasn’t so bad. 🙂 And to be honest, I think the theme or something is not quite finished. Looking at other screenshots on the web, the button is much more noticable.

The Ugly

  • BIG change in the way it expects people to use it. This will likely cause lots of frustration.
  • Doesn’t quite seem ready for prime time. I guess that makes sense, it’s still beta.
  • Some odd input lag every now and then. Visual artifacts. For both of these, I point my finger at my integrated graphics. Just a general lack of polish. But that’s to be expected with alpha/beta software.
  • Bold, black window titles with same-colour shadow. Ugh… I expect that will change soon. 🙂

After trying Shell, I’m actually more excited for it. It still lacks polish in areas, which is expected at this point, but I love the direction GNOME3 is taking GNOME. I’m hoping I can get by on my integrated graphics, but I’m probably willing to purchase a low-end video card to get better performance. Anyway, I’m really interested to see how Canonical’s Unity and GNOME Shell will evolve side by side. Now I have to try Unity, I guess….

1024×768 Desktop

Lots of people customize their desktops. Many don’t, but I do.. a little. Here’s mine:

1024x768desktopusage_annotations

I actually had to remove the Time Tracker (Hamster) applet to scale my 1280×1024 desktop down to 1024, but I think that was all. And I only just decided to try moving the Tomboy and Deskbar applets over to the top-left corner… looks a little odd, but it’s much more accessible. It’s good to try out new things, right? 🙂 (When the keyboard will do, Alt+F12 and Alt+F3 for Tomboy and Deskbar, and Super(windows-key)+Space for Gnome-Do are good shortcuts to keep in mind.)

How about you? (If you run Ubuntu, read this – which is why I tried scaling my 1280 desktop to a 1024, in the first place).

WordPress 2.7

I just upgraded from 2.6.3 (using my “wp-upgrade” script), and It’s fantastic! Go watch a video about the biggest features. It even includes an “automatic upgrade!!” This pretty much deprecates my script, unless you want to maintain snapshots of each version. (I’m not sure if anyone other than me was using it to begin with… but anyhow….) 🙂

Screenshot: wp-upgrade Snapshots

File List Applet – GNOME Panel Applet

This is kind of a proof of concept I’ve been playing with. The idea is that finding a file within a folder is often easier by type, and you are often only interested in the most recently modified file. The problem with a file manager is that although you can easily sort by either type or modification time, you cannot filter your view of all the other files you’re not interested in. I previously wanted to address this issue within Nautilus, (and I still believe this functionality would be wonderful in Nautilus), but I ended up doing this much less ambitious applet as a proof of concept.

This applet will let you add any number of folders to it, and will try to categorize the files automatically and intelligently. Currently, it’s more automatic than intelligent as it just looks at the mime-type. Even so, I’ve found it especially useful for keeping track of all my downloads:

Steven is catching up on the latest on planet.gnome.org and has downloaded a couple screencasts demoing the latest and greatest. These files are typically 2-10 megabytes, so they didn’t download instantly. Steven continues reading and forgot about the screencasts until a couple hours later. At that time, he can simply click on the File List Applet, select Downloads, select Video, and look at the top of the list for the newest files. Steven is happy. When finished, he can follow the same process to delete them – without once opening his file manager and being assaulted with ALL the files in his Downloads folder.

Ultimately, I would like to extend the idea to provide the same type/subtype menu system for all files under all folders – a type of summary – but I have not implemented that yet. There are other features in the cooking pot, as well, but I have to get started on some “RL” tasks… like my resume. 🙂

Screencast

I had a problem recording audio, so I ended up typing as narration. Unfortunately, this makes the YouTube one pretty unwatchable, but you can give the “HQ” version a try.

Download

No tarball yet as it’s still extremely rough.
Browse the source here.
Branch the source: bzr branch http://stevenbrown.ca/src/FileListApplet

Install

Update 2009/04/05: Updated install instructions here. (Some people don’t look at the comments….)

Installing will require some manual modifications.

  1. First, make sure you have the following packages (Ubuntu): python-xdg, python-gnome2-desktop, python-gtk2, python-pyinotify
  2. Then branch the source.
  3. Adjust the FileListApplet.server file’s location to wherever you keep it.
  4. Then copy FileListApplet.server to /usr/lib/bonobo/servers/.
  5. Restart the bonobo-activation-server. killall bonobo-activation-server
  6. Add it to the panel like other applets.

Update 2008/12/05: Added a couple screenshots.

Ubuntu 8.10 (Intrepid Ibex) and Tablets

I just had to mention this: The latest version of Ubuntu finally supports input hotplugging. What this means is that you can plug in your tablet at any point and start taking advantage of its pressure sensitivity, etc. Previously, it would only work correctly if Ubuntu (the X server part of it) started with the tablet plugged in. Let me just say: OMG, I’ve been waiting for this for years! Seriously. I hadn’t been keeping up with every detail on the release (and I’m surprised I hadn’t seen mention of this yet), but I always plug in my USB tablet and run a quick test with new releases. This time, it actually worked! My test turned into a quick (and random) doodle:

How to Test

Plug in your tablet.

Run GIMP (included with Ubuntu by default).
Applications > Graphics > GIMP Image Editor

Enable Extended Input devices in GIMP.
Edit > Preferences > Input Devices > Configure Extended Input Devices

Find your tablet under the Device dropdown (mine is a Wacom Graphire) and select Screen or Window for the Mode. (It defaults to disabled.)

Create a new image, select the paintbrush tool and start drawing. To play with the features of your tablet, expand the Brush Dynamics section in the paintbrush options window (should be below the toolbox, where you selected the paintbrush). Here you can adjust things that pressure of your pen will control, like size and opacity. Fun stuff!

It’s not perfect (only works with the stylus – eraser doesn’t work without configuring), but it’s a HUGE step!! 😀 And the fact that this also includes the latest version of GIMP (2.6) makes this upgrade an absolute no-brainer for linux graphic-philes. 🙂

I found the new UI in GIMP a little strange at first, because I became so accustomed to the old one, but it is much better.

Upgrade Problems

Related to the upgrade, I lost wireless connectivity with my laptop upon doing it because the hostap_cs driver is used. I forgot about this issue that I had with previous releases and my super-cheap 1000yen wireless card. Blacklisting the hostap_cs driver and forcing the orinoco_cs driver fixed my problem again. The lesson: the upgrade wasn’t perfect and it should never be assumed that they will be – please backup your stuff! But do do the upgrade! 😉

open-with for the command-line

Update 2008/11/18: Use xargs 😛

Here’s a bash script that you can pipe output into and tell it to run a specific program with the output as arguments. I’ve named it open-with and placed it in my personal script directory: /home/steve/bin/. Look within the script at a couple of the examples for how to use it.

#!/bin/bash
 
PROG=`basename $0`
 
DESC="Read arguments from standard input and run a specified program
with them.  Meant to be used as output for a pipe."
 
 
USAGE="OUTPUT | $PROG \"PROGRAM-NAME [OPTIONS AND ARGUMENTS]\""
 
EXAMPLES="
# List (with details), all the files that include \"downloads\" in their name:
  find /home/ -iname \"*downloads*\" | $PROG \"ls -l\"
 
# Queue all AVI files in current directory in vlc:
  ls *.avi | $PROG vlc
 
# View all time-related icons with eye-of-gnome:
  find /usr/share/icons/gnome/ -iregex \".*[^mul]time.*\" | open-with eog
"
 
function Usage() {
  echo "DESCRIPTION: $DESC" ; echo
  echo "USAGE: $USAGE" ; echo
  echo -n "EXAMPLES: $EXAMPLES"
}
 
# Quick check to see it's being called correctly, if not, print Usage and exit
if [ ${#@} -ne 1 ]
then
	Usage
	exit
fi
 
files=()						# empty array
while read -r					# read from stdin
do
	files+=( "$REPLY" )			# add result of read to array
done
 
# assume $1 is a valid program
$1 "${files[@]}"				# pass arguments to specified program

Motivation

You’re sitting at the command line and have a list of images (in different locations) that you would like to browse. Most image viewers let you iterate over a set of images, but only within the same directory. What would be great is if they accepted input from stdin through a pipe!

$ cat my_list_of_images | my_image_viewer

I didn’t find anything that did that, but using the open-with script, you can do something similar:

$ cat my_list_of_images | open-with my_image_viewer


Browsing a select list of images is actually kind of nice. It’s like a playlist for your image viewer – a viewlist. 🙂 Anyway, I’m sure there’s some problems with this script. Feel free to provide suggestions in the comments. But I certainly don’t want to look at it for a while….

I hate shell scripting

With a passion. It’s not a great surprise… many programmers do. I’m willing to go on record and state that I hate it even more than PERL programming. I rarely do it, and when I decide to try something that seems like it would be simple, it turns out taking forever due mostly to quirks. The rest of this post is a bit about how I went about writing this script, which ended up being mostly given to me by some #bash gurus on IRC. And it’s a bit of a rant.

Although not many GUI programs seem to accept stdin as input, most accept filenames as arguments:

$ eog image1.jpg image2.jpg image3.jpg "/home/steve/image seven.jpg"

So I figured I would just have to convert the list of images into an acceptable format: quoted, absolute filenames, separated by space. Doing this depends entirely on the format the list is currently in, but it’s likely a list of unquoted filenames separated by newlines:

/home/steve/image1.jpg
/home/steve/my images/wow.jpg
/tmp/anotherimage.png

For me, my test list looked like this:

/usr/share/icons/gnome/48x48/stock/generic/stock_timezone.png
/usr/share/icons/gnome/16x16/stock/generic/stock_timezone.png
/usr/share/icons/gnome/16x16/stock/generic/stock_timer.png
/usr/share/icons/gnome/16x16/stock/generic/stock_timer_stopped.png
/usr/share/icons/gnome/16x16/stock/form/stock_form-time-field.png
/usr/share/icons/gnome/24x24/stock/generic/stock_timezone.png
/usr/share/icons/gnome/24x24/stock/generic/stock_timer.png
/usr/share/icons/gnome/24x24/stock/generic/stock_timer_stopped.png
/usr/share/icons/gnome/24x24/stock/form/stock_form-time-field.png

I was looking for icons of clocks or representations of time, and I obtained that list using find:

$ find /usr/share/icons/gnome/ -iregex ".*[^mul]time.*"

So I can’t pipe it into my image viewer, but I can use the output as the command-line arguments if I change the newlines to spaces. find has an option for formatting the output which is perfect:

$ find /usr/share/icons/gnome/ -iregex ".*[^mul]time.*" -printf "'%p' "
'/usr/share/icons/gnome/48x48/stock/generic/stock_timezone.png' '/usr/share/icons/gnome/16x16/stock/generic/stock_timezone.png' '/usr/share/icons/gnome/16x16/stock/generic/stock_timer.png' '/usr/share/icons/gnome/16x16/stock/generic/stock_timer_stopped.png' '/usr/share/icons/gnome/16x16/stock/form/stock_form-time-field.png' '/usr/share/icons/gnome/24x24/stock/generic/stock_timezone.png' '/usr/share/icons/gnome/24x24/stock/generic/stock_timer.png' '/usr/share/icons/gnome/24x24/stock/generic/stock_timer_stopped.png' '/usr/share/icons/gnome/24x24/stock/form/stock_form-time-field.png'

That’s great for me, because I’m using find. But not very useful if I’m not, so I wanted something more generic. Of course, there are many ways to do this, and again, I’m by no means a command-line guru. But here’s how I started:

$ find /usr/share/icons/gnome/ -iregex ".*[^mul]time.*" | sed -e 's/^/"/' | sed -e :a -e '$!N;s/\n/" /; ta' | tr '\n' '"'

This wrapped the lines in double-quotes and join them together with a space in between. The find command is the same as before, minus the formatting because that’s what I was trying to find an alternative to. The output of find is piped into sed, which adds a " at the beginning of each line. This output is then sent to another sed which replaces the newline character at the end of each line with a closing double-quote and a space, joining all lines into a single line. Finally, that output is piped into tr which replaces the one remaining newline with a final double-quote.

If the files don’t include spaces or other troublesome characters (mine didn’t), then you could get away with simply changing the newlines into spaces. But again, I wanted something generic.

$ find /usr/share/icons/gnome/ -iregex ".*[^mul]time.*" | tr '\n' ' '

Anyway, now that we have something that creates the desired input, we just have to wrap it in back-ticks and put the whole mess as the argument to the image viewer! In my case, I’m using eye-of-gnome (or eog).

$ eog `find /usr/share/icons/gnome/ -iregex ".*[^mul]time.*" | sed -e 's/^/"/' | sed -e :a -e '$!N;s/\n/" /; ta' | tr '\n' '"'`

Wait a second. That doesn’t actually work. Why not? Running the backtick contents by itself seemed to produce the correct output. Copying this output verbatim as arguments to eog worked as expected. The problem was that when the quoted arguments were manually entered on the command-line, bash (silently) escapes the filenames, removing the quotes, adding backslashes before space,s etc. But when the pipeline is wrapped in backticks, the result is not escaped, and eog complains about not being able to find files that begin with quotes. Fine. I was not about to write a bash “escape” script – something like that should already exist, right? And it should be built in to bash! Perhaps it’s even called “escape“. Well, if there exists such a built-in, I couldn’t find it. But I had to be going about this the wrong way. Heading over to IRC, it was kind of difficult to explain the problem, but ferret eventually gave me the meat of the script above:

files=(); while read -r; do files+=( "$REPLY" ); done < <(find /usr/share/icons/gnome/ -iregex ".*[^mul]time.*"); eog "${files[@]}"

It worked! I thanked him and began studying it. There were still a couple things I didn’t understand:

  • Why two angle brackets with a space between them? I understand the first one is probably redirecting input, but I don’t understand that one next to the opening parenthesis.
    Answer: The <(command) actually puts command‘s output in a temporary file and produces that filename. So <(command) becomes tempfile. (Thanks, kojiro.)
  • If I open some video or audio files in totem using open-with, there’s an odd delay. Using vlc doesn’t produce a delay, however.

And to think this was originally going to be a micro-blog post in Twitter and identi.ca. Wow. It’s safe to say I still hate shell scripting. 🙂

What I did today – Time Tracking with hamster-applet

In GNOMEe 2.24, hamster-applet will be included by default. When I use it, I love it. I should use it more often.

I should note that “laundry” is actually inclusive to other room-cleaning activities. 🙂

Jump-to-Playing Rhythmbox Plugin TODO

I haven’t looked at the plugin for a while, but I’ve been meaning to reproduce my “todo” list for it that I wrote on the rb-dev list a while back.

  • the gconf keys in gconf-editor say they have no schema. The main plugins’ keys have a schema and don’t give a warning. Definitely not serious, though.
  • it currently adds/removes the ui string when the options are toggled in the configure dialog. I have a feeling it might be better to only add/remove them in the activation/deactivation, and just hide/show here. Maybe faster?
  • it currently hides the browser button in small display mode. That has nothing to do with the jump-to-playing button. That should be in core, if it was decided that was the desired behaviour.
  • to hide the buttons in the small display, it checks the value at activation, and it connects to the View menu’s toggleButton’s “toggled” signal. So whenever it’s toggled, the gconf value for the small display mode is checked, but I think there’s a delay sometimes. Pushing Ctrl D quickly a few times may result in incorrect UI presented. I remember deciding that this is due to a delay set on the gconf callback to overcome some other bug….
  • in the context menus, ‘Properties’ should really be the last item. They need a placeholder put in the UI core. UPDATE: I’ve filed a bug with a patch attached here. Jump-to-Playing and other plugins will need to be updated when the patch is applied. I’ve just done it on my local copy w/Rhythmbox HEAD…. Looks like this:
    Before (red) and After (green) applying the patch and using an updated plugin

    Before (red) and After (green) applying the patch and using an updated plugin

  • Show the context menu item in PodcastView and PlaylistView popups, as well. I’ve added this in my local copy, already. Maybe I should just bump the version and release….

Upgrading

Ubuntu Hardy Heron is out! [ Features | Download ]

If I disappear for a while, something probably didn’t go smoothly. I almost expect a problem with my wireless drivers… :/

*click*

Update: As I anticipated, my desktop had (and is still having) some troubles with the wireless. I’m currently able to connect to the Internet… but barely. I have an RaLink 2500 PCI card. For the previous version of Ubuntu (Gutsy) I was using the CVS version of this driver, because the one included in Gutsy was broken. This driver is being combined with a few other drivers and being rewritten as a unified driver, the rt2x00 driver. The good news is that this unified driver have been included in the kernel and they’re actively developed. The bad news is that (for me) they barely function. I tried using the windows driver through ndiswrapper, but that didn’t seem to work. I tried compiling the old CVS drivers again, and they don’t seem to work any more. So I’m back to the included driver in Hardy that limps along….

On the laptop side of things, everything went peachy… until I decided to try the binary NVIDIA drivers again (to play with 3D things). That was utter fail, and I remembered why I disabled them. But then.. my sound stopped working….? huh?

Temptation to do a fresh install rising.

Update 2: I’m not going to hold my breath on my desktop’s connection, but it seems to be doing better. Also, I solved the sound problem on my laptop. And I set up my tablet. Whoo!

Rhythmbox Plugin: Jump to Playing 0.2

I’ve updated the Jump-to-Playing plugin for Rhythmbox. The latest version is now 0.2, and it’s a large improvement. Many thanks to Dan Mihai Ile for his work on the configure dialog and the gconf functionality! I’ve been really busy recently, and without his efforts, I wouldn’t have gotten around to working on this.

Screenshots

toolbar button, context menu item, about dialog, configure dialog

small display mode.  notice something missing?

Changes Since 0.1

  • Added preferences dialog based on work from Dan Mihai Ile, allowing either the toolbar button or the context menu item to be displayed.
  • Modifed the UI of the preferences dialog (HIG compliance).
  • Made the preferences dialog act immediately (HIG compliance).
  • Toolbar Jump-to-Playing button hides in small display mode.
  • Browser button also hides in small display mode. This should probably be moved into a different plugin, or the core. But I’ve left it here, for now.
  • Included QueuePlaylistView’s context menu in addition to the Browser Source popup.
    Moved UI XML into strings within __init__.py.
  • Added GPL license to files.
  • Updated plugin description.
  • Checks if small display is active on activation.

Download

jump-to-playing-0.2.tar.gz (Update: Newer version is available.)

Installation

  1. Extract the jump-to-playing folder into your ~/.gnome2/rhythmbox/plugins/ directory. Completely replace any previous versions.
  2. (Re)Start Rhythmbox and enable the plugin in Edit : Plugins.

Todo

  • Force “Properties” to bottom of browser context menu (may depend on placeholder being added to the context menu)
  • Add Configure dialog with checkboxes for toolbar and browser context menu, defaulting to toolbar only (both is a little redundant). Currently, both are added automatically.
    [x] Add button to toolbar
    [_]Add link to browser context menu
  • Hide toolbar button in Small Display mode.

The code could definitely be better and there’s still room for features/general improvements. All patches and code-clean-up are welcome! 😉