J'exécute une fonction zsh pour ouvrir un fichier .tex dans vim, tout en ouvrant le fichier .pdf associé dans evince. J'utilise actuellement xdotool pour ouvrir un nouvel onglet dans la fenêtre actuelle de gnome-terminal, puis j'exécute vim dans cet onglet. Je préfère désactiver la sortie de ligne de commande de evince et ouvrir vim dans la fenêtre actuelle.
Malheureusement, avec une redirection standard telle que evince name.pdf &> /dev/null
, evince ne s'ouvre pas graphiquement. Puis-je exécuter un programme d'interface graphique à partir d'un terminal sans avoir sa sortie/erreur standard dans ce terminal?
La fonction est ci-dessous:
edittex () {
# open a new terminal tab in current terminal
WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID
# open vim in the new terminal tab
xdotool type "vim [email protected]"
xdotool key KP_Enter
# open evince in old terminal tab
evince "[email protected]"
}
Usage: edittex filename
, en supposant que les fichiers .pdf et .tex sont nommés nomfichier.pdf et nomfichier.tex.
Pour rediriger niquement stderr of evince vers /dev/null
et envoyez-le en arrière-plan en même temps, vous devez spécifier:
evince name.pdf 2> /dev/null &
Où :
evince name.pdf 2>
redirige la sortie des erreurs uniquement/dev/null
redirige la sortie vers le périphérique null
&
envoie le programme en arrière-plan