Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Sat 16 Dec 2017, 06:53
All times are UTC - 4
 Forum index » House Training » Users ( For the regulars ) » Pour les francophones
« Commandeur de minuit », v. 4.8.19
Moderators: Béèm, darkerror05
Post new topic   Reply to topic View previous topic :: View next topic
Page 2 of 2 [23 Posts]   Goto page: Previous 1, 2
Author Message
Argolance


Joined: 06 Jan 2008
Posts: 3148
Location: PORT-BRILLET (Mayenne - France)

PostPosted: Sat 18 Nov 2017, 08:29    Post subject:  

Quote:
Mon script fonctionne comme suit : il interroge la base de données (BdD) des applis
actives en mémoire et :
-- s'il n'y a aucune mention d'un « mc » dans cette BdD, le script lance MC;
-- si cette BdD contient mention d'un mc en usage dans l'ordi, le script ferme MC.
C'est plus clair ?

J'entends bien mais ce que j'essaie de te dire c'est que le script "allume" bien l'application mais ne "l'éteint" pas, du moins chez moi?
S'il ne faut qu'une instance de mc, pourquoi ne pas en empêcher une deuxième par un simple exit (avec au besoin un message genre Xdialog ou même un beep d’avertissement), plutôt qu'un kill radical ou tout autre méthode douce d'élimination? La meilleure façon de fermer un programme n'est-elle pas encore de cliquer sur "Quitter" ou sur la petite croix à droite de la barre de titre?
Quote:
Tous les usagers n'incluent pas les mêmes paramètres dans .Xdefaults ou .Xresources.
Le développeur précise des paramètres sur sa ligne de commande pour être sûr que
l'appli les utilisera en vue d'un certain résultat.

Je disais ça à simple titre indicatif!

_________________

Back to top
View user's profile Send private message Visit poster's website 
musher0


Joined: 04 Jan 2009
Posts: 11280
Location: Gatineau (Qc), Canada

PostPosted: Sat 18 Nov 2017, 08:44    Post subject:  

Je vois.

Remplace les lignes 10, 11 et 12 de mon script par celles-ci et ça devrait fonctionner.
Code:
   kill -s 9 `psawk`
#   wID="`wmctrl -l | awk '$4=="mc" { print $1 }'`"
#   wmctrl -i -a $wID

(Si tu n'as pas l'utilitaire wmctrl, cela expliquerait le pépin.)

_________________
musher0
~~~~~~~~~~
"Logical entities must not be multiplied beyond necessity." | |
« Il ne faut pas multiplier les entités logiques sans nécessité. » (Ockham)
Back to top
View user's profile Send private message 
Argolance


Joined: 06 Jan 2008
Posts: 3148
Location: PORT-BRILLET (Mayenne - France)

PostPosted: Sat 18 Nov 2017, 10:58    Post subject:  

Quote:
(Si tu n'as pas l'utilitaire wmctrl, cela expliquerait le pépin.)

wmctrl est bien présent sur ma machine.

Icône mc.desktop sur mon bureau, la méthode kill allume et éteint le programme, comme un commutateur. Mais avec wmctr cela ne marche pas. mc se lance bien mais ne se ferme pas.
Bon je relève ce "pépin" uniquement pour quelqu'un de tes utilisateurs qui se retrouverait dans la situation.
Cette idée de bouton commutateur est singulière.
Elle peut, dans certains cas et pour certains programmes être vraiment très utile (comme lorsqu'il s'agit de lancer ponctuellement un service, puis de l'interrompre et de le relancer d'un simple clic). Et encore, à condition que le bouton soit sur le bureau, car à partir du menu, ça a beaucoup moins d'intérêt, sinon aucun, du moins à mon avis, évidemment.
En tout cas, cette idée peut aussi ne pas forcément convenir à tous les utilisateurs.
Toujours à titre indicatif (pas parce que c'est "mieux", hein, c'est bien entendu?) parce que ça correspond à ma propre configuration et aux préréglages par défaut de urxvt, j'opte pour:
Code:
#!/bin/sh

#VERSION="4.8.19"

instance="`ps | awk '$4=="mc" { print $1 }'`"
[ "$instance" ] && beep -l 100 -f 400 && exit

   urxvt -g 100x40 -e mc /mnt/home /root &

