web-dev-qa-db-fra.com

Comment mettre à jour le gestionnaire de fichiers Dolphin en temps réel

Si j'ai Dolphin ouvert et que je travaille dans le terminal ou sous Windows, des fichiers peuvent être déplacés ou ajoutés. Comment ferais-je pour m'assurer qu'il met à jour le statut d'un répertoire de temps réel?

Actuellement, je ne peux même pas utiliser le dos pour me mettre à jour et je dois constamment rouvrir dauphin, très ennuyeux

5
user140393

Pour rafraîchir Dolphin, il faut appuyer sur F5. Cependant, ce serait manuel.

Pour actualiser en permanence, une solution automatique, créez un script bash qui s'exécute au démarrage. Ce script bash devrait appuyer sur F5 toutes les cinq secondes si Dolphin est ouvert. Créez un fichier nommé dolphin-update dans /usr/local/bin avec le contenu suivant:

#!/bin/bash
while true; do
    PID=$(pgrep "dolphin")
    if [ "$?" -ne "0" ]; then
        xdotool key 'F5'
    fi
    sleep 5
done

Vous devrez peut-être d'abord le créer en tant que root, puis changer le propriétaire en votre utilisateur:

Sudo chown username:username /usr/local/bin/dolphin-update 

Assurez-vous qu'il dispose d'autorisations exécutables:

chmod +x /usr/local/bin/dolphin-update

Maintenant, nous en avons besoin pour démarrer au démarrage. Pour ce faire, exécutez Sudo crontab -e et ajoutez la ligne suivante à la fin du fichier:

@reboot /usr/local/bin/dolphin-update

Ce script sera exécuté au démarrage.

Vous devriez maintenant avoir un Dolphin continuellement rafraîchissant!

Il y a quelques mises en garde à ce script.

  • Si vous ouvrez Dolphin, accédez à une autre application où F5 déclenche quelque chose (par exemple, Chromium rafraîchit la page), le script sera toujours exécuté et sera un ennui constant. Solution: Fermer Dolphin lorsque vous ne l'utilisez pas activement.
  • Comme un travail cron est utilisé, si votre ordinateur tombe en panne, le script ne s'exécutera pas au démarrage. Cependant, c'est un problème avec cron pas le script.

Ce que le script signifie, ligne par ligne:

  • #!/bin/bash - Shebang s'exécutera avec bash
  • while true; do - fonctionne en continu
  • PID=$(pgrep "dolphin") - recherche l'ID de processus d'une instance dolphin. Ceci est purement là pour vérifier s'il y a même une instance de Dolphin en cours d'exécution.
  • if [ "$?" -ne "0" ]; then - vérifie si une instance de Dolphin est en cours d'exécution. Si c'est le cas, alors ...
  • xdotool key 'F5' - appuyez sur F5
  • fi - termine le bloc if
  • sleep 5 - attendez 5 secondes avant de répéter le processus
  • done - termine le bloc while
4
fosslinux

Cela semble être un bug toujours actif dans Kubuntu 18.04, où Dolphin ne s'actualiserait pas toujours automatiquement et ne montrerait pas instantanément les modifications apportées par un autre programme, auquel cas une actualisation manuelle serait nécessaire. F5 semble fonctionner correctement à cette fin maintenant.

3
user47206

La question initiale d'OP a presque 5 ans. Il y a un bogue principal posté en 2009 avec 15 bogues en double pointant vers lui. Le correctif de bogue est apparu dans Debian (commentaire n ° 58) après la publication de la question de OP.

Le rapport selon lequel ce bogue est toujours présent en 2018 par un nouveau rapport de bogue est un peu trompeur car l'utilisateur qui a déposé le rapport (Jeremy9856) a publié une douzaine de commentaires essayant différentes solutions:

  • mis à jour le nombre de kernel autorisés inotify montres
  • désactiver tlp ce qui met les lecteurs en veille
  • faire mkdir/rmdir plusieurs fois pour déclencher le problème
  • Un autre utilisateur (commentaire n ° 10) a testé un one-liner et a déclaré que le problème n’existait pas while true ; do mkdir abc ; sleep 1 ; rmdir abc ; sleep 1 ; done
  • quand il y a un accent dans le chemin (par ex. /home/jeremy/Téléchargements/Séries)

Le dernier commentaire de Jeremy9586 dit:

Eh bien, j'ai supprimé les liens symboliques des dossiers de/home (Bureau, Téléchargements, etc.) pointant vers/media/Data et utilisé les paramètres de kde (dans les applications) pour modifier l'emplacement de ces dossiers. problème pendant environ une semaine!

Alors peut-il être lié aux liens symboliques?


Sommaire

Le problème rencontré par le PO a été signalé pour la première fois en 2009 et résolu en 2013.

Le bogue sur lequel pointe la nouvelle prime semble n'avoir rien à voir avec l'actualisation de la liste des fichiers en général et il faut appuyer sur F5. Le bogue était causé par des liens symboliques entre /home et /media/home.

1
WinEunuuchs2Unix

Le script suivant utilise xdotool pour envoyer la touche F5 afin de réinitialiser la fenêtre de Dolphin chaque fois qu'elle est active. Enregistrez-le, rendez-le exécutif et lancez-le au démarrage.


#!/bin/bash
     # indefinite loop
     while  : ; do
         # gets root window property _NET_ACTIVE_WINDOW
         WIN=($(xprop -root _NET_ACTIVE_WINDOW))

         # extracts window id (base seven)
         WIN="${WIN[4]%%","*}"

         WIN="$(printf "%s\n" ${WIN})"  # bypass weird array bug

          # Decimal window id of dolphin
          WindowID="$(xdotool search --class "dolphin" 2>/dev/null | tail -1)"

          # Convert dolphin's win id to base seven
          WindowIDbSeven=$(printf "0x%07x" ${WindowID})

         # test if an acive window id mathes with the dolphin's window id
         if [[ "${WIN}" == "${WindowIDbSeven}" ]]; then
             # sends F5 to dolphin's window id
             xdotool key --clearmodifiers "$WindowIDbSeven" F5
         fi

          # clears array
          WIN=()

         sleep 5
     done
1
user829010

Je suis d'accord c'est un problème avec Dolphin. Je ne l'utilise pas, mais j'ai testé certains scripts bash écrits sur un KDE VM et découvert que, même si Dolphin effectue la mise à jour en temps réel dans le dossier de départ, il ne le fait pas sous/dev./shm. J'ai trouvé votre question ici et voté, parce qu'il faut encore y répondre.

Ce que j'ai eu recours à mon script est: xdotool key 'F5'

Ce qui a fonctionné pour mon script, mais n'est pas exactement en temps réel. Mon script génère un tas de fichiers et vous ne pouvez pas le voir se produire, mais une fois terminé, il "appuie" sur "F5" et les fichiers sont visibles.

1
Colin Keenan

xdotool peut envoyer la clé F5 à Dolphin lors d'un événement avec la souris ou chaque fois que sa fenêtre est activée.

Ces commandes s'exécutent indéfiniment afin que vous puissiez en configurer une pour s'exécuter au démarrage.

Trouve la fenêtre avec la classe dolphin et envoie le F5 chaque fois que le pointeur de la souris entre dans la fenêtre:

xdotool search --onlyvisible --class dolphin  behave %@ mouse-enter key F5

Trouve la fenêtre avec la classe dolphin et envoie le F5 chaque fois que le dauphin obtient le focus:

xdotool search --onlyvisible --class dolphin  behave %@ focus key F5
0
user829010