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
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.
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 bashwhile true; do
- fonctionne en continuPID=$(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 F5fi
- termine le bloc if
sleep 5
- attendez 5 secondes avant de répéter le processusdone
- termine le bloc whileCela 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.
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:
inotify
montrestlp
ce qui met les lecteurs en veillemkdir
/rmdir
plusieurs fois pour déclencher le problèmewhile true ; do mkdir abc ; sleep 1 ; rmdir abc ; sleep 1 ; done
/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?
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
.
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
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.
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