Philippe Scoffoni : Ouvrir un terminal distant dans Nemo
dimanche 19 mars 2017 à 22:19J’ai dû changer de machine tout récemment, et cela passe souvent par une remise en question de son environnement de travail. C’est à ce moment là qu’on se rend compte de tous ces petits « trucs » que l’on avait ajouté de ci de là pour optimiser son travail au quotidien.
Dans mon cas, je viens de passer d’une Ubuntu 14.04 + XFCE à une Ubuntu 16.04 + Cinnamon. J’apprécie ce bureau je dois bien le dire. Mais là n’est pas le sujet de ce billet.
J’utilisais Nautilus avec XFCE. Sous Cinnamon, nous avons par défaut son clone dénommé Nemo. Je travaille souvent sur des machines virtuelles distantes, auxquelles j’accède en ssh via un VPN. J’utilise le gestionnaire de connexions Gigolo pour initialiser les connexions. L’authentification se fait par clé, ce qui me fournit une connexion « instantanée ».
Avec Nautilus, j’utilisais la fonction « Ouvrir dans un terminal » pour lancer un terminal ssh sur la machine virtuelle et exécuter des commandes. En passant sous Nemo, cette fonction existe, mais elle n’ouvre pas une session ssh distante, mais une session locale.
Il est heureusement possible d’ajouter des scripts et des actions dans Nemo. Mes recherches m’ont conduites à cette page qui indique la marche à suivre. Bien que indiqué pour Ubuntu 13, la solution proposée reste valide.
Il convient de placer dans le dossier .local/share/nemo/actions deux fichiers contenant, pour l’un la description du menu à ajouter et pour l’autre un script en Python se chargeant de l’appel du terminal.
Ajout du menu via le fichier remote_terminal.nemo_action
[Nemo Action] Name=Ouvrir un terminal distant Comment=Open current folder in remote terminal Name[de]=Im entfernten Terminal öffnen Comment[de]=Aktuellen Ordner im entfernten Terminal öffnen Exec=Icon-Name=terminal Selection=none Extensions=dir; Dependencies=ssh;
Le script python remote_terminal.py
#!/usr/bin/env python2 # -*- coding: utf-8 -*- import sys import subprocess path = sys.argv[1] if '/sftp:' in path: sftp = path.split('/sftp:', 1)[1] settings = {} options, sep, settings['path'] = sftp.partition('/') for opt in options.split(','): name, sep, value = opt.partition('=') settings[name] = value cmd = ['terminator', '-e', 'ssh %(user)s@%(host)s -t "cd /%(path)s && bash --login"' % settings] else: cmd = ['terminator', '--working-directory', path] subprocess.call(cmd)
J’ai juste changé le terminal appelé en remplaçant gnome-terminal par terminator que je préfère à ce dernier. Le résultat en vidéo.
Réagir à cet article
Article original écrit par Philippe Scoffoni le 19/03/2017. | Lien direct vers cet article
Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).
Original post of Philippe Scoffoni.Votez pour ce billet sur Planet Libre.
Articles similaires
- Philippe Scoffoni : Comment mettre en place l’auto-configuration de comptes de messagerie pour Thunderbird (et d’autres) (18/06/2015)
- Philippe Scoffoni : WordPress : Suivi des temps et affichage d’une information sur un article sans utiliser d’extension (04/07/2015)
- Philippe Scoffoni : Installer Owncloud 8.1 sur Debian 8 avec Nginx et MariaDB (26/07/2015)
- Philippe Scoffoni : Archiver automatiquement vos emails avec Thunderbird (26/08/2015)
- Philippe Scoffoni : Owncloud : optimiser la vitesse de transfert des gros fichiers (03/04/2016)