ulrik@kaizer.se/
log

Kupfer gains Triggers

Right now, in the master branch of Kupfer is a really exciting feature: custom keybindings for any command you can perform in Kupfer; the feature is called Triggers.

What you can do with Triggers is take a command you would normally perform in Kupfer, such as launching an application or opening a document, and bind a global key combination to run this command. As long as Kupfer is running, any application can have the current focus. This resembles the Triggers in Quicksilver very closely.

This is a great use for Composed Commands: the way you use this in Kupfer is that you construct a command as usual, but instead of pressing Return to carry out the command, you press Ctrl+Return to create a composite object, in effect the command in an object. Then use the Add Trigger... action on this command, together with a string for the keybinding, for example <Control><Alt>G. [1]

Especially together with objects that are resolved when the trigger is used, such as Selected Text and Selected File, triggers are already very powerful. Here are some examples of what you can trigger:

Firefox → Launch
Add a keybinding to launch an application (or focus if already running)
Selected Text → Search With → Google
Make a trigger that googles the text selected in the current application. You can do this with any of the search engines you have in Kupfer.
Selected File → Move To → (Downloads Folder)
A trigger to move the currently selected file to a specific folder
Songs → Search Contents
You may even add a trigger to open a specific subcatalog in Kupfer, like Rhythmbox's songs.

There is no preference pane for triggers at the moment, they are configured right in Kupfer itself, where you can list the currently defined triggers by browsing its subcatalog. You can carry out a trigger's command directly to test it, or remove defined triggers.

[1]The interface might change to something more user friendly in the future, for example using a window where the user can simply press the desired keybinding. The master branch was updated after this post's writing to make suggestions for the user, so if the user types F, suggestions of Ctrl+Alt+F, Ctrl+Shift+F etc are made.

Comments to @englabenny on twitter or @kaizer on identi.ca, or use hashtag #kupfer.

Posted Thursday afternoon, December 31st, 2009 Tags: en kupfer
Random reasons Kupfer is awesome

Kupfer is an application that I wrote mostly myself, even though lots of awesome contributors are now coming in to add tons to it; especially testing and more object and application knowledge.

The first features of Kupfer are personal and quite non-random:

[1]Although it might not be obvious if you're not half-swedish.

Now, some random reasons Kupfer is awesome:

It understands challenges in naming items. Kupfer will find the song Außer Dir even if you can only type ausserdir; it will find the Sigur Rós song Suð í eyrum even if you can only type sud! You can both enjoy correctly named icelandic, german, swedish or whatever songs from the music library, and still be able to match them when you type their name. I think many Kupfer users using different languages agree that this is an important thing, seeing the number of accents and other letter decorations used in, for example, Polish and Spanish.

The implementation is general (but has a specialization towards the cases I know about myself and tested myself) and can even handle matching "accent"-less japanese characters to "accented" characters; for example 'ヘ' will match an object with 'ペ' in its name.

I think my approach with Kupfer, going for deep and serious localization, has been very successful. (I write the application in English and localize to Swedish in parallel.) (I am still looking for feedback on behavior with Right-to-left languages.)

Sublevels are explicit. Even though most users probably don't care about sublevels (except in the common case of folders, where the concept is already familiar), Kupfer explicitly marks objects with an arrow to show that they contain more objects, and opens a browse window when you enter into them. Subcatalogs all have the action Search Contents available, which adds to consistency (and provides the mandatory "base case" action for that type of object).

Posted at midnight, December 30th, 2009 Tags: en kupfer
Composed commands

Kupfer version c19 adds a feature called Compose Command.

This is something clever from Quicksilver, that I suspect even many of its avid users don't know about.

What is Compose Command? It is a sort of higher-order use of Kupfer, let me explain: A normal command that you carry out in Kupfer is normally an object and an action, for example the combination (Documents, Open):

Now imagine we want this command to be an object of itself. In Kupfer, we press Control+Return to invoke Compose Command.

There, we created an object from the command -- and we are offered the possibility to run it right away. Which of course, you say, adds nothing. What can come out of this? We can now perform actions with the very command object itself:

The Kupfer action Run after Delay... understands a time interval that you can specify like "10 sec", "1 h 15 min", "6 m" etc.

You can create a composed command like this from any Object and an Action, or any Object, an Action and an Indirect (Secondary) Object.

One useful example of what you can do is to create a quick reminder, by telling Kupfer to show text very large over the screen in just a while:

Please stand by six minutes... Aand we have a message across the screen:

(Goes away with the tap of a key)

This may not seem much, but it is a nice display of what can be done with Kupfer right now, and what can be implemented in the future. And I think people can come up with very useful things they can do with delayed commands. Perhaps you can come up with something completely new in the domain of higher-order use of Kupfer?

It is also just one of the new features of Kupfer, I should try to blog more about this in the future.

Comments to @englabenny on twitter or @kaizer on identi.ca!

Posted at midnight, December 18th, 2009 Tags: en kupfer

Sub-blogs:

View weblog archive