#1 Le 18/01/2017, à 11:47
- bravorienaredire
[résolu]un menu de lanceurs en bash
Bonjour,
J'ai créé un raccourci, pour info Ctrl+Alt+R,
qui lance :
gnome-terminal -e "sh /home/toto/Scripts/termenu"
Et le "termenu" est un script, comme ceci :
#!/bin/bash
trap ' ' 2
while true
do
clear
echo "============================"
echo "=========== Menu ==========="
echo "============================"
echo " Gedit : 1"
echo " Enter 2 to show calendar 2: "
echo " Enter q to exit the menu q: "
echo "\n"
echo " Votre sélection"
read answer
case "$answer" in
1) gedit ;;
2) cal ;;
q) exit ;;
esac
echo "Appuyer sur un touche"
read input
done
Il y a des petits trucs à voir dedans, je corrigerai.
Bref, ma question, quand je tape donc mon raccourci, qui me lance mon menu, puis "1" pour gedit, celui-ci garde le focus, sur lui.
Mon script perd la main, la boule, il ne sait plus reconnaître 1 ou 2 ou q.
J'ai essayé des commandes, mais rien ne semble fonctionner.
Je ne comprends pas
Dernière modification par bravorienaredire (Le 03/09/2017, à 13:48)
Hors ligne
#2 Le 18/01/2017, à 14:38
- credenhill
Re : [résolu]un menu de lanceurs en bash
hello
démarrer gedit en arrière plan
1) gedit & ;;
Hors ligne
#3 Le 19/01/2017, à 11:39
- bravorienaredire
Re : [résolu]un menu de lanceurs en bash
Bonjour,
C'est un gros mieux (je connaissais le truc), mais Gedit reste au premier plan.
Le terminal passe en second plan et je ne peux pas lancer d'autres programmes/fichiers.
Mais il n'est pas perdu.
C'est un détail : il suffit de cliquer sur sa fenêtre, faire d'autres lancements, ou Quitter avec q.
Je ne sais pas si ça existe, mais en lançant Gedit en "super-super-arrière plan", si le terminal garde la main (le focus quoi)...
Je pourrais aussi passer par des programmes extérieurs, CSM, etc.
Merci credenhill je mets en plus nohup
Hors ligne
#4 Le 20/01/2017, à 11:38
- bravorienaredire
Re : [résolu]un menu de lanceurs en bash
Bonjour,
J'ai amélioré le menu et réglé le problème de d'arrière plan avec un simple délai.
En effet, avec un sleep 4 (ou plus, ça devrait attendre que le programme visé se lance... genre if exist) le menu à le temps d'appliquer le wmctrl.
Ça et des trucs de confort, et le remplir, que je mettrais ici.
En attendant, c'est ça :
#!/bin/bash
trap ' ' 2
while true
do
clear
echo "============================"
echo "=========== Menu ==========="
echo "============================"
echo " Gedit : 1"
echo " Firefox défaut : 2"
echo " Enter q to exit the menu q: "
echo "\n"
echo " Votre sélection"
read answer
echo "\n"
case "$answer" in
1) nohup gedit &
sleep 4
wmctrl -a terminal ;;
2) nohup firefox -p -no-remote default &
sleep 34
wmctrl -a terminal ;;
q) exit ;;
esac
echo "Appuyer sur un touche"
read input
done
Hors ligne
#5 Le 01/09/2017, à 08:50
- bravorienaredire
Re : [résolu]un menu de lanceurs en bash
Bonjour,
Je mets une version très améliorée (mais pas très sobre) de ce script.
Peut être faut-il changer les ~ en /home/toto/
J'ai changé le titre de ce fil.
#!/bin/bash
trap ' ' 2
while true
do
clear
tput setaf 1
tput bold
echo "---------------------------------------------------------------"
echo "----------------------------- MENU ----------------------------"
echo "---------------------------------------------------------------\n"
tput sgr0
tput setaf 3
tput smul
echo "-Fichiers/Dossiers-" # LES FICHIERS
tput sgr0
tput setaf 2
echo " 1 Dossier personnel"
tput setaf 7
echo " 2 Fichiers récents"
echo " 3 Téléchargements"
echo " 4 Images"
echo " 5 CV + Lettre de motivation"
echo " 6 Pôle emploi"
echo " 7 Configuration Conky"
tput cup 6 30 # À partir de là, la SECONDE COLONNE, ligne x etc...
echo " 8 .local/share"
tput cup 7 30
echo " 9 .local/share/applications"
tput cup 8 30
echo " 10 bin"
tput cup 9 30
echo " 11 Scripts"
tput cup 10 30
echo " 12 .local/share/nemo"
echo "\n"
tput setaf 3
tput smul
echo "-Programmes-" # LES PROGRAMMES
tput sgr0
tput setaf 2
echo " 13 Gedit"
tput setaf 7
echo " 131 Gedit ~/Scripts/termenu"
tput setaf 2
tput cup 17 0
echo " 14 Firefox Défaut"
tput setaf 7
echo " 141 Firefox"
echo " 142 Firefox Google"
echo " 143 Firefox Yahoo"
echo " 144 Firefox Free"
echo " 145 Firefox Yootube"
echo " 146 Firefox Google maps"
echo " 147 Firefox Dropbox"
echo " 148 Firefox Sans échec"
echo " 149 Firefox Profils"
tput setaf 2
tput cup 14 30 # À partir de là, la SECONDE COLONNE, ligne x etc...
echo " 16 Thunderbird"
tput setaf 7
tput cup 15 30
echo " 161 Thunderbird --compose"
tput cup 16 30
echo " 162 Thunderbird --compose CV"
tput setaf 2
tput cup 18 30
echo " 17 LibreOffice Writer"
tput setaf 7
tput cup 19 30
echo " 171 LibreOffice Calc heures.ods"
tput cup 21 30
echo " 18 Éditeur Dconf"
tput cup 22 30
echo " 19 Logithèque Ubuntu"
tput cup 23 30
echo " 20 Unity Tweak Tool"
tput cup 24 30
echo " 21 Qbittorrent"
tput cup 25 30
echo " 22 Terminal"
tput cup 26 30
echo " 23 Zim"
tput cup 27 30
echo " 24 QTodoTxt"
#echo "\n"
tput setaf 2
#tput smul
tput cup 28 0
echo "Tapez q pour quitter le menu :"
#echo "\n"
tput sgr0
tput setaf 7
echo "Votre sélection"
tput cup 29 16 # on positionne le curseur
read answer
case "$answer" in
1) nemo & ;;
2) nemo recent:/// & ;;
3) nemo Téléchargements & ;;
4) nemo Images & ;;
5) nemo Documents/'CV + Lettre de motivation' & ;;
6) nemo Documents/'Pôle emploi' & ;;
7) nemo .harmattan-themesOLD/Texture/Celsius/God-Mode/photo-mode/'Configuration Conky' & ;;
8) nemo .local/share & ;;
9) nemo .local/share/applications & ;;
10) nemo nemo bin & ;;
11) nemo Scripts & ;;
12) nemo .local/share/nemo & ;;
13) nohup gedit & ;;
131) nohup gedit ~/Scripts/termenu & ;;
14) nohup firefox -p -no-remote default &
sleep 30 ;; # plus éventuellement
141) nohup firefox -p -no-remote &
sleep 30 ;; # plus éventuellement
142) nohup firefox -p -no-remote Google &
sleep 30 ;; # plus éventuellement
143) nohup firefox -p -no-remote Yahoo &
sleep 30 ;; # plus éventuellement
144) nohup firefox -p -no-remote Free &
sleep 30 ;; # plus éventuellement
145) nohup firefox -p -no-remote Yootube &
sleep 30 ;; # plus éventuellement
146) nohup firefox -p -no-remote "Google maps" &
sleep 30 ;; # plus éventuellement
147) nohup firefox -p -no-remote Dropbox &
sleep 30 ;; # plus éventuellement
148) nohup firefox -safe-mode &
sleep 30 ;; # plus éventuellement
149) nohup firefox -p &
sleep 30 ;; # plus éventuellement
17) nohup sudo dconf-editor & ;;
16) nohup thunderbird &
sleep 15 ;; # plus éventuellement ;;
161) nohup thunderbird --compose & ;;
162) nohup thunderbird -compose "to='*',subject='Réponse à vôtre annonce * *',body='Madame, Monsieur,
Suite à l'annonce parue à Pole Emploi etc.',attachment='~/Documents/CV + Lettre de motivation/cv.docx,~/Documents/CV + Lettre de motivation/lettre de motivation.docx'" & ;;
17) nohup libreoffice --writer & ;;
171) nohup libreoffice --calc ~/libreoffice_prov/heures.ods & ;;
18) nohup sudo dconf-editor & ;;
19) nohup software-center & ;;
20) nohup unity-tweak-tool & ;;
21) nohup qbittorrent & ;;
22) gnome-terminal & ;;
23) nohup zim & ;;
24) nohup qtodotxt & ;;
q) exit ;;
esac
#tput cuu1 # On remonte
#tput el # On efface jusqu'à la fin de ligne
# sleep 4 # Une pause, au minimum, plus éventuellement
#wmctrl -Fa Terminal # Cette fenêtre, exactement ce nom
#clear
#echo "Appuyer sur un touche" # et à la fin de celle-ci...
# tput cup 20 22 # Voilà, ici !
# read input
# exit
done
Dernière modification par bravorienaredire (Le 01/09/2017, à 08:53)
Hors ligne
#6 Le 01/09/2017, à 09:25
- kholo
Re : [résolu]un menu de lanceurs en bash
salut,
c'est du haut vol mais tu devrais regarder le script de Hizoka
sinon tu peux aussi utiliser le pid de ton script pour le rappeler à la place de wmctrl -a terminal
pour ~ utilise $HOME
je te suis !
Hors ligne
#7 Le 01/09/2017, à 11:20
- bravorienaredire
Re : [résolu]un menu de lanceurs en bash
Salut,
Pour choisir plusieurs programme/dossier/fichier à lancer en même temps ?
Même moi, je ne fait pas cela, je n'en ai pas besoin, donc des efforts pour rien, peut-être.
Pour wmctr, l'idée d'origine c'était :
- Lancer termenu avec ctrl+r
- Taper un N° pour lancer un programme
- Au bout d'un moment, revenir dans termenu...
- ... Pour qu'il se ferme, sans fermer le programme qu'on à lancé.
En fait, j'ai désactivé tout cela, parce que ça m'empêchait des souplesses, pour pouvoir lancer d'autre programme par exemple.
Hors ligne
#8 Le 01/09/2017, à 11:40
- kholo
Re : [résolu]un menu de lanceurs en bash
ok
un petit oublie je pense
ligne 11 :ajouter -e sinon pas interprété
echo -e "---------------------------------------------------------------\n"
ligne 40 : idem
echo -e "\n"
et q n'est pas marqué dans le menu...
et éventuellement ligne 158
q|quit|0) exit ;;
et
*) exit 1 ;;
exit 1 ou une fonction de gestion des erreurs
Hors ligne
#9 Le 03/09/2017, à 13:49
- bravorienaredire
Re : [résolu]un menu de lanceurs en bash
Bonjour et Merci, je vais voir tout cela.
Hors ligne