# NEWS for kupfer

## kupfer v329 (2025-12-01)

- Features:

  - Fix and improve learning algorithm - adjust bonus values.

  - Leaves in browser are always scored and sorted without search - after open window last/most used items are one the top of list. This behaviour can be disabled in preferences.

- Plugins:

  - Updated:

    - Deepdirectories: fix disappearing from top sources.

    - Windows: plugin is disabled on Wayland.

    - libvirt: handle updates without background thread.

    - xfce_session: fix loading favorites from Whisker menu.

    - devhelp: fix arguments when calling devhelp command - correct handle spaces.

- Fix

  - Fix filtering applications when desktop filter is enabled.

  - Support new Yelp desktop file name.

  - Fix handling multiple screens - potential problems when switching to window on other workspace, correct handle screen used to spawn application

  - Skip activating application without app_id.

  - Refresh panels on show browser - prevent old/unavailable items to show.

  - Fix potential problems when Kupfer is run on Wayland - handle missing wnck support.

  - Fix learn register - do not create empty mmenomics, simplify prune.

  - Add missing WM_WINDOW_ROLE for windows and dialog, set program name. Change default type hint for browser window from utility to normal. Close: #190.

- Dev:

  - defaultdict is safe to pickle.

## kupfer v328 (2025-04-22)

- Other changes:

  - Use modern Ayatana Indicators; require gir1.2-ayatanaappindicator3-0.1; by @N0rbert

  - Gui: add dark border around main window; this improve visibility Kufper window on bright background

- Plugins:

  - Updated:

    - Audacious: start app on action when not running

    - Textutils: ask user for option in "join lines" actions.

    - Trash: ask user for confirmaton when moving files to trash

- Fix

  - Fix toggle appindicator icon (not show after hide)

  - Fix invalid handle KUPFER_WINDOW_TYPE_HINT setting

  - Fix recognize urls with % characters

  - Fix misleading message when starting Kupfer without install.

  - Do no store content of Directory and Files sources in disc cache; refres on startup.

  - Prevent confirm dialog to show behind main Kupfer window.

- Dev:

  - Fix pyxdg dependency in pyproject

  - Prefer os.scandir over listdir

  - Add finish_callback to launch.spawn_async/spawn_async_raise

  - Plugin can get some input from user by configurable dialog

  - Disable typequard protocols checking; add warn about using kupfer.py

  - Fix some errors reported by linters; format code

  - Replace depricated pkgutil.find_loader that will gone in Python3.14.

  - Use argparse for command line arguments.

## kupfer v327 (2024-04-28)

- Fix:

  - Fix random crashes reported on Arch and Python 3.11.8 probably caused by broken support for multi display/monitor support. Close: #176

  - Fix returning to previous leaf in browser (left key action); when leaves come from action result there is not valid parent, so searching for it is waste of time.

  - Fix browser window placement; especially after text box is show/hide.

  - Fix random crashes on startup related probably to too fast application start.

- Plugins:

  - New:

    - recoll: query Recoll full text search system

  - Fixed: - tmux, libvirt - fix names

- Dev:

  - Minor fixes (types)

## kupfer v326 (2024-02-24)

- Fix:

  - Do not lowercase entered search term when passing it to sources that create text leaves. Sources like Shell Commands and Text now get exact text that user entered/select. Close: #175

- Plugins:

  - Updated:

    - clipboard: handle errors on creating file leaves from text when text is not valid file path.

- Dev:

  - Minor changes related to handling / logging errors.

## kupfer v325 (2024-01-21)

- Fix:

  - Fix syntax error that sometimes happen on plugin activation. Close: #173

  - Fix missing translations in websearch and qrcode plugins.

## kupfer v324 (2024-01-07)

- New features:

  - Allow user to choose how trim displayed text - add new options in preferences "Text ellipsization". Close: #98

  - "Actions in first panel" - experimental feature that allow user to run actions by selecting it in first panel and then select target object in next panel. Require enabled "Kupfer Actions" plugin. Close: #77 (maybe).

- Fix:

  - Fix validator for URLs: better support for URLs without FQDN and netloc.

  - Show only first line of multi-line descriptions. Whole description is in tooltip. Close: #116

  - Fix refreshing sources cache on start - sources are force refreshed on plugin enabled and on Kupfer start when cache not contains items. This prevent bizarre behavior when Kupfer is restarted and sources depend on some unavailable files.

  - Fix return to parent leave - try to load all leaves until parent leave is found instead of go to first leave.

- Plugins:

  - New:

    - Kupfer Actions: put actions into first panel.

  - Updated:

    - clipboard: fix broken description for URL and file path; handle errors when text is recognized as file path but is broken.

    - core: leaves with can text and uri representation can be used in "OpenTextUrl" action.

    - ssh_hosts: add text representation in form of ssh://host... so now can be opened i.e. in external applications. Add new action "Send file to..." - send file/directory to remote host.

    - websearch: new action "Search..." - search with default engine; user do not have to select search engine, default can be configured or is take from "user search engines" with DDG as fallback.

- Dev:

  - Fix loading plugin configuration that base on ExtendedSetting. For now no one plugin use it anyway...

  - Minor code cleanup

## kupfer v323 (final, 2023-11-26)

(Changes since v322)

- New features:

  - For grouping leaves (like hosts, contacts) add "copy to clipboard" action for each slot (email, adress, etc). Close: #169

  - After launch some action for leave next time this action get some bonus that make it higher on the list. Also, this action get (smaller) bonus for each same type of leaves.

  - URL-s can be opened with selected application ("Open with..." action)

  - User can configure preferred text editor; list is loaded from application registry.

  - List of terminals is loaded from application registry (applications with "terminal" tag). Some terminals are still preconfigured.

  - In plugins settings user can choose files and directories by appropriate dialog instead of type path manually.

  - Kupfer can more frequent refresh items in background and cache result; this make searching and browsing faster.

  - If more than one action have the same accelerator pressing key navigate between them; previously first action was activated.

  - Hosts and services have additional aliases "service:hostname"; this allow user to fast find items by entering e.g. "sshmyserverhostname".

  - Add text representation to leaves representing songs (rhythmbox and audacious plugins) and leaves representing services; user can i.e. copy it to clipboard or use whenever text is acceptable.

- Fix:

  - Make Kupfer window rounded again. Close: #83

  - After repoen Kupfer window, if current leaf has qf_id (leaf like selected dir, file, etc), update this leaf (research) and show current value. Close: #172

  - Fix error on group merge when source was updated in background.

  - Fix "mark as default" action broken in beta1. Close: #170

  - Add some missing icons (stock_person, stock_mail)

  - Strip whitespaces from url-s when calling "show url"

  - Do not decorate leaves in third panel as there is no way to "enter" to it.

  - If actions have the same name, make it unique by adding plugin name; previously module name was added.

  - Improve detecting URLs, files path, and emails addresses in text.

  - Fix not working "select clipboard text" accelerator.

  - Fix presenting first line from Text leaves: now really show first line.

  - Browser track history of selected leaves and allow return to parent leaf instead of top of list.

  - Make sure that file opened in plugins are closed after load.