qui émet juste un bip si on tente de lancer mc alors qu'il est déjà ouvert.
Si on veut un message en plus (ou à la place):
Code:
[ "$instance" ] && Xdialog --title " v$VERSION" --beep --icon /usr/local/lib/X11/pixmaps/error.png --msgbox "$(gettext 'Midnight Commander is already running...')" 0 0 && exit

Et puis:
Code:
Terminal=false

dans le fichier desktop, sinon y a deux fenêtres de console qui s'ouvrent.

Cordialement.
171118_163042_806x536_easyshot.jpg
 Description   
 Filesize   149.9 KB
 Viewed   87 Time(s)

171118_163042_806x536_easyshot.jpg


_________________

Back to top
View user's profile Send private message Visit poster's website 
musher0


Joined: 04 Jan 2009
Posts: 11280
Location: Gatineau (Qc), Canada

PostPosted: Sat 18 Nov 2017, 12:17    Post subject:  

Salut, Argolance.

Si tu veux suggérer un 2e ou même un 3e scipt de lancement pour MC, libre à toi.

Le développeur ne peut pas deviner ce qu'il y a dans les fichiers .Xdefaults et
.Xresources d'un utilisateur. C'est pourquoi les lignes de commande avec
paramètres de configuration ont toujours leur place et ne doivent jamais être
considérées comme des erreurs. Selon moi, il est même préférable de livrer un
produit avec de telles lignes pour s'assurer du résultat voulu.

Pour ma part, j'ai refait l'archive *.pet en corrigeant les faux pas et oublis notés
ci-dessus. J'ai totalement éliminé du script la solution avec wmctrl en fin de compte.

En attendant de pouvoir entrer avec xenialPup7* par ftp dans le dépôt qu'augras
met si aimablement à ma disposition, voici, valide pour les prochains 30 jours,
l'archive corrigée :
mc-4.8.19_exec1.pet http://www95.zippyshare.com/v/F4Xmu66R/file.html

Merci, Argolance, de ces échanges qui ont permis d'améliorer le produit.

À+

~~~~~~~~~~~~~
* (Il faut je sois absolument dans DPupStretch-7fr pour téléverser des archives
dans le dépôt. Je vais en parler à augras.)

~~~~~~~~~~~~~
Au sujet de
Code:
#!/bin/sh
#VERSION="4.8.19"
instance="`ps | awk '$4=="mc" { print $1 }'`"
[ "$instance" ] && beep -l 100 -f 400 && exit
   urxvt -g 100x40 -e mc /mnt/home /root &
ce n'est pas parce que c'est toi, on voit ça souvent chez BarryK et d'autres, mais
j'ai toujours trouvé que ce genre de formule avec « && exit » était une entorse à
la logique.

Tu pourrais avoir une forme
if...then...else...fi
Code:
#!/bin/sh
#VERSION="4.8.19"
instance="`ps | awk '$4=="mc" { print $1 }'`"
if [ "$instance" ];then
     beep -l 100 -f 400
else
     urxvt -g 100x40 -e mc /mnt/home /root &
fi


ou

[ "$variable" ] && telle chose || autre chose.
Code:
#!/bin/sh
#VERSION="4.8.19"
instance="`ps | awk '$4=="mc" { print $1 }'`"
[ "$instance" ] && beep -l 100 -f 400 || urxvt -g 100x40 -e mc /mnt/home /root &

Ces formes permettent de sortir normalement du « raisonnement » sans y couper
court.

_________________
musher0
~~~~~~~~~~
"Logical entities must not be multiplied beyond necessity." | |
« Il ne faut pas multiplier les entités logiques sans nécessité. » (Ockham)

Last edited by musher0 on Thu 30 Nov 2017, 20:32; edited 1 time in total
Back to top
View user's profile Send private message 
Argolance


Joined: 06 Jan 2008
Posts: 3148
Location: PORT-BRILLET (Mayenne - France)

PostPosted: Sat 18 Nov 2017, 13:07    Post subject:  

