Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Pour en savoir un peu plus sur l'équipe du forum.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 18/01/2017, à 12: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, à 14:48)

Hors ligne

#2 Le 18/01/2017, à 15: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, à 12: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, à 12: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, à 09: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, à 09:53)

Hors ligne

#6 Le 01/09/2017, à 10: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 wink
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 ! wink

Hors ligne

#7 Le 01/09/2017, à 12: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, à 12: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, à 14:49

bravorienaredire

Re : [résolu]un menu de lanceurs en bash

Bonjour et Merci, je vais voir tout cela.

Hors ligne