- Plugins:

  - New:

    - Aria2: download files be remote aria2 instance.

    - Librewolf: load bookmarks from Librewolf web browser

    - NetworkManager: manage network connections

    - Screenshot: take desktop screenshot using 'scrot' or 'flamegraph'.

    - Show QRCode plugin: generate qrcodes from text.

    - Textutils: various tools that convert, format and generate text content (i.e. generate random strings, convert case, encode base64, format json and xml).

    - Tmux: support tmux session and tmuxp workplaces.

    - Tracker3: full-text search in Tracker 3 application.

    - Vim: recent files opened in vim and quick access to configured VimWikis.

    - Zoxide: load most used directories from zoxide database.

  - Updated:

    - Application:

      - Add additional aliases do application: executable name and original (English) name.

      - New action "Open With...": open file with one of application that support given file type.

      - New action "Launch here": start application in selected folder.

      - User can enable loading additional application aliases. This make possible to select application by application comment, keywords or generic name but may have impact on overall performance.

    - Apt: add new actions: "Search for file in packages..." and "Browse packages.debian.org".

    - Archive manager: user can select 7zip (7z or 7za) to use instead of file-roller.

    - Audacious: use D-Bus for interaction with audacious.

    - Chromium: monitor and load changes in bookmarks.

    - Clipboard: detect URLs and files path in clipboard items and selected text.

    - Dictionary: add support for GoldenDict

    - Favorites: allow user to add to favorite only leaves than can be added.

    - File actions: new action "Edit file content" that open configured text editor

    - Image: detect images files by mime type, not by extension.

    - Libvirt: monitor state of virtual machines; fix icons

    - Rhythmbox: fix errors when no mpris module available.

    - Session gnome, Session lxqt, Session xfce: user must confirm "logout" and "shutdown" actions

    - Session xfce: load favorite applications defined in Whisker Menu.

    - Show Text: bring back "Large Type" action. Close: 91

    - Ssh_hosts:

      > - Fix loading Match rules from ssh config file.

      > - Fix monitoring for configuration changes.

      > - Load and use host name from ssh .config file

      > - Update icons

    - Textfiles:

      - New action "Copy content" (with "C" accelerator): copy content of text file to clipboard

      - "Write To" action allow user to enter destination file name.

      - Fix selecting destination directory

      - Fix encoding on write files

    - Thunar: add "Open Trash" action

    - URL Actions: check response status code (accept only 2xx); if there is not exact filename in response or url, try to guess filename with extension by url and content type.

    - Web Search: allow user to define custom search engines by provide appropriate URLs.

    - Volumes:

      - New "Mount" action

      - Separate "Eject" and "Unmount" action.

    - Wikipedia:

      - User can configure more than one language for Wikipedia search; action "Search in Wikipedia" allow user to select Wikipedia language.

      - Add "S" accelerator for "Search in Wikipedia" action.

    - Windows: better detection of Kupfer windows.

    - some plugins now report error (import error) when required command or application is missing in system.

- Dev: + BREAKING: refactor & modernize code; Python 3.9+ is now required. + BREAKING: reorganise and rename some modules, functions. Split long

  System Message: ERROR/3 (VersionHistory.rst, line 344)

  Unexpected indentation.

  > files into smaller.

  System Message: WARNING/2 (VersionHistory.rst, line 345)

  Block quote ends without a blank line; unexpected unindent.

  - BREAKING: there is no backward compatibility with old/external plugins.

  - Simplify, optimize code; remove legacy and duplicated code; drop unnecessary list creation (use iterators whenever possible); remove redundant caching. This improve performance and memory usage.

  - Add types to most core objects.

  - When run in "debug" mode, when available, use typeguard for checking types. This may slowdown Kupfer.

  - Add pyproject.toml file.

  - Refactor ui: remove deprecated components, fix layout.

  - Upgrade WAF v 2.0.25; fix & update wscript files.

  - Add icons.get_gicon_from_file: quick load gicon from file.

  - Add kupfer.support.validators with some useful functions (validate URLs, etc).

  - Add some debugging tools to debug.py (ic, etc).

  - FileLeaf accept Path object.

  - FilesystemWatchMixin provide function to monitor single files.

  - Add some caching for icons (esp. ComposedIcons)

  - Add simpler caches in kupfer.support.datatools and some statistics to existing. Add get_or_insert method to LruCache.

  - Plugin preferences may use list of string (type list) and helpers (select directory, file). For int-type preferences can be set min and max value. See zoxide, firefox plugins for example use.

  - Dialog like preferences are destroyed on close.

  - Action may reload leaves list in browser as result of execute. See Volumes plugin and "Mount" action.

  - Refresh action do not duplicate sources in browser.

  - Sources can define minimal interval between background load data (source_scan_interval). mark_as_default method have new parameter postpone (default False); when true, mark source to update in next rescan campaign but not clear cache.

  - Purge mnemonics remove first oldest entries.

  - Plugins can register "favorite" items. See Session XFCE plugin.

  - AsyncFileResult wait limited time for file result.

  - Add some tests.

  - Add new dbus method - FindObject.

  - Cache KupferObject repr value

  - Colors in console output.

- Update translation: pl

## kupfer v323-rc

(not released)

- Fix:

  - After repoen Kupfer window, if current leaf has qf_id (leaf like selected dir, file, etc), update this leaf (research) and show current value. Close: #172

  - Fix error on group merge when source was updated in background.

- Plugins:

  - Updated:

    - ssh_hosts: fix loading Match rules from ssh config file.

- Dev:

  - Fix types.

  - Add new dbus method - FindObject.

## kupfer v323-beta3

- Fix:

  - Fix detecting ssh configuration changes in ssh_hosts plugin

- Plugins:

  - Updated:

    - applications: user can enable loading additional application aliases. This make possible to select application by application comment, keywords or generic name but may have impact on overall performance.

- Dev:

  - Simplify URL validators

## kupfer v323-beta2

- New features:

  - For grouping leaves (like hosts, contacts) add "copy to clipboard" action for each slot (email, adress, etc). Close: #169

  - After launch some action for leave next time this action get some bonus that make it higher on the list. Also this action get (smaller) bonus for each same type of leaves.

  - URL-s can be opened with selected application ("Open with..." action)

- Fix:

  - Fix "mark as default" action broken in beta1. Close: #170

  - Add some missing icons (stock_person, stock_mail)

  - Strip whitespaces from url-s when calling "show url"

  - Do not decorate leaves in third panel as there is no way to "enter" to it.

- Plugins:

  - New:

    - textutils: various tools that convert, format and generate text content (i.e. generate random strings, convert case, encode base64, format json and xml).

    - librewolf: load bookmarks from Librewolf web browser

  - Updated:

    - ssh_hosts: load and use host name from ssh .config file; update icons

    - libvirt: fix icons

    - some plugins now report error (import error) when required command or application is missing in system.

- Dev:

  > - Simplify caching icons/gicons

  > - Cache KupferObject repr value

  > - Fix types

  > - Colors in console output.

## kupfer v323-beta1

Python upgrade release: something may be broken.

- New features:

  - User can configure preferred text editor; list is loaded from application registry.

  - List of terminals is loaded from application registry (applications with "terminal" tag). Some terminal are still preconfigured.

  - In plugins settings user can choose files and directories by appropriate dialog instead of type path manually.

  - Kupfer can more frequent refresh items in background and cache result; this make searching and browsing faster.

  - Make Kupfer window rounded again.

  - If more than one action have the same accelerator pressing key navigate between them; previously first action was activated.

  - Hosts and services have additional aliases "service:hostname"; this allow user to fast find items by entering e.g. "sshmyserverhostname".

  - Leaves representing songs (rhythmbox and audacious plugins) and leaves representing services have text representation, so user can i.e. copy it to clipboard or use whenever text is acceptable.

- Fix:

  - If actions have the same name, make it unique by adding plugin name; previously module name was added.

  - Improve detecting URLs, files path, and emails addresses in text.

  - Fix not working "select clipboard text" accelerator.

  - Fix presenting first line from Text leaves: now really show first line.

  - Browser track history of selected leaves and allow return to parent leaf instead of top of list.

  - Make sure that file opened in plugins are closed after load.

- Plugins:

  - New:

    - NetworkManager: manage network connections

    - Tmux: support tmux session and tmuxp workplaces.

    - Zoxide: load most used directories from zoxide database.

    - Vim: recent files opened in vim and quick access to configured VimWikis.

    - Tracker3: full-text search in Tracker 3 application.

    - Show QRCode plugin: generate qrcodes from text.

    - Aria2: download files be remote aria2 instance.

    - Screenshot: take desktop screenshot using 'scrot' or 'flamegraph'.

  - Updated:

    - Apt: add new actions: "Search for file in packages..." and "Browse packages.debian.org".

    - Application:

      - Add additional aliases do application: executable name and original (English) name.

      - New action "Open With...": open file with one of application that support given file type.

      - New action "Launch here": start application in selected folder.

    - Web Search: allow user to define custom search engines by provide appropriate URLs.

    - Audacious: use D-Bus for interaction with audacious.

    - Wikipedia:

      - User can configure more than one language for Wikipedia search; action "Search in Wikipedia" allow user to select Wikipedia language.

      - Add "S" accelerator for "Search in Wikipedia" action.

    - File actions: new action "Edit file content" that open configured text editor

    - Volumes:

      - New "Mount" action

      - Separate "Eject" and "Unmount" action.

    - Textfiles:

      - new action "Copy content" (with "C" accelerator): copy content of text file to clipboard

      - "Write To" action allow user to enter destination file name.

      - Fix selecting destination directory

      - Fix encoding on write files

    - Show Text: bring back "Large Type" action.

    - Chromium: monitor and load changes in bookmarks.

    - Dictionary: add support for GoldenDict

    - libvirt: monitor state of virtual machines

    - Archive manager: user can select 7zip (7z or 7za) to use instead of file-roller.

    - Session gnome, Session lxqt, Session xfce: user must confirm "logout" and "shutdown" actions

    - Session xfce: load favorite applications defined in Whisker Menu.

    - Image: detect images files by mime type, not by extension.

    - Rhythmbox: fix errors when no mpris module available.

    - SSH hosts: fix broken monitoring for configuration changes.

    - Windows: better detection of Kupfer windows.

    - Clipboard: detect URLs and files path in clipboard items and selected text.

    - Favorites: allow user to add to favorite only leaves than can be added.

    - Thunar: add "Open Trash" action

    - URL Actions: check response status code (accept only 2xx); if there is not exact filename in response or url, try to guess filename with extension by url and content type.

