diff --git a/roles/lmn_kde/handlers/main.yml b/roles/lmn_kde/handlers/main.yml
index 6a3b3d5..13c1716 100644
--- a/roles/lmn_kde/handlers/main.yml
+++ b/roles/lmn_kde/handlers/main.yml
@@ -1,10 +1,18 @@
-- name: run update-grub
+- name: Run update-grub
   command: update-grub
   listen: update grub
 
-- name: enable tmp.mount
+- name: Enable tmp.mount
   systemd:
     daemon_reload: yes
     name: tmp.mount
     enabled: yes
   listen: enable tmp.mount
+
+- name: Run update-desktop-database
+  command: update-desktop-database "{ item }"
+  loop:
+    - /usr/local/share/applications
+    - /usr/local/share/desktop-directories
+    - /etc/xdg/menus/applications-merged
+  listen: update-desktop-database
diff --git a/roles/lmn_kde/tasks/main.yml b/roles/lmn_kde/tasks/main.yml
index c231ea3..58df607 100644
--- a/roles/lmn_kde/tasks/main.yml
+++ b/roles/lmn_kde/tasks/main.yml
@@ -137,26 +137,23 @@
   loop:
     - /usr/local/share/applications
     - /usr/local/share/desktop-directories
+  notify: update-desktop-database
 
 - name: Copy fvs.directory
   ansible.builtin.copy:
     src: fvs.directory
     dest: /usr/local/share/desktop-directories/
+  notify: update-desktop-database
 
 - name: Copy fvs.menu
   ansible.builtin.copy:
     src: fvs.menu
     dest: /etc/xdg/menus/applications-merged/
+  notify: update-desktop-database
 
-- name: Run update-desktop-database
-  command: update-desktop-database "{ item }"
-  loop:
-    - /usr/local/share/applications
-    - /usr/local/share/desktop-directories
-    - /etc/xdg/menus/applications-merged
-
-- name: Run update-desktop-database
+- name: Run sync-vm.sh
   command: sync-vm.sh -t
+  ## FIXME: do not run every time
 
 ################# from kiosk.yml ##################
 - name: grub timeout