Page 1 sur 1

[vider la corbeille en quittant] comment faire [résolu]

Publié : mar. 24 mars 2020, 09:29
par nestorburma
bonjour
je voudrais savoir si il existe un moyen automatique pour vider la corbeille et les documents récents ou biens d'autres fichiers à l'arret de l'ordi
merci

Re: [vider la corbeille en quittant] comment faire

Publié : mar. 24 mars 2020, 09:50
par benjarobin
Bonjour,
Utilises tu un environnement de bureau ? Est-ce bien "MATE" ?
Tu peux déjà regarder du coté de : trash-cli
Après le plus simple est de créer un service systemd utilisateur qui appelle trash-empty

Re: [vider la corbeille en quittant] comment faire

Publié : mar. 24 mars 2020, 10:57
par nestorburma
bonjour benjarobin
mon environnement de bureau c'est mate, creer un service je sais pas comment faire

Re: [vider la corbeille en quittant] comment faire

Publié : mar. 24 mars 2020, 13:47
par benjarobin
C'est parfaitement le temps d'apprendre :-)

Re: [vider la corbeille en quittant] comment faire

Publié : mar. 24 mars 2020, 16:08
par nestorburma
re
le principe si je comprends bien ,ce serait de creer un fichier nommé par éxemple trash.service dans /etc/systemd/system,mais quoi mettre dedans et comment l'executer à la fermeture de l'ordi parce que en principe les services dans systemd s'executent au démarrage

Re: [vider la corbeille en quittant] comment faire

Publié : mar. 24 mars 2020, 16:58
par benjarobin
J'ai bien parlé d'un service utilisateur et non d'un service system (désolé je suis débordé)...

Re: [vider la corbeille en quittant] comment faire

Publié : mer. 25 mars 2020, 09:02
par nestorburma
re
je vois pas bien la difference,mais en principe les actions s'éxecutent au démarrage et moi il faudrait que cette action s'éxecute juste avant l'arrêt de la machine
actuellement j'ai un raccourci pour eteindre l'ordi immediatement "systemctl poweroff".C'est pas possible à partir de ce raccourci d'appeller une commande de nettoyage et une fois que cette commande est exécutée d'eteindre la machine ?? une commande qui appelle une action ,je prends un exemple tout bête trash-empty cette commande s'éxecute et une fois exécutée elle appelle systctl poweroff qui eteint la machine
ça c'est l'idée ,mais la réalisation je sais pas faire.

Re: [vider la corbeille en quittant] comment faire

Publié : mer. 25 mars 2020, 09:17
par benjarobin
Un service, cela démarre (en début de session) et cela s'arrête (en fin de session : Donc exécution d'une commande d'arrêt) :-) Et c'est vraiment la meilleur solution ce que je te propose. Dès que j'ai 5s j’essayerai de te pondre un truc.

Re: [vider la corbeille en quittant] comment faire

Publié : mer. 25 mars 2020, 13:37
par nestorburma
re
j'ai regardé dans les parametres de systemctl,il y a une fonction clean,mais je n'arrive pas à la parametrer

Re: [vider la corbeille en quittant] comment faire

Publié : mer. 25 mars 2020, 15:57
par CoudUr
Salut,

Ce que tu cherches à faire n'est pas très compliqué en soit, le contenu de la poubelle se trouve dans deux répertoires.
Vider la corbeille se fait alors en effaçant ce qui se trouve dans ces deux répertoires avec la simple commande "rm" .

Un script ultra simple:

Code : Tout sélectionner