Bonsoir musher0,
Quote:
Si tu veux suggérer un 2e ou même un 3e scipt de lancement pour MC, libre à toi.
Je n'avais pas autre chose en tête: suggérer pour information et non pas vouloir substituer un script à un autre! Les points de vue peuvent se compléter sans se contredire.
Quote:
Merci, Argolance, de ces échanges qui ont permis d'améliorer le produit.
C'est un plaisir, en espérant qu'il soit partagé? En tout cas utile...
J'utilise indifféremment le if et consorts, ainsi que les && et ||, des fois les deux. J'ai en tout cas remarqué que les comportements ne sont pas les mêmes, malgré un semblant d'équivalence. Les && ont cet avantage je crois, de ne continuer la commande que si celle qui précède est exécutée avec succès, ce qui n'est pas le cas avec if.
Bon, je n'ai pas de leçon à donner mais bien plutôt à prendre (mais pas à "recevoir"! Wink), n'étant pas un expert, loin de là et n'ayant d'ailleurs aucune formation, si ce n'est celle du "on-the-job"! Cool
[EDIT]: n'empêche, et si je peux me permettre, le fait de "flinguer" une application sans sommation est, à moins d'y être contraint, une sorte "d'entorse à la logique" qui n'a jamais été très recommandée! Rolling Eyes
Au bout du compte, l'important reste que ça fonctionne, n'est-ce-pas?

À la tienne, Étienne et à la revoyure! Very Happy

_________________

Back to top
View user's profile Send private message Visit poster's website 
musher0


Joined: 04 Jan 2009
Posts: 11280
Location: Gatineau (Qc), Canada

PostPosted: Tue 21 Nov 2017, 17:01    Post subject:  

Rebonjour, la compagnie !

Voici un 2e script pour lancer Midnight Commander, inspiré de la suggestion
d'Argolance ci-dessus.

Sur mon ordi, rien à faire, beep ne fonctionne pas.

Alors j'ai concocté une onde carrée avec sox. Rien de bien original, les recettes se
trouvent ici et là dans Internet.
Code:
sox -n notette7.wav synth 0.20 square 111

(C'est un la en clé de fa, 1er espace, que peut chanter un bariton ou une basse,
mais avec un vague timbre de clarimette. Oui-oui, de « clarimette ». Laughing Didier a
fait bien pire sur le fil DeepL !!!) MDR

Ensuite, à l'exécution, on module ce son avec l'utilitaire play de sox:
Code:
play notette7.wav echos 0.8 0.7 700.0 0.25 900.0 0.3 chorus 0.7 0.9 55.0 0.4 0.25 2.0 -t
en se servant des effets chorus et echos.

Il faut, bien sûr, avoir le progiciel sox sur son Toutou. (2e de la liste)
http://augras.eu/puppy_linux/?dir=musher0/Dpup_Stretch/Applis-gnles/Son_et_Musique

Sinon, aplay jouera ce court la grave sans effet sonore.

Finalement, il faut aemenu. Un petit menu pour fermer MC s'affichera si MC est
en activité. (Voir illustration.)

Alors voici :
Code:
#!/bin/sh
# mc2.sh # Pour lancer Midnight Commander
# Dép. : / Dep.: awk, aemenu ordinaire, aplay.  # Optionnel : / Optional: play (from / de sox)
#
# © Christian L'Écuyer, Gatineau (Qc), Canada, 30 août 2016 # (Alias musher0 [forum Puppy].)
# Rév.  15 sept. 2016; 19 et 27 févr. 2017, 21 nov. 2017.
################# # https://opensource.org/licenses/GPL-3.0
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#       This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#       You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
##########
#    Ce programme est libre : vous pouvez le redistribuer ou modifier
#    selon les termes de la Licence Publique Générale GNU publiée par la
#    Free Software Foundation (v. 3 ou toute version ultérieure choisie par
#    vous).
#        Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS
#    AUCUNE GARANTIE, ni explicite ni implicite, y compris des garanties de
#    commercialisation ou d'adaptation à un but spécifique. Pour obtenir plus
#    de détails, veuillez vous reporter au texte de cette licence à
#    https://opensource.org/licenses/GPL-3.0 pour le texte officiel, à
#    http://www.linux-france.org/article/these/gpl.html pour une traduction et à
#    https://fr.wikipedia.org/wiki/Licence_publique_générale_GNU pour une
#    explication en français.
################
psawk () { ps | awk '$4=="mc" { print $1 }'; }

