File: VersionHistory.rst

package info (click to toggle)
kupfer 329-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,352 kB
  • sloc: python: 37,681; makefile: 88; sh: 78; xml: 3
file content (2132 lines) | stat: -rw-r--r-- 77,696 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
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
    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.
  + 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

.. role:: lp(strong)

kupfer v208
-----------

Released Friday,  1 June 2012

* Fix bug with nonexisting catalog directories (Karol) (:lp:`1000980`)
* Fix sending to many with Thunderbird (Karol) (:lp:`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)
  (:lp:`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 (:lp:`921829`)
* Fix loss of window shape when centering (David Schneider) (:lp:`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?`:t:

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.

__ http://kaizer.se/wiki/kupfer/help/

* *Thunderbird:* fix double create email windows (:lp:`747198`)
* *Thunderbird:* fix problem with loading contacts (Karol Będkowski)
  (:lp:`747438`)
* Use ``rst2man`` as it was configured (:lp:`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 (:lp:`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 :lp:`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 :lp:`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 (:lp:`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)
  (:lp:`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 (:lp:`748991`)
* *Commands:* Recognize absolute paths with arguments as shell commands (for
  example ``/bin/grep --help``. (:lp:`152093`)
* *GNU Screen:* check if sessions are still active (:lp:`756449`), don't
  give up even if ``$SCREENDIR`` is missing when we are started
  (:lp:`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) (:lp:`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. (:lp:`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.
  (:lp:`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 (:lp:`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) (:lp:`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 (:lp:`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 (:lp:`682476`)
* *VirtualBox*: Support vboxapi4 (Karol Będkowski)
* *Thunderbird*: Fix problems in the mork parser (Karol Będkowski)
  (:lp:`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)
  (:lp:`691305`)
* Fix *Search the Web* to use localized ``firefox-addons`` subdirectories
  for search engines (:lp:`735083`)
* Fix bug with integer division (Francesco Marella)
* *APT:* Workaround bug with ``subprocess`` (:lp:`711136`)
* Find cover art files just like Rhythmbox (William Friesen) (:lp:`676433`)
* Use ``readlink`` in ``kupfer-exec`` script too since ``realpath`` is not
  always available.
* Allow plugins to use update notifications (William Friesen)
* Bug :lp:`494237` is hopefully fixed once and for all.
* The *Large Type* action will work with anything that has
  ``TextRepresentation``

__ http://kaizer.se/wiki/kupfer/help/

* 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
-----------

.. role:: git(emphasis)

Released Saturday,  6 November 2010

* Center Kupfer on the monitor were the mouse pointer is (:lp:`642653`,
  :git:`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. (:lp:`601816`, :git:`4f029e6`)
* Use ``readlink`` instead of ``realpath`` (:git:`656b32d`)
* *Opera Mail*: Handle contacts with multiple e-mail addresses (Chris
  Parsons) (:lp:`661893`, :git:`12924be`)
* *Google Translate*: Fix language list (Karol Będkowski) (:lp:`600406`,
  :git:`7afac2b`)
* *TSClient*: Search recursively for session files (Karol, Freddie Brandt)
  (:git:`ad58c2e`)
* *Rhythmbox*: Fix thumbnail lookup (William Friesen) (:lp:`669077`,
  :git:`b673f98`)
* New Slovenian translation of help by Matej Urbančič (:git:`3b7df25`)
* New Turkish translation by M. Deran Delice (:git:`bd95d2a`)

kupfer v202
-----------

Released Sunday,  5 September 2010

* Add option to hide Kupfer when focus is lost (and enable by default)
  (Grigory Javadyan) (:lp:`511972`)
* Use application indicators when available (Francesco Marella)
  (:lp:`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) (:lp:`600406`)
* Disable saving window position until a better solution is found
* Use 'mailto:' as URL (:lp:`630489`)
* Fix UI glictch with empty Source (William Friesen) (:lp:`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) (:lp:`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 :lp:`593319`)
* Fix :lp:`544908`: Retain window position across sessions
* Fix :lp:`583747`: Use real theme colors for highlight
* Fix :lp:`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) (:lp:`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`:lp:
* 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

.. -*- encoding: UTF-8 -*-
.. vim: tw=76 ft=rst