- Dev:

  - BREAKING: refactor & modernize code; Python 3.9+ is now required.

  - BREAKING: reorganise and rename some modules, functions. Split long files into smaller.

  - BREAKING: there is no backward compatibility with old/external plugins.

  - Simplify, optimize code; remove legacy and duplicated code; drop unnecessary list creation (use iterators whenever possible); remove redundant caching. This improve performance and memory usage.

  - Add types to most core objects.

  - Add pyproject.toml file.

  - Refactor ui: remove deprecated components, fix layout.

  - Upgrade WAF v 2.0.25; fix & update wscript files.

  - Add icons.get_gicon_from_file: quick load gicon from file.

  - Add kupfer.support.validators with some useful functions; use it in various places.

  - Add some debugging tools to debug.py (ic, etc).

  - FileLeaf accept Path object.

  - FilesystemWatchMixin provide function to monitor single files.

  - Add some caching for icons (esp. ComposedIcons)

  - Add simpler caches in kupfer.support.datatools and some statistics to existing. Add get_or_insert method to LruCache.

  - Plugin preferences may use list of string (type list) and helpers (select directory, file). For int-type preferences can be set min and max value. See zoxide, firefox plugins for example use.

  - Dialog like preferences are destroyed on close.

  - Action may reload leaves list in browser as result of execute. See Volumes plugin and "Mount" action.

  - Refresh action do not duplicate sources in browser.

  - Sources can define minimal interval between background load data (source_scan_interval). mark_as_default method have new parameter postpone (default False); when true, mark source to update in next rescan campaign but not clear cache.

  - Purge mnemonics remove first oldest entries.

  - Plugins can register "favorite" items. See Session XFCE plugin.

  - AsyncFileResult wait limited time for file result.

  - Add some tests.

## kupfer v322

- Update translation: pl

- Plugins:

  - Add support mate-dictionary in dictionary plugin by Igor Santos

  - Fix Firefox and Thunderbird database connection (closes: #153)

  - Add support for file://<local-hostname>/ URLs

  - Add Firefox tags plugin

  - Fix Thunderbird plugin - support new database schema

  - Fix Thunderbird plugin - support contact without proper name or other fields (closes: #164)

  - Add libvirt plugin - manage libvirt domains

  - Add zeal plugin - quick search in zeal docsets

  - Fix window plugin - don't break on Wayland, fix switching workspace

  - Fix segfault on Wayland and newer version of libwnck (closes: #165)

- Dev:

  - Don't embed timestamp in gzip header by kpcyrd

  - remove some redundant list creation

  - add missing file names in POTFILES.in

## kupfer v321

- Update translations: es, it, pl

- Plugins:

  - Add WhatsApp Web by leoen25demayo

  - Add Instapaper by Peter Stuifzand

  - Add Pinboard by Peter Stuifzand

  - Add Brotab by Peter Stuifzand

  - Fix loading data error in OpenSearchSource (closes: #142)

  - Add chromium plugin (port old plugin to Py3) by emareg

  - In thunderbird add support for addressbook in sqlite format

  - In XFCE Session allow configure lock screen command (closes: #146)

- Dev:

  - Fix building distributing tar file (closes: #147)

## kupfer v320

- Update translations: es, pl

- Fix detecting running gui application, selecting active window and crashes when application was closed (closes #124, #130)

- Allow serialize UrlLeaf ans save it as actions (closes #126)

- Plugins:

  - In Firefox Keywords provide quick search using '?keyword query'

  - In Documents option for disable checking is file exist before add to list that solve problems when files are in slow/inaccesible locations

  - Restore Clawsmail plugin

  - Update VirtualBox plugin to work with last version

  - Add deepdirectories plugin

  - Restore websearch plugin (closes #127)

  - In Firefox fix openning locked database; fix loading profiles, allow user to select non-default profile by name of path (closes #131)

  - Add LXQT session suport

- Dev:

  - Update WAF version; use itstool instead of xml2po (closes #125)

## kupfer v319

- Fix Get Parent Folder to always return a FileLeaf (not a subclass)

- Plugins:

  - In Rhythmbox, always use song uris for enqueueing tracks (fixes an issue with legacy encoded file paths).

  - In Rhythmbox, improve error reporting on errors in Get File.

  - Add Prefer Dark Theme that allows you to flip this GTK setting just for Kupfer

## kupfer v318

- Refactor some of the UI so that it uses composition instead of inheritance for Gtk widgets. No functional changes intended (except given below).

- The result list for the third pane now sticks to the right side.

- Plugins:

  - In Rhythmbox, keep the cache even if the player is not running (#75).

  - In Rhythmbox, fix a bug where songs would sometimes be skipped in the Songs catalog.

  - In Media Player Control, add item Pause All

## kupfer v317

- When an input method's preedit is active, backspace, return, arrows and other keys are now reserved for the input method (ibus-mozc was tested).

- All exceptions from content decorators from plugins are now caught and logged (#73)

- Fix remembering “Make (Action) Default for (Object)” when the object is a text or a shell command.

- Change so that kupfer only reads from stdin when called with no arguments and when not started from a desktop file. This should fix issues with starting from autostart or menus in some environments. (#72)

- Fix a crash when the Show Text window is closed. (#71)

- (API) Trying to install a plugin setting key with a reserved name now raises an exception.

- Plugins:

  - In Recent Documents, fix an exception with filenames in unknown encoding

  - In Tracker, fix an exception with malformed .savedSearch files.

## kupfer v316

- Bundle an icon used for windows and workspaces. Based on an icon in Adwaita.

- Add two more default terminal alternatives, exo-open and x-terminal-emulator.

- Add a few more alternatives in the drop down for large icon size

- Plugins

  - In Rhythmbox, look for more album art filenames in the same directory

  - In Firefox Keywords, allow copying them to clipboard (Ctrl + C)

  - In Text Files, fix Write To and Append To

  - In Tracker support a location restriction for .savedSearch files.

## kupfer v315

- Fix an issue with launching X applications in wayland (#65)

- Fix an exception on text input “file://”

- Plugins

  - In Volumes, show a notification on successful unmounts (#64)

  - In Documents you can now opt out applications of having their recent documents listed inside.

  - In Rhythmbox, use less memory for storing the library cache

  - In Rhythmbox, sort albums of an artist primarily by year, then title.

  - In Shell Commands, fix the icon name of a command

## kupfer v314

- Replaced file action Reveal (file manager plugins do this better) with Get Parent Folder which has the default accelerator P and thus is very handy for navigation.

- Fix so that right arrow can enter directories even in text mode

- Allow Action Accelerators to use more than just A-Z keys

- Misc fixes to start wayland compatibility. All uses of Wnck now gracefully disable when not applicable.

- Wnck is now technically optional, still recommended for best experience in X.

- Tweak arrangement of items in the first page of the preferences window, and add a few more icon size alternatives.

- Tweak the multiple objects icon to look at bit better

- Recognize pasted file:// uris as files

- Plugins

  - New plugin for file manager Nemo

  - Fix Rhythmbox to not clear the queue when playing a single song

  - Fix Rhythmbox to handle missing files gracefully

  - Fix Rhythmbox, Audacious to not clear cached library/playlist when the respective program exits

## kupfer v313

- Action Accelerators: every action can have a configurable accelerator key that allows activating it directly.

- Changed some default shortcuts:

  - Select ‘Selected Text’ now uses Ctrl + G

  - Switch to 1st Pane now has no binding by default

- Fix monitor placement in Unity (#45)

- The preferences window now loads and shows current icon size

- The configuration file is now written in sorted order.

- Fix a minor visual issue using some themes (padding under match text)

- The set keybinding window now has a button to clear the current binding

- The result list now has a minimum size depending on the small icon size, so it sizes better for hidpi

- Plugins

  - Handle errors better in Tracker and make Get Tracker Results... fetch the results asynchronously.

  - Fix Dismiss action in Getting Things GNOME plugin. Thanks @khurshid-alam for the patch!

  - Another Create Task action was added to GTG (an action on the app itself).

  - Audacious now refreshes when the program starts

  - Attach in Email To in Thunderbird is now not allowed on directories

  - Notes now has (Note) → Append → (Text) which is a reversal of an existing action

  - Append To Note now works for kzrnote as well

## kupfer v312

There are some lingering open bugs for desktop environments that are not my main desktop. Kupfer only becomes what everyone puts in, so if you can help fixing bugs related to your environment, please come to our github page.

- Add several new possible accelerator keys in the main kupfer interface:

  - Select Pane 1, 2, 3

  - Select Clipboard Text, Select Clipboard File

  - Configure them in the keyboard tab in preferences

- Keybinder which is optional is now also treated as such by configure

- (API) Minor bugfix so that async Tasks don't need to set a name

- Plugins:

  - Handle errors better in the Trash plugin

  - Fix the way Rhythmbox starts playback of multiple songs

  - Add action Get File on Rhythmbox songs

## kupfer v311

- Work even if Keybinder is not installed. Also added environment var if you need to disable it, even when it is installed.

- (API) Actions can now post sources as “late results”. (Get Notes Search Results... now uses this.)

- (API) Add ShowHide, ShowHideOnDisplay to D-Bus interface.

- Plugins

  - In Notes, retry opening notes for slow activation in Gnote/Tomboy

  - Fix task sort order in Getting Things GNOME

  - Rhythmbox and Notes refresh more often (when their programs restart)

## kupfer v310

- Speed up ranking objects a bit when the catalog is large

- Show a nicer message when no action matches the search

- Using AppIndicator is now an option (and optional dependency)

- Plugins:

  - Add Firefox Keywords to use configured keywords as search engines

  - In Applications show more apps in Open With...

  - In Applications add new action Reset Associations

  - Reintroduce the Rhythmbox plugin, which allows searching the library, playing and enqueuing songs. General Play/Pause/Prev/Next is in the Media Player Control plugin already.

  - Reintroduce the Getting things GNOME plugin.

  - Reintroduce the Devhelp plugin.

- (API) Allow Sources and TextSources to customize their no match and waiting for search text.

- (API) Allow Actions to use both the catalog and an extra source for the indirect object

## kupfer v309

- Change Kupfer's D-Bus name and interface and object path. The old names are still active, but the migration period will be very short because we are in a rapid change phase. New names use the domain io.github.kupferlauncher.

- Change the no match icon to use transparency instead of ugly pixelation

- Change the default text to simply be Type to search, which is shorter and simpler.

- Folding of ß has been restored, so that a search for ss will match it.

- Plugins:

  - In Notes, some actions are now asynchronous and/or have better error reporting.

  - In Notes, update for kzrnote 0.2

  - Enable Quicksilver Icons by default

## kupfer v308.2

- Fix showing the result list in KWin (#47) with a specific workaround

- Plugins:

  - Fix Shell Commands so that they inherit the parent environment

  - Remove GNOME Session Management from the set enabled by default

## kupfer v308.1

- Fix widget style/space issue that was especially apparent in the GTK theme Adapta.

## kupfer v308

Be sure to check out the settings in the Applications plugin in this release. The web site now also shows a language selection for the user’s guide, so that the translations are readily available.

- Fix a slight wobble in the result list’s position by making sure the description label stays the same size

- Fix how the star and arrow at the right side of the result list line up

- Plugin API: Add methods get_gfile and is_content_type to FileLeaf

- Prerender and install fixed icon sizes

- Plugins:

  - In Applications change how it filters applications based on desktop type. The new default desktop type is blank, and this should pick up the right desktop environment automatically. Make the Use Desktop Filter toggle actually work.

  - Speed up recent documents slightly by caching an intermediate result

  - In Documents also recognize more file extensions when sorting libreoffice documents to the right app.

  - Remove action Send in Email To from Default Email Client, since it is unlikely to work for the default mailto: URL handler.

  - Rename the remaining action Compose Email → Compose Email To in default mail, for consistency.

## kupfer v307

Released Wednesday, 15 feb 2017

- Fix a bug with disambiguation of action names

- Stop merging contacts by full name equality

- Accept dropped text and files on Kupfer’s window

- Fix API to not ask for content-decoration of a leaf with existing content

- Plugins

  - Reintroduce Pidgin

  - Reintroduce Shorten Links

  - In Thunderbird, rename compose email actions to differentiate them, Compose Email To, Compose Email With.

  - In Image Tools, show an error if jpegtran is not found

  - In Audacious add runnable item Show Playing

  - Fix Wikipedia to use https

  - In Documents, match more applications to their own recent documents, notably LibreOffice

  - Run copy from File Actions asynchronously

  - Add a new help page, for plugin Thunar

## kupfer v306

Released Monday, 13 feb 2017

- Fix a compatibility issue with waf wscripts for non UTF-8 locales

- Fix plugin info loading from .zip files.

- Fix exception on filenames that could not be represented in unicode. They are silently skipped in directory listings for now.

- Plugins:

  - Fix Deep Archives to skip directories named with archive extensions

  - Fix =help in Calculator

  - Revert the hack that replaced , with . in numbers in Calculator

  - Add file action Attach in Email To... in Thunderbird

  - Add text action Compose Email in Thunderbird

  - Fix Thunderbird to read unicode correctly from the address book.

  - Reintroduce places (GTK bookmarks) in Documents

## kupfer v305

Released Saturday, 11 feb 2017

- Tweak how the selected pane is drawn. We still haven't arrived at a theme and color-independent way to do this; Gtk 3 drawing and styling knowledge is welcome in github.

- Fix some drawing bugs in the main kupfer window by removing some old erronous overrides of the widget size calculation.

- Add attribute source_use_cache to the API for sources

- Plugins:

  - Add new plugin Media Player Control for basic control of any mpris-capable player. This plugin is experimental.

  - Fix bugs in Volumes so that it works well under Gtk 3

  - Fix the Copy button in the Show Text result. The text is also now editable.

  - Applications now only proposes apps in Open With... that support opening files. (Add %U or similar to your application’s command line in the .desktop file, if it's missing.)

  - Stop enabling File Actions by default (copy is not async with Gtk 3 so it is now defective). Please use the Thunar file actions instead.

## kupfer v304.1

Released Thursday, 9 feb 2017

- Plugins:

  - Clipboard: add back Clipboard Text that was removed in v304 by mistake

## kupfer v304

Released Wednesday, 8 feb 2017

- Clean up the distributable tarball; extra content like oldplugins is now only in the repository and not in the tarball.

- Fix double-clicking on the Kupfer window

- Increase default result list length slightly

- Plugins:

  - Reintroduce Firefox Bookmarks

  - Clipboard: attempted fix for a reported stack overflow

  - Clipboard: reintroduce Clipboard File(s) proxy object

  - Fix File Actions so that it works (for Gtk 3)

## kupfer v303

Released Tuesday, 7 feb 2017

GNOME's hosting of the project is now officially at an end; mailing list and repo there are gone, we are on github now. Thank you GNOME and see you next time!

- Completed port to pygi by removing pygtkcompat

- Build config will now look for python3 if python is too old.

- Plugins:

  - Reintroduce Locate

## kupfer v302

Released Monday, 6 feb 2017

- Fix sending files from the command line

- Fix installation of help pages, new standard location /usr/share/help and including a file that was missing.

- Fix --list-plugins and update man page.

- Patch the included waf so that it now builds using Python 3

- Plugin Applications: Add MATE as alternative

- Fix interface to not draw preedit field at all

- Fix Copy to Clipboard action.

## kupfer v301

Released Monday, 6 feb 2017

A new decade of Kupfer

- Fix loading plugin list for Python 3.6

- New: ? starts free text input

- New: ? text prefix gets live full text search results (plugin Tracker)

- Plugins

  - reintroduce tracker

  - fix audacious

  - fix dictionary

  - drop multihead (updated, but needs testing)

  - drop gnome-terminal (obsolete)

## kupfer v300

Released Sunday, 5 feb 2017

A new decade of Kupfer dawns!

- Port Kupfer to Python 3

- Port Kupfer to Gtk 3 and GObject Introspection

- Reindent the codebase to 4 spaces

- Regard this release as a preview, it may have bugs

- We have a github organization, new webpage, and will need maintainers to hold the wheel into the next decade

- Breaking changes:

  - Plugin configs are reset

  - Old kfcom can no longer be parsed

  - Some changes in the Plugin API

  - Many plugins are obsolete and have been dropped. Some old plugins can be updated, but I in general Kupfer wants to explore new kinds of interaction, and not necessarily collect all possible plugins in-tree

  - Gtk theming has changed

- New features:

  - Use CSS for Gtk 3 themes

  - Implemented using 2010s technology

- Dependencies:

  - This release requires Keybinder-3.0 (using G-I), that will be relaxed later

## kupfer v208

Released Friday, 1 June 2012

- Fix bug with nonexisting catalog directories (Karol) (1000980)

- Fix sending to many with Thunderbird (Karol) (955100)

- Fix history file for OpenOffice/LibreOffice (Karol)

- Audacious plugin: Work with Audacious 3 (Ulrik)

- Localization updates:

  - cs, Marek Černocký

  - es, Daniel Mustieles

  - fr, Alexandre Franke, Bruno Brouard

  - ru, Nikolay Barbariyskiy

  - sl, Matej Urbančič

## kupfer v207

Released Sunday, 26 February 2012

- Documentation translated to French by Bruno Brouard

- New translation to Brazilian Portuguese by Djavan Fagundes

- New translation to Hungarian by SanskritFritz

- Handle large text objects a bit better

- Introduce proxy objects Clipboard File and Clipboard Text. These objects are implemented in the Clipboard plugin, just like the Selected Text object which has changed home to this plugin. Accordingly, deactivating the clipboard plugin will deactivate these proxies.

- Support copying and pasting files from/to the clipboard, which allows much easier integration with file managers.

- Add an information text detailing which keyring backend is used to store passwords, visible in the user credentials dialog.

- Vim: Expand the vim plugin to use a helper process to track running server instances of (G)Vim. Each running session is exported as an object, and most importantly, files can be opened in a session using the action Open With.

- Multihead Support: This new plugin will start the "keyboard shortcut relay" service on additional screens, if it is needed. It is active by default, and does not do anything on configurations with a single X screen.

- Send Keys: Allow sending key sequences using comma trick.

- Thunar: Add action Symlink In...

- Quicksilver Icons: New plugin with a few icons from Quicksilver

- Use themable custom icon names kupfer-execute, kupfer-catalog, kupfer-launch. Also allow plugins to choose to supply icons when the icon theme lacks them, or always override the icon theme.

- Fix passing zero-length arguments to programs (Fabián Ezequiel Gallina) (863349)

- Gmail: Expose more contact info fields (Adi Sieker, Karol Będkowski)

- Add plugin DuckDuckGo (Isaac Aggrey)

- Add quick note action to Zim (Karol Będkowski)

- Add Edit Contact in Gmail to Gmail (Karol)

- Fix version detection in Gajim (Karol)

- Google Translate: Since Google no longer provides this API (for free), this plugin is no longer included in Kupfer.

- Fix compatibility with dbus-python version 1.0 (921829)

- Fix loss of window shape when centering (David Schneider) (779845)

- We are now using the format .tar.xz for the distribution tarball.

- The git repository and tarball now includes a local copy of waf (1.6.11), unmodified but with unused in Tools/ and extras/ removed.

- Localization updates:

  - (cs) Marek Černocký

  - (de) Mario Blättermann

  - (fr) Bruno Brouard

  - (es) Daniel Mustieles

  - (hu) SanskritFritz

  - (pl) Piotr Drąg

  - (pt_BR) Djavan Fagundes

  - (sl) Andrej Žnidaršič

  - (sv) Ulrik

## kupfer v206

The longest changelog ever—the best Kupfer ever?

Released Thursday, 14 April 2011

These are changes since the v205 release. Below this I have included, the full changelog for all the features introduced in v205, since it was not published in whole together with the v205 release.

I would like to thank all contributors for patches, bug reports, comments and translations. A special thanks to those who have contributed to the user documentation; it is now complete in both Polish and Spanish.

If you like my work with Kupfer, you can support me by donating. There are instructions how to do so on the web page. –ulrik.

- Thunderbird: fix double create email windows (747198)

- Thunderbird: fix problem with loading contacts (Karol Będkowski) (747438)

- Use rst2man as it was configured (747500)

- Reduce runtime memory use for substantially by reimplementing the icon cache (expectations vary btw. 10 to 30 percent).

- Prefer gnomekeyring over kwallet, and don't load keyring support if it is not requested by a plugin (747864)

- Make the "folder" icon take precedence over "inode/directory"

- Fix a regression in Go To that would not focus minimized windows.

- In Go To action, cycle application windows (if they are all on the same workspace).

- Fix 671105: the user's home is aliased as Home Folder and the "lookalike" application is hidden.

- Use GTK+ as default icon set, the ASCII icon set remains as a plugin

- Fix regression 749824, kupfer used a GTK+ 2.20 feature. Kupfer should now run under GTK+ 2.18 (2.16?). GTK+ 2.20 is recommended and needed for full input method support.

- Remake .desktop file parsing to be much more lenient, so that we can launch all applications again. Affected were especially launcher files written by wine.

- Make sure the Home key works in text mode (750240)

- Rhythmbox: Fix omission of .jpg extension when searching cover art (William Friesen)

- Support xfce4-dict in Dictionary plugin (David Schneider)

- Make sure kupfer.svg can be mimetype-detected (NAKAMURA Yoshitaka) (750488)

- Fix regression that prevented mimetypes and icon cache from being updated properly when installing from source.

- Focus the plugin list search box by default in the preferences window.

- Fix regression in XFCE Session Management that had a broken logout command.

- Install kupfer as a Thunar 'sendto' object.

- Fix a bug in the autostart file we installed, it was including a '%F' which broke --no-splash when autostarted on XFCE.

- LibreOffice: support their newer recent documents file (Karol Będkowski)

- Notes: Insert newlines after the new note title (748991)

- Commands: Recognize absolute paths with arguments as shell commands (for example /bin/grep --help. (152093)

- GNU Screen: check if sessions are still active (756449), don't give up even if $SCREENDIR is missing when we are started (753376)

- Notes: support the program kzrnote as well

- Renamed the two like-named command actions in spanish (Daniel Mustieles)

- Localization updates for v206:

  - sl Andrej Žnidaršič

  - es Daniel Mustieles

  - de Mario Blättermann

This is the changelog for the v205 release, which was released previously.

- Changes to the interface

  - Add a small menu button on the window for explicit access to context actions, preferences window, and help.

  - Increase icon size to 128px

  - Always show description field

  - Use an undecorated window with rounded corners

  - Let the frame be slightly transparent if supported

  - Themable colors and properties by using GTK+ styling, see Documentation/GTKTheming.rst, and the plugin Custom Theme that shows how to use custom styles.

- Add context action "Set X as default action for object Y"

  - For example, you can make Launch Again default for Terminal, and our default configuration uses this setting for two common terminals (GNOME and XFCE).

- Updated Kupfer's technical documentation (in Documentation/), including the Plugin API reference.

- Implement a preedit widget for input methods, also resolving the incompatibility with ibus (David Schneider) (696727)

- Re-implement launching of applications

- Allow the user to configure which terminal program is used. Applies to all of Run in Terminal, Open Terminal Here, for .desktop files that specify Terminal=true etc.

- Implement an "alternatives" mechanism so that plugins can register mutually exclusive alternatives. Currently implemented are Terminals (see above) and Icon Renderers.

- Thunar: Use Thunar 1.2's Copy and Move API.

  - These allow copying and moving anything through thunar, and it will show progress dialogs for longer transactions.

- Add Ascii & Unicode Icon Set for fun

- Add simple plugin Quick Image Viewer to show images in a simple way.

- Add Send Keys plugin that can send synthetic keyboard events, and prominently can be used for the Paste to Foreground Window action on text. Requires xautomation package. (621453)

- Volumes: treat mounts as regular folders, so they can be targets for file operations.

- File Actions: the action Move to Trash switches home to the Trash plugin, the archive actions go to new Archive Manager plugin. Archive Manager also updated to recognize more archive file types, including .xz.

- Activate current selection on double-click in the interface. (700948)

- Update the preferences window and move the folder configuration to the Catalog tab.

- Add initialize_plugin to the plugin interface.

- The D-Bus interface has been extended with X screen and timestamp-aware versions of all methods:

  - PresentOnDisplay, PutFilesOnDisplay, PutTextOnDisplay, ExecuteFileOnDisplay all act like their similarly-named predecessors, but take $DISPLAY and $DESKTOP_STARTUP_ID as their last two arguments.

  - kupfer-exec activation sends the event timestamp so that focus can be carried along correctly even when running .kfcom files (if activated as an application by startup-notification-aware launchers, this works with most standard desktop components).

- Internally, change how actions are carried out by allowing the action execution context object to be passed down the execution chain instead of being a global resource. This also allows plugins to cleanly access current environment (event timestamp, current screen etc).

  - Support running kupfer on multiple X screens (614796), use the command kupfer --relay on each additional screen for global keyboard shortcut support. This is experimental until further notice!

- The Tracker 0.8 plugin supports version 0.8 and 0.10 alike. Because of that and the expected compatibility with one version after this too, it's now called Tracker.

- The Favorites plugin lists Kupfer Help and Kupfer Preferences by default (for new users), so that it's not empty and those items are ranked higher.

- In free-text mode, show a character count in the text entry.

- The action Go To on applications has changed implementation. It will first bring to front all the application's windows on the current workspace, and upon the next invocations it will focus the other workspaces, in order, if they have windows from the same application. For single-window applications, nothing is changed.

- Localization updates for v205:

  - (cs) Marek Černocký

  - (de) Mario Blättermann

  - (es) Daniel Mustieles

  - (ko) Kim Boram

  - (nb) Kjartan Maraas

  - (pl) Karol Będkowski

  - (sl) Andrej Žnidaršič

  - (sv) Ulrik

## kupfer v205

Congratulating ourselves

Released Friday, 1 April 2011

- Changes to the interface

  - NOw we have a teh awsum interface

- Add context action "Set X as default action for object Y"

  - You can finally make Kupfer do what you want.

- Implement a preedit widget for input methods, also resolving the incompatibility with ibus (David Schneider) (696727)

  - Ok, so that foreign people can enter text too.

- Updated Kupfer's technical documentation (in Documentation/), including the Plugin API reference.

  - Someone finally bothered

- The action Go To on applications has changed implementation. It will first bring to front all yada yada, etc...

  - Whatever, it finally works in a sensible way

- And tons of other stuff, enjoy!

## kupfer v204

Released Friday, 18 March 2011

- Expand and improve upon Kupfer's User Documentation.

- Use and require Waf 1.6, which supports building using either Python 3 or Python 2.6+. Kupfer itself still uses Python 2.6+ only.

- Add Gwibber plugin that allows integration with Twitter, Identi.ca, Buzz etc. (Karol Będkowski)

- Add chat client Empathy plugin (Jakh Daven)

- Remove the plugin Twitter since it is incompatible and has no updated implementation.

- Add Show QRCode plugin by Thomas Renard (611162)

- Periodically save data from plugins so it's not lost if Kupfer can't exit cleanly at logout

- Commands: Add actions Pass to Command, Filter through Command, Send to Command which add a lot of shell script-related power to Kupfer. These actions, and Run (Get Output) as well, use a shell so that you can run shell pipelines.

- Search the Web: Fix bug in OpenSearch parser (682476)

- VirtualBox: Support vboxapi4 (Karol Będkowski)

- Thunderbird: Fix problems in the mork parser (Karol Będkowski) (694314)

- OpenOffice: Support LibreOffice too (Karol Będkowski)

- Fix "Y2011 bug" where the time parameter overflowed INT32 in keybinder

- Shorten Links: Use only services with stable API, added and removed services.

- Google Search, Google Translate and bit.ly in Shorten Links can use SSL for transport if a third-party plugin is installed.

- Fix bug if evolution address book is missing (Luca Falavigna) (691305)

- Fix Search the Web to use localized firefox-addons subdirectories for search engines (735083)

- Fix bug with integer division (Francesco Marella)

- APT: Workaround bug with subprocess (711136)

- Find cover art files just like Rhythmbox (William Friesen) (676433)

- Use readlink in kupfer-exec script too since realpath is not always available.

- Allow plugins to use update notifications (William Friesen)

- Bug 494237 is hopefully fixed once and for all.

- The Large Type action will work with anything that has TextRepresentation

- Localization updates:

  - (cs) Marek Černocký

  - (da) Joe Hansen

  - (de) Mario Blättermann

  - (es) Daniel Mustieles

  - (gl) Marcos Lans

  - (pl) Karol Będkowski

  - (sl) Andrej Žnidaršič

  - (sv) Ulrik

  - (zh_CN) Aron Xu, Yinghua Wang

## kupfer v203

Released Saturday, 6 November 2010

- Center Kupfer on the monitor were the mouse pointer is (642653, 3d0ba12)

- Ignore the system's configured input manager by default (User can choose by pressing Shift+F10 in Kupfer). Kupfer is still not compatible with ibus 1.3. (601816, 4f029e6)

- Use readlink instead of realpath (656b32d)

- Opera Mail: Handle contacts with multiple e-mail addresses (Chris Parsons) (661893, 12924be)

- Google Translate: Fix language list (Karol Będkowski) (600406, 7afac2b)

- TSClient: Search recursively for session files (Karol, Freddie Brandt) (ad58c2e)

- Rhythmbox: Fix thumbnail lookup (William Friesen) (669077, b673f98)

- New Slovenian translation of help by Matej Urbančič (3b7df25)

- New Turkish translation by M. Deran Delice (bd95d2a)

## kupfer v202

Released Sunday, 5 September 2010

- Add option to hide Kupfer when focus is lost (and enable by default) (Grigory Javadyan) (511972)

- Use application indicators when available (Francesco Marella) (601861)

- Python module keyring is now optional for Kupfer (but required for the same plugins that used them before)

- Update Google Translate for protocol changes (Karol, Ulrik) (600406)

- Disable saving window position until a better solution is found

- Use 'mailto:' as URL (630489)

- Fix UI glictch with empty Source (William Friesen) (630244)

- Small changes (Francesco Marella)

- New Czech translation of the help pages (Marek Černocký)

- New Italian translation of the help pages (Francesco Marella)

- New Polish translation of the help pages (Karol Będkowski)

- New Basque translation (Oier Mees, Iñaki Larrañaga Murgoitio)

- New Galician translation (Fran Diéguez)

- Localization updates:

  - cs (Marek Černocký)

  - de (Mario Blättermann)

  - pl (Karol Będkowski)

  - sl (Andrej Žnidaršič)

  - zh_CN (Aron Xu)

## kupfer v201

Released Wednesday, 30 June 2010

- New Logo and Icon by Nasser Alshammari!

- New plugin Opera Mail by Chris Parsons

- New plugin SSH Hosts by Fabian Carlström

- New plugin Filezilla by Karol Będkowski

- New plugin Getting Things GNOME! (Karol)

- New plugin Vim (recent files)

- Clipboard: Option Copy selection to primary clipboard (Karol)

- Firefox: Option Include visited sites (Karol) (584618)

- Thunar: Action Send To... (Karol)

- New preferences tab for Catalog configuration

- Allow disabling and "unloading" plugins at runtime

- Support new tracker in plugin Tracker 0.8

- Shell Commands: New Action Run (Get Output)

- New plugin capabilities: ActionGenerator, Plugin setting change notifications (Karol)

- Use setproctitle module if available to set process title to kupfer (new optional dependency)

- Don't use a crypted keyring (partially addresses 593319)

- Fix 544908: Retain window position across sessions

- Fix 583747: Use real theme colors for highlight

- Fix 593312: About window has no icon

- More minor changes

- Localization updates:

  - cs, Marek Černocký

  - de, Mario Blättermann

  - es, Jorge González

  - it, Francesco Marella

  - pl, Karol Będkowski

  - sl, Andrej Žnidaršič

  - sv, Ulrik

## kupfer v200

Released Wednesday, 7 April 2010

- Add Keyboard Shortcut configuration (Karol Będkowski)

- Make it easier to copy and move files (William Friesen), while showing user-friendly errors when action is not possible (Ulrik) (516530)

- Collect results in a Command Results subcatalog, including results from asynchronous commands (Pro tip: Bind a trigger to Command Results → Search Contents, for quick access to copied files, downloaded files etc)

- Last Result proxy object implemented

- Add Cliboards -> Clear action (Karol)

- Add Rescan action for some sources (Karol)

- Add an icon in the plugin list search field to enable clearing it (Karol)

- Fix spelling (Francesco Marella)

- Fix bug 544289

- Require python module keyring (since pandoras-box-1.99, but was not mentioned)

- Recommend python-keybinder version 0.0.9 or later

- Localization updates:

  - cs Marek Černocký

  - de Mario Blättermann

  - es Jorge González

  - pl Karol Będkowski

  - sl Andrej Žnidaršič

  - sv Ulrik

  - zh_CN Aron Xu

## kupfer version pandoras-box-1.99

Released Tuesday, 16 March 2010

- Plugins can be loaded at runtime, although not unloaded can they not

- Plugins can bundle icons, and plugins can be packaged in .zip files

- New plugins Google Search, Textfiles and Thunar

- New plugin Deep Archives to browse inside .zip and .tar files

- New plugins Twitter, Gmail and Google Picasa by Karol Będkowski

- New plugin Evolution by Francesco Marella

- New action Get Note Search Results... in Notes by William Friesen (LP#511954)

- New plugin capabilities (user credentials, background loader) by Karol

- Added Next Window proxy object to Window List plugin

- Allow saving Kupfer commands to .kfcom files, and executing them with the kupfer-exec helper script.

- Display error notifications to the user when some actions can not be carried out.

- Allow collecting selections with the Clipboard plugin (Karol)

- Include Gnome/Yelp documentation written using Mallard (Mario Blättermann)

- Make Zim plugin compatible with newer Zim (Karol, Ulrik)

- Detect multiple volume rar files (William Friesen) (LP#516021)

- Detect XFCE logout better (Karol) (LP#517819)

- Fix reading VirtualBox config files (Alexey Porotnikov) (LP#520987)

- Fixed module name collision in user plugins (LP#518958), favoriting "loose" applications (LP#518908), bookmarked folders description (LP#509385), Locate plugin on OpenSUSE (LP#517819), Encoding problem for application aliases (LP#537730)

- New French translation by Christophe Benz

- New Norwegian (Bokmål) translation by Kjartan Maraas

- Kupfer now requires Python 2.6

- Localization updates:

  - cs Marek Černocký

  - de Mario Blättermann

  - es Jorge González

  - fr Christophe Benz

  - it Francesco Marella

  - nb Kjartan Maraas

  - pl Karol Będkowski

  - pt Carlos Pais

  - sl Andrej Žnidaršič

  - sv Ulrik

## kupfer version pandoras-box-1.1

Released Monday, 8 February 2010

- Fix bug in contact grouping code that could cause unusable Kupfer with Pidgin plugin. Reported by Vadim Peretokin (LP#517548)

- Chromium plugin will index Google Chrome bookmarks as fallback, by William Friesen (LP#513602)

- Kupfer's nautilus plugin was changed to be easier to reuse for others

- Some minor changes

- Localization updates:

  - pt (Carlos Pais)

## kupfer version pandoras-box-1

"Pandora's box"

Released Monday, 1 February 2010

- Implement the famous "comma trick": Press , (comma) in the first or third pane to make a stack of objects to perform actions on. This allows actions on many objects and even many-to-many actions.

- New plugin: Triggers: Add global keybindings to any command you can perform in Kupfer.

- New plugin Skype by Karol Będkowski

- New plugin Thunderbird (or Icedove) (Karol)

- Implement merging of contacts and hosts: All contacts of the same name are merged into one object. (Karol, Ulrik)

- New plugin Higher-order Actions to work with saved commands as objects

- The Favorites plugin was reimplemented: you may favorite (almost) any object. Favorites get a star and a rank boost.

- Window List plugin was improved, most notably a Frontmost Window proxy object was added

- New proxy object Last Command

- The Firefox plugin now includes most-visited sites from browser history (William Friesen, Karol, Ulrik)

- The list of plugins has a field to allow filtering the list (Karol)

- New Czech localization by Marek Černocký

- Many smaller changes.

- Localization updates:

  - cs (Marek Černocký, Petr Kovar)

  - de (Mario Blättermann)

  - nl (Martin Koelewijn)

  - pl (Karol)

  - sv

  - sl (Andrej Žnidaršič)

## kupfer version c19.1

Released 31 December 2009

- New plugin: Shorten Links by Karol Będkowski

- Implemented Ctrl+C (and Ctrl+X) to copy (cut) selected object

- Fix bug LP #498542: restore window position code to c18

- Partial fix of bug LP #494237, window is sometimes blank

- Fix bug LP #500395, column order in Top plugin (Karol)

- Fix bug LP #500619, handle network errors in Google Translate plugin (Karol)

- Localization updates:

  - pl (Karol)

  - sv

## kupfer version c19

Released 18 December 2009

- New plugins:

  - Gnome Terminal Profiles by Chmouel Boudjnah

  - OpenOffice recent documents in OpenOffice by Karol Będkowski

  - Top show and send signals to running tasks (Karol)

  - Truecrypt show volumes in truecrypt history and allow mounting them (Karol)

  - Vinagre Remote Desktop Viewer (Karol)

  - XFCE Session Management (Karol)

  - Audacious by Horia V. Corcalciuc

- New Slovenian translation by Andrej Žnidaršič

- Some plugins will now explicitly require a D-Bus connection and fail to load if no connection was found.

- Add accelerators Page Up, Page Down and Home in the result list. (Karol)

- Use customized or localized desktop directory instead of hardcoding ~/Desktop by default. It will not affect users who already customized which directories Kupfer indexes.

- It now is possible to favorite shell commandlines

- Gajim plugin now works with version 0.13 (Karol) (LP #489484)

- Basic support for Right-to-left (RTL) interface

- Fix bugs with "loose" Applications (not in system directories), reported by Chmouel.

- Add accelerator Ctrl+Return for Compose Command: You may compose a command object out of an (Object, Action) combination, to be used with the new action Run After Delay....

- Added file action Send by Email to Claws Mail plugin (Karol)

- Added file action Mount as TrueCrypt Volume to TrueCrypt plugin (Karol)

- Many small bugfixes

Localization updates:

- de: Mario Blättermann

- es: Jorge González

- it: Francesco Marella

- pl: Karol Będkowski

- sl: new (Andrej)

- sv: Ulrik Sverdrup

## kupfer version c18.1

Released 20 November 2009

- Fix bug to toss out malfunctioning plugins properly (Reported by Jan)

- Fix bug in showing the shutdown dialog, reported by user sillyfofilly (LP 484664)

- Fix bug in plugin Document Templates, reported by Francesco Marella (part of LP 471462)

## kupfer version c18

Released 18 November 2009

"Mímisbrunnr"

- New plugins:

  - Pidgin by Chmouel Boudjnah

  - Google Translate by Karol Będkowski

  - APT (package manager APT) by Martin Koelewijn and Ulrik

  - Document Templates

  - Kupfer Plugins

  - Show Text

- Gajim plugin matches contacts by jid as well as name, suggested by Stanislav G-E (LP 462866)

- Action Rescan on sources is now debug only (should not be needed)

- Kupfer installs its Python package into $PREFIX/share by default, instead of installing as a system-wide Python module.

- Kupfer can take input on stdin and pass as text to an already running instance

- Fix bug in Services for Arch Linux, reported by lh (LP 463071)

- Changes for plugin authors:

  - May use uiutils.show_text_result to show text

  - kupfer.task.ThreadTask is now a reliable way to run actions asynchronously (in a thread)

  - You can use item Restart Kupfer to restart (in debug mode)

  - Plugins may be implemented as Python packages, as well as modules

- Updated the dependencies in the README. pygobject 2.18 is required. Added gvfs as very recommended.

- Other bugfixes

Localization updates:

- de (Mario Blättermann)

- es (Jorge González)

- nl (Martin Koelewijn)

- pl (Karol Będkowski)

- sv

- zh_CH (lh)

## kupfer version c17

Released, 25 October 2009

"A fire lit by nine kinds of wood"

- 8 new plugins by Karol Będkowski:

  - Claws Mail, Contacts and actions

  - Gajim, Access to gajim contacts

  - Opera Bookmarks, for the web browser Opera

  - PuTTY Sessions, access to PuTTY sessions

  - System Services, start, stop or restart system services

  - Terminal Server Client, access to TSClient sessions

  - VirtualBox, control virtual machines, Sun or OSE version

  - Zim, access pages in the desktop wiki

- New plugin Chromium Bookmarks by Francesco Marella

- Plugins missing dependencies will be presented in the GUI with a clear error message.

- Firefox Bookmarks plugin: Workaround Firefox 3.5 writing invalid JSON (Karol, Ulrik)

- Locate plugin: Ignore case by default, add option to control this. (Karol)

- Kupfer is much more friendly and says "Type to search in Catalog" when it is ready to be used.

- Localization updates:

  - New Simplified Chinese localization (lh)

  - New Dutch localization (Martin Koelewijn)

  - New Portuguese localization (Carlos Pais)

  - Updated pl (Karol)

  - Updated es (Jesús Barbero Rodríguez)

## kupfer version c16

Released 5 October 2009

- Translation to German (Thibaud Roth)

- Polish translation updated (Maciej Kwiatkowski)

- Add search engine descriptions from firefox-addons (Francesco Marella)

- Speed up directory browsing by using much less system calls

- Improve documentation and put it together into a Manual.

- Generate man page from reStructuredText document Quickstart.

- Evaluate valid actions (per object) lazily to save work.

- Add accelerators Ctrl+Q (select quit) and Alt+A (activate)

- Parse even horribly wrong search engine descriptions (Bug reported by Martin Koelewijn)

## kupfer version c15

- Translation to Polish by Maciej Kwiatkowski

- Speed up the string ranker tremendously; 3x faster in common cases.

- All objects now have an alias in the basic latin alphabet (if possible) so that, for example, query wylacz matches item Wyłącz.

- Show notification icon by default

- Read XML with cElementTree (Faster.)

- Read Firefox 3's bookmarks (Python2.5 requires cjson module)

- New Plugin: Image Tools, with action Scale... and JPEG rotation actions (Scale requires ImageMagick (convert), JPEG actions jpegtran and jhead)

- Basic support for a Magic Keybinding: summon kupfer with current selection

## kupfer version c14.1

- Fix two bugs with new browisng mode (soft reset for text mode, backspace or left to erase a subcatalog search)

## kupfer version c14

- Rewrite and improve browsing mode:

  - Browsing the catalog or folders is much improved; it is easier to keep the overview and be oriented.

  - Returning to kupfer after having performed an action, the old object is still available, but without locking the catalog to its location. When spawning kupfer again, the previous context is available if you immediately browse; if you search, you search the whole catalog.

  - The search times out after 2 seconds if no key is typed. Now the highlight text will fade to show this.

- Add accelerators Ctrl+G and Ctrl+T to get current selection in nautilus and currently selected text (if available).

## kupfer version c13.1

- Fix two bugs with Rename To...

## kupfer version c13

- New Plugin: Calculator

- New Action: Rename To... in File Actions Plugin

- Smaller changes (Stop learned mnemonics database from growing indefinitely, Catch SIGINT without python's handler, Copy To... requires pygobject 2.18 now)

## kupfer version c12

- Translation to Spanish by Leandro Leites

- Preferences. Display plugin settings and options beside the plugin list, and allow configuring included (and watched) directories.

- Support the new Gnome session protocol to save state on log out.

- Improve embarassingly bad shell command quoting for Execute and Tracker tag actions.

- Specify user data locations with X-UserData

- Fix an AttributeError in Notes plugin reported by Francesco Marella

- Smaller fixes (Add/remove favorite could cease to work, Track intantiated sources better)

## kupfer version c11

The "this one goes to 11" release

- New plugin: Notes (Gnote and Tomboy support)

  - Access notes, Actions: Create Note and Append to Note...

- New plugin: Selected File

  - Kupfer ships with a Nautilus python extension that once installed, you can access the currently selected file in Nautilus from Kupfer, as the Selected File object

This release is localized in: Swedish (100%), Italian (90%)

## kupfer version c10.1

- Spanish Translation by Leandro Leites

## kupfer version c10

- Updated italian localization

- New plugins: Url Actions, Web Search (rewritten to use all Firefox' search engines)

- New actions: Set Default Application, Create Archive In..., Restore (Restore trashed file)

- Add accelerators Control+R for reset, Control+S for select first (source) pane and Control+. for untoggle text mode.

- Only the bookmarks plugins can toggle "include in toplevel" now.

- Other smaller changes (Refuse invalid Application objects from the cache)

This release is localized in: Swedish (100%), Italian (93%)

## kupfer version c9.1

- User interface consistency and behaviour improvements. UI is simpler and better.

- Other improvements.

This release is localized in: Swedish (100%), Italian (60%)

## kupfer version c9

The "c9" release

- Search and browse perform better

- The interface is now modal. In command mode we can bind special keys to new functions. Type period . to enter free-text mode (just like in QS).

- Pressing kupfer's keybinding again will hide the window.

- Other smaller improvements

This release is localized in: Swedish (100%), Italian (60%)

## kupfer version c8

- Make the use of the indirect object pane much more fluid

- Apply interface polish (proper english capitalization of actions and other objects, other changes)

- Add Copy To... action

- Try xdg-terminal first in Open Terminal Here (non-Gnome users can either install xdg-terminal or symlink it to their terminal program)

- Allow unbinding the keybinding

- Fix a bug with tracker tags

[Please file bug reports and feature requests.][lp]. Read the files in Documentation/ and see how you can add new plugins with object and application knowledge to kupfer.

This release is localized in: Swedish (100%), Italian (60%)

[lp]: http://launchpad.net/kupfer

## kupfer version c7

The "choice" release

This is a followup with some small changes after the c6 release, which introduced lots of major changes, including a preferences window and "application content."

- Allow wnck to be optional. Kupfer needs wnck to do application matching and focusing of already running applications, but can now run without it if wnck is not available. Window List plugin also needs wnck

- Rhythmbox plugin should not crash even if library is not found, now kupfer can run even if rhythmbox's files are not there.

- Applications will match names as well as the executables, so that "gedit" matches Text Editor regardless of what the displayed localized name is.

[Please file bug reports and feature requests.][lp]. Read the files in Documentation/ and see how you can add new plugins with object and application knowledge to kupfer.

This release is localized in: Swedish (100%), Italian (60%)

[lp]: http://launchpad.net/kupfer

## kupfer version c6

The "Sisyphus incremental improvements" release

- Preferences window

  - Allows setting keybinding on the fly

  - List and enable/disable plugins and set plugin options

- Everything was improved slightly, but steadily

- Understands more applications, provides more files and objects, and actions with new plugins: Rhythmbox, Abiword, Clipboards, Dictionary, Favorites, Selected Text, Wikipedia

- Connect applications with their related object sources and make it their content, such as Rhythmbox music for the Rhythmbox application.

  - Applications contain their recently used documents, if available.

  - Firefox and Epiphany bookmarks are identified with each application

- Miscellaneous improvements:

  - Kupfer object icon ("blue box")

  - Some default application associations are installed (others are learned by launching applications).

  - Experimental UI with two-line title+description in browse mode

  - Thumbnails for files and albums in browse mode

  - Allow sending files and queries to kupfer from the commandline using kupfer 'query' or kupfer docs/file.pdf.

  - Even more plugins listen to change callbacks or filesystem monitors to be up to date to the instant.

  - Do not display nonexisting files as results

  - Fine-tune how sources are loaded and refreshed on load

This release deserves lots of testing. [File bug reports and feature requests.][bug] Read the files in Documentation/ and see how you can add new plugins with object and application knowledge to kupfer.

This release is localized in: Swedish (100%), Italian (60%)

Future: part 2 of beautification is refactoring of the interface, so that the UI can be modularized and exchanged in plugins.

[bug]: http://launchpad.net/kupfer

## kupfer version c5

The "Beauty from the inside, part 1" release

- Big refactorings of the whole data model

  - Move all of the data model to kupfer.data

  - Allow actions with indirect objects "threepane kupfer" (with means to configure which objects to use for an action etc)

  - Uses unicode internally, instead of UTF-8-encoded strings

- Some new actions using new possibilities (Open with any, Move file to new location, Add/Remove tracker tags) but more is possible.

- Basic manual page included

- Fileactions plugin includes unpack archive/create archive

- Ship extra and demonstration plugins in contrib/ and interals documentation in Documentation/

- Change learning algorithm to recognize an item's type as well (so that two objects named "project" can be ranked differently)

- Small fixes (alphabethic sorting for applications, sources, check if objects still exist after an action, rank_adjust default actions slightly)

This release deserves lots of testing. File bug reports and feature requests. Read the files in Documentation/ and see how you can add new plugins with object and application knowledge to kupfer.

This release is localized in: Swedish (100%), Italian (80%)

Future: part 2 of beautification is refactoring of the interface, so that the UI can be exchanged. And preferences will hopefully be implemented