if [ "`psawk`" ];then # Si actif / If active
   if [ -f /usr/bin/sox ];then
      play -q /usr/share/audio/notette5.wav echos 0.8 0.7 700.0 0.25 900.0 0.3 chorus 0.7 0.9 55.0 0.4 0.25 2.0 -t &
   else
      aplay /usr/share/audio/notette5.wav &
   fi

   echo -e "   cmd \"   _________________________\" \" \"
menu \"-=> MC est en activité. <=- \"
   cmd \" \" \" \"
   cmd \"Si oui, cliquer sur la ligne ci-contre.\" \" \"
#   cmd \"          sinon, cliquer ailleurs.\" \" \"
   cmd \" \" \" \"
end
cmd \"            Fermer MC ?           \" \"killall -q mc\"
cmd \"         -------------------\" \" \"" > /tmp/menuMC # -s 9 `psawk`\""
   aemenu -rc /tmp/menuMC 2>/dev/null
   rm -f /tmp/menuMC

else # Sinon
   FnT="fn xft:Monaco:pixelsize=14:antialias=true:autohint=true"
# Monaco # LiberationMono # DejaVuSansMono # ok
   FadE="fade 70 -fadecolor "#94A495""
   TrnsP="tr -sh 45 -tint bisque4"
   ColoR="fg cornsilk -bg SaddleBrown -cr green"
   IcoN="icon /usr/share/icons/MidnightCommander.png"
   HoriZ="`xwininfo -root | awk '$1=="Width:" { print $2/6 }'`"
   GeoM="g 133x37+$HoriZ+110";BrdR="sr +st -b 20"

#   wmctrl -s 1 # optionnel
# Avec transparence :
   urxvt +sb -$IcoN -$FnT -$TrnsP -$GeoM -$ColoR -bc -$BrdR +tcw -e mc /mnt/home /root/.wmx
# "$@"
# Sans :
#   urxvt +sb -$IcoN -$FnT +tr -$GeoM -$ColoR -bc -$BrdR +tcw -e mc /mnt/home /root/.wmx
# "$@"
fi

Bonne fin de journée !
mc2.sh.zip
Description  Le script ci-dessus, zippé. Déballer dans /root/my-applications/bin et rendre exécutable.
zip

 Download 
Filename  mc2.sh.zip 
Filesize  1.83 KB 
Downloaded  11 Time(s) 
Fermer-MC-2.jpg
 Description   
 Filesize   135.19 KB
 Viewed   47 Time(s)

Fermer-MC-2.jpg

notette5.wav.zip
Description  Déballer dans /usr/share/audio.
zip

 Download 
Filename  notette5.wav.zip 
Filesize  1.3 KB 
Downloaded  12 Time(s) 

_________________
musher0
~~~~~~~~~~
"Logical entities must not be multiplied beyond necessity." | |
« Il ne faut pas multiplier les entités logiques sans nécessité. » (Ockham)
Back to top
View user's profile Send private message 
did18

Joined: 19 Nov 2014
Posts: 328

PostPosted: Fri 24 Nov 2017, 06:54    Post subject:  

Bonjour

Quote:
Didier a fait bien pire sur le fil DeepL !!!) MDR


Ce n'est pas de ma faute, c'est ma "boite à 1" qui a fait des sienne...
Elle a probablement attrapé un coup de froid, heu... Un virus... ça semble logique ne cette saison.

Bonne journée.
Back to top
View user's profile Send private message 
musher0


Joined: 04 Jan 2009
Posts: 11280
Location: Gatineau (Qc), Canada

PostPosted: Fri 24 Nov 2017, 09:41    Post subject:  

did18 wrote:
Bonjour

Quote:
Didier a fait bien pire sur le fil DeepL !!!) MDR


Ce n'est pas de ma faute, c'est ma "boite à 1" qui a fait des sienne...
Elle a probablement attrapé un coup de froid, heu... Un virus... ça semble logique ne cette saison.

Bonne journée.
Laughing Wink
_________________
musher0
~~~~~~~~~~
"Logical entities must not be multiplied beyond necessity." | |
« Il ne faut pas multiplier les entités logiques sans nécessité. » (Ockham)
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 2 of 2 [23 Posts]   Goto page: Previous 1, 2
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » House Training » Users ( For the regulars ) » Pour les francophones
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0587s ][ Queries: 15 (0.0062s) ][ GZIP on ]