$ cat ~/bin/script_vide_corbeille.sh
#!/usr/bin/env bash
rm -f ~/.local/share/Trash/files/* && 
rm -f ~/.local/share/Trash/info/* 
On le rend exécutable.

Code : Tout sélectionner

$ chmod +x ~/bin/script_vide_corbeille.sh
On automatise le tout à l'aide de systemd, d'abord on crée le répertoire utilisateur qui va bien:

Code : Tout sélectionner

$ mkdir -p ~/.config/systemd/user/ 
Puis en créant le service:

Code : Tout sélectionner

$ cat ~/.config/systemd/user/vide_corbeille.service
[Unit]
Description=Vider la corbeille avant arrêt du système 
DefaultDependencies=no
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/home/ton_nom/bin/script_vide_corbeille.sh
TimeoutStartSec=0

[Install]
WantedBy=shutdown.target
On met en route le service:

Code : Tout sélectionner

$ systemctl --user daemon-reload

Code : Tout sélectionner

$ systemctl --user enable vide_corbeille.service
Voilà en principe à la prochaine extinction du système la poubelle devrait se vider automatiquement.
J'ai fais du très basique et au plus simple (comme bien souvent ^^) en faisant un peu de recherche pour 'systemd --user' tout en étant convaincu qu'il est possible de faire bien mieux.
Des solutions plus professionnelles que celle-ci apparaîtront sûrement ensuite, mais ça te donne un exemple de ce qu'il est possible de faire .
;)

Re: [vider la corbeille en quittant] comment faire

Publié : mer. 25 mars 2020, 16:28
par papajoke
bonjour
CoudUr a écrit : mer. 25 mars 2020, 15:57 ExecStart=/home/ton_nom/bin/script_vide_corbeille.sh
ou ?
plutôt mettre "le vidage" à ExecStop et mettre une function vide qui retourne true à ExecStart (plus de before=*)

car pas sur d'avoir un shutdown.target en mode user ! nous n'avons pas plutot un logout bien avant l’extinction du pc ?
et ici nous gérons + la déconnexion que l’arrêt ce qui ne semble plus normal en mode user

Re: [vider la corbeille en quittant] comment faire

Publié : mer. 25 mars 2020, 17:08
par nestorburma
bonjour papajoke
le script de vidage il fonctionne et je peux le lancer avec un raccourci,donc ce qu'il faudrait c'est que dans le script de vidage il y ait une instruction à la fin pour appeller systemctl poweroff pour eteindre l'ordi

Re: [vider la corbeille en quittant] comment faire

Publié : mer. 25 mars 2020, 17:35
par benjarobin
@CoudUr Hum, as tu testé ton service ? Il ne devrait pas faire correctement le boulot...

Normalement ceci suffit (avec ton utilisateur) :

Code : Tout sélectionner

sudo pacman -S trash-cli
mkdir -p ~/.config/systemd/user/
Créer le fichier ~/.config/systemd/user/empty-trash.service

Code : Tout sélectionner

[Unit]
Description=Empty trash

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/true
ExecStop=/usr/bin/trash-empty

[Install]
WantedBy=default.target
Et finalement active le service

Code : Tout sélectionner

systemctl --user enable --now empty-trash
Attention si le "lingering" est activé, la corbeille n'est pas vidé à la fermeture de la session, la suppression se fera durant l'extinction du PC

Re: [vider la corbeille en quittant] comment faire

Publié : mer. 25 mars 2020, 17:42
par waitnsea
AMHA une corbeille vidée non examinée auparavant ... autant supprimer les dossiers/fichiers d'emblée sans passer par la corbeille...

Re: [vider la corbeille en quittant] comment faire

Publié : mer. 25 mars 2020, 18:54
par nestorburma
re
j'ai résolu mon problème j'ai rajouté une ligne à la fin, j'y suis allé au pif
$ cat ~/bin/script_vide_corbeille.sh
#!/usr/bin/env bash
rm -f ~/.local/share/Trash/files/* &&
rm -f ~/.local/share/Trash/info/*
rm -f ~/.local/share/recently-used.xbel
systemctl poweroff
ça marche,je clique sur le raccourci ça vide la corbeil ça efface les documents récents et ça éteint l'ordi
merci à tous

Re: [vider la corbeille en quittant] comment faire

Publié : mar. 31 mars 2020, 18:31
par CoudUr
benjarobin a écrit : mer. 25 mars 2020, 17:35 @CoudUr Hum, as tu testé ton service ? Il ne devrait pas faire correctement le boulot...
Lorsque je l'ai testé oui cela fonctionnait bien, chez toi il ne fonctionne pas ?

Re: [vider la corbeille en quittant] comment faire [résolu]

Publié : mer. 01 avr. 2020, 06:50
par nestorburma
bonjour CoudUr
je n'ai pas crée de service ,j'ai juste utilisé ton script dans lequel j'ai rajouté 2 lignes ,une pour vider les documents récents et une pour eteindre l'ordi

Re: [vider la corbeille en quittant] comment faire [résolu]

Publié : ven. 03 avr. 2020, 16:11
par CoudUr
nestorburma a écrit : mer. 01 avr. 2020, 06:50 bonjour CoudUr
je n'ai pas crée de service ,j'ai juste utilisé ton script dans lequel j'ai rajouté 2 lignes ,une pour vider les documents récents et une pour eteindre l'ordi
Salut,

Oui je sais il n'y a pas de souci du moment que ça te convient .
Mon message s'adressait à @benjarobin c'est pour cette raison que j'ai cité son message ;)