Когда флешка или любое другое устройство подключается в kde4 это отображается на виджете "подключаемые устройства". Так же там предлагается выбрать действия для подключенного устройства.
Создадим действие синхронизация для конкретной флешки.
Сначала посмотрим как solid (подсистема ответственная за аппаратуру в KDE 4) видит нашу флешку.
solid-hardware list
наша флешка имеет udi = '/org/freedesktop/UDisks/devices/sdb1'
solid-hardware details /org/freedesktop/UDisks/devices/sdb1
получаем примерно такой вывод:
parent = '/org/freedesktop/UDisks/devices/sdb' (string)
vendor = 'Multiple' (string)
product = 'Card Reader' (string)
description = '3,7 GiB Removable Media' (string)
Block.major = 8 (0x8) (int)
Block.minor = 17 (0x11) (int)
Block.device = '/dev/sdb1' (string)
StorageAccess.accessible = false (bool)
StorageAccess.filePath = '' (string)
StorageAccess.ignored = false (bool)
StorageVolume.ignored = false (bool)
StorageVolume.usage = 'FileSystem' (0x2) (enum)
StorageVolume.fsType = 'vfat' (string)
StorageVolume.label = '' (string)
StorageVolume.uuid = '5a8d-08b0' (string)
StorageVolume.size = 3964552704 (0xec4e4600) (qulonglong)
Вот и uuid - им можно уникально идентифицировать нашу флешку.
Создаем файл в ~/.kde/share/apps/solid/actions, например Синхронизировать.desktop:
[Desktop Action open]
Exec=/usr/bin/unison-gtk
Icon=ktip
Name=Синхронизировать
[Desktop Entry]
Actions=open;
Type=Service
X-KDE-Action-Custom=true
X-KDE-Solid-Predicate=[[StorageVolume.usage == 'FileSystem' AND StorageVolume.ignored == 'false'] AND StorageVolume.uuid == '5a8d-08b0']
Теперь, при подключении флешки в USB разьем, в списке действий появляется новый пункт: Синхронизировать.
Так же действия для подключаемых устройств можно добавить через K -> "Параметры системы" -> "Действия для устройств"
Файлы системных действий находятся в папке /usr/share/kde4/apps/solid/actions/