Übersicht - display widgets on your desktop

In this topic Clipboard History switcher I shared a video of an issue.
@ccstone asked me then in a private message about how I displayed the widgets on the desktop.
I use a program called Übersicht (http://tracesof.net/uebersicht/). Previously I used Geektool (https://www.tynsoe.org/v2/geektool/), but I prefer the styling ability of Übersicht. Seems this has also come to Geektool, but I have not investigated it.

Keyboard Maestro is also used. When I start a new order at my work, a KM macro collects some information to variables about the order and customer. These are also written to a text-file, which Übersicht displays on the desktop.

Here is a picture of my widgets with an explanation about what they do.


Oh, you’ve ruined my morning! :grinning:


Please write back if you want a copy of some of the widgets.

Jimmy, thanks for sharing. That's all very interesting.

I'm not disparaging this idea or approach, but it is a great example of how each of us can value different things.
I'm sure you need and value the info shown, but for me, I almost never see my desktop -- it is covered by the windows of apps I have open and actively using. I also tend to manage by exception -- meaning that I don't need to check under the hood unless there is a problem (or a potential problem), and then I want an alert telling me about it. So, most of the time I don't care about CPU, memory, Internet speed, etc. I know others that want the data constantly in their face -- and that's fine. :wink:

One thought I did have is to put this kind of stuff on a separate desktop/space where I have nothing else. Then, when I want to check the status, switch to that desktop.

So, since you have used this system for a while, may I ask you:

  1. Can you specify the desktop/space to put the widgets on?
  2. Are they display-only, or can they generate alerts and have buttons to take some action?

Thanks again.


I can see what you mean by seeking out the information when need is also a good approach.
Personally I like to keep up with what is happening on my computer. Mostly because at my work I am using the Adobe Creative Cloud, Font management software and an old version of Microsoft Office. And sometimes the startup some background process, which makes my fans spin-up. Now I can quickly see what is going on.
I am using an extra screen on my MacBook Pro, so one screen is normally not having something cover the desktop.

I had the idea from a macro @mattgemmell made (https://mattgemmell.com/keyboard-maestro-macros/) to make a Heads Up Display macro, which gathered this info and then displayed it. But settled with this setup.

As for you questions:

  1. You can not specify a desktop/space. But instead which screens. This is individually for each widget.
  2. In the preferences you can set an interaction modifier, so somehow you can interact. Brett Terpstra has made a widget called Inverter (http://brettterpstra.com/projects/ubersicht-widgets/), which uses this technique.

I've only played with it for 24 hours but I've installed it on both my working machines, one with a second monitor that can now close Activity Monitor (I too deal with Adobe Creative Cloud and a few other fan-churning daemons).

But on the 13-inch laptop, I can get the time, date and battery icons off the menu bar, which pushed a lot of good stuff behind the menu bar of most applications.

And I've found that since it's merely a way to display HTML (many of the widgets use CoffeeScript to collect data for the HTML) on the desktop, you can put anything up there (like a To-Do list, a calendar (which I missed) and even the weather forecast).

Oh, and on the 13-incher (whose desktop is obscured), I just swiped to a blank Space to see what I need.

I've already made a Keyboard Maestro macro to make it easy to update my To-Do list. And now I get to think about more uses for these handy tools.

1 Like

Please share a screenshot, when you are satisfied with your setup.

Hey Guys,

There's a Mission Control keyboard shortcut to show the Desktop that moves ALL windows out of the way.

I have mine set to F12, so it's very easy and quick to reach.


1 Like

This has been changing daily but it's starting to settle down. And, believe it or not, I've written a Keyboard Maestro macro for it.

There are five widgets active, all derived from those found in the Widgets Gallery. On the bottom line is the time and a line calendar. On the left side is battery status, the top CPU widget (reformatted) and my reminders widget (based on a simple to-do list widget).

This arrangement works on both my secondary monitor and on a laptop screen without modification. The screen shot above is from the secondary monitor (hence no menu bar).

Now about that Keyboard Maestro macro. It provides a front end for my reminders:


The widget recognizes four types of items: Open (to do), Complete (done), Payments (bills) and Upcoming (events to keep in mind). They are identified by a code on the first line that helps sort the random lines in the file into categories and style them so what you see on the screen looks orderly.

It's easy enough to do this in a text file (with a Keyboard Maestro macro to open the file) and that's what I've been doing. But then I thought why not use Prompt for User Input to make it a breeze.

The popup in the Keyboard Maestro macro includes options to add an Open, Payment or Upcoming event, mark an event Complete or Delete an item. All done with Keyboard Maestro actions.

(Oh, and thanks, @ccstone, for the Mission Control reminder. I do that by accident now and then :grin: but I think I'll start doing it intentionally now on the laptop to check the time.)


Today's change was a rethinking of the user interface for the Uebersicht Reminders Helper:


I found that since my hands were already on the keyboard, it was more convenient to type the description in first and then mouse around with the popup and button.

But I also wrapped it in an Until action so it repeatedly shows the prompt until I hit Cancel. That lets me do a bunch of things at once (rather than invoke the macro a bunch of times).

And because I have the reminders on two systems (and two screens) I added some Keyboard Maestro actions to see if the other volume is mounted and copy the text file over if the Backup option has been enabled when I Cancel. By the time I turn around to check the other system, Uebersicht has updated the display.

I really didn't think I'd prefer this over just editing the text file with BBEdit, but it's actually more efficient. And it's proving more efficient than the little notepad and pen I keep at my side, too.

Love that app too! Is there a way to get Variables from Keyboard Maestro displayed?

It can display anything that can be returned by a shell command line, so, for example, assuming a KM variable named activeLang, you could use something like the following as a command in Ubersicht:

osascript -l JavaScript -e "Application('Keyboard Maestro Engine').getvariable('activeLang')"

Hey thanks! Just to make sure, how would the complete .coffee file look like?

I tried this simple structure:

command = "osascript -l JavaScript -e "Application('Keyboard Maestro Engine').getvariable('album')""

refreshFrequency = 5000 // ms

render = ({ output }) => (

className = `
    left: 20px
    top: 20px
    color: #fff

But it gives me only this error back:

There's an immediate problem in the first line – you have got nested double quotes, which won't be parseable without \" escaping \" of the inner quotes.

It should be fine if you prefix the two inner double quotes with a backslash.

  history: false

command: "osascript -l JavaScript -e \"Application('Keyboard Maestro Engine').getvariable('album')\""
refreshFrequency: 5000

hey thanks, will try that out, found another solution, but maybe not that smooth:

command: "KM_Variable.sh"

and a .sh file next to it with the osascript command

1 Like

In my use case a KM Macro writes a text-file in the widget folder, and then this gets displayed.

This is the code in the widget. The refresh interval is large, since the KM macro ends with forcing Übersicht to refresh the widget.

command: "cat order-data.widget/order-data.txt"

refreshFrequency: 100000000

render: (output) ->
    "<pre><div class='orderdata'>#{output}</div></pre>"

style: """
    left: 55px
    top: 450px
    color: #fff
    width: 430px
    height: 200px
    font-family: Menlo

    display: block
    background: rgba(#000, 0.2)
    border-radius: 0px
    font-size: 18px
    font-weight: 300
    padding: 4px 6px 4px 6px
      content: 'Order data'
      position: absolute
      left: 10px
      top: 0px
      font-size: 12px
      font-weight: 700
      font-family: -apple-system
1 Like

Hey I use a similiar one, to update a textfile that get displayed with Übersicht! How do you force Übersicht in the KM Macro to update? Right now I have periodical time trigger in KM and a refresh intervall in Übersicht, so it takes a bit too long to get displayed

This is the code I use to refresh a specific widget.

tell application "Übersicht" to refresh widget id "order-data-widget-index-coffee"
1 Like

that works! thank you!