SSHplus: le SSHmenu pour unity

S’il est un outil dont je ne pourrais me passer et qui freinait considérablement mon passage à unity, c’est bien sshmenu. Une fois paramétré, j’ai sous la main en quelques clics l’accès ssh aux machines que je gère.

Autant lorsqu’on n’en a que quelques unes ça peut rester gérable à la main, autant quand on en a plus d’une trentaine, c’est impensable de ne pas utiliser un outil dédié.

Malheureusement, sshmenu ne fonctionne pas avec unity. Heureusement, il existe un autre logiciel qui permet de faire la même chose et même plus, c’est SSHplus.

Le seul petit point négatif, c’est que le paramétrage se fait pour l’instant en éditant le fichier de configuration, pas avec une interface graphique. Gageons cependant que ce n’est qu’une question de temps avant que ce ne soit corrigé.

Les fonctionalités

  • Lance SSH, rdesktop, et presque n’importe quelle commande ou application
  • Compatible avec le menu de configuration de sshmenu
  • Supporte les dossiers imbriqués (mais pas encore ceux importés depuis sshmenu)

Je n’ai pas testé l’import depuis le fichier de configuration de sshmenu puisque j’en ai profité pour faire du rangement dans mes entrées, et j’ai réécrit le fichier de configuration, ce qui m’a permis de me faire la main sur son fonctionnement.

Installer SSHplus

  • Téléchargez la dernière version sur le repo github
  • Copiez le dans /usr/local/bin
  • Ajoutez lui les droits en exécution par un chmod +x /usr/local/bin/sshplus.py
  • Lancez sshplus.py ou mettez le dans vos applications au démarrage
  • Éditez le fichier de configuration ~/.sshplus comme indiqué ci dessous

La configuration

Quelques infos rapides avant de commencer:

  • Les lignes commençant par le caractère # sont ignorées (commentaires). Ne placez pas de commentaire à la suite de lignes indiquant des commandes
  • Les espaces en début de ligne sont ignorés. Vous pouvez indenter pour que le fichier soit plus clair
  • Les lignes vides sont ignorées (il n’y en a pas dans mon fichier d’exemple à cause de wordpress qui ne sais plus reconnaitre la fin du code)
  • L’instruction sep ajoute un séparateur dans le menu

Les instructions du fichier de configuration ~/.sshplus

C’est très simple, elles se présentent sous la forme NOM | COMMANDE | ARGUMENTS. Ainsi, pour ouvrir un terminal avec la commande « top », il suffit d’ajouter l’instruction suivante:

Afficher top|gnome-terminal|-x top

Pour lancer firefox sur le site des astuces d’absolacom:

Astuces d'Absolacom|firefox|http://astuces.absolacom.com

Accéder à un dossier local (la structure est la même utilisée dans le fichier ~/.gtk-bookmarks)

Dossier temporaire|nautilus|file:///tmp

ou distant

Dossier distant|nautilus|sftp://manu@192.168.10.214

A partir de là, vous voyez que c’est simple de faire ce qu’on veut. Ne reste plus qu’à savoir quoi y mettre, mais si on ne trie pas, c’est vite le bazar et il est impossible de s’y retrouver.

Menus et Sous menus

On peut heureusement créer des sous menus de façon aussi simple: il suffit d’utiliser l’instruction folder:label pour donner un nom à votre dossier, et l’instruction folder: pour remonter d’un niveau et « fermer votre dossier ».

Exemple de fichier de configuration

Je vous donne ci dessous un exemple de fichier de configuration ((fichier fourni par le développeur et adapté par mes soins)). Attention, rien n’est fonctionnel dans le sens ou les adresses et les identifiants sont fantaisistes. A vous d’adapter à votre besoin.

# Lanceurs d'application dans un dossier
folder:Applications
Show top|gnome-terminal|-x top
Dossier distant|nautilus|sftp://manu@192.168.10.214
# Un sous dossier
folder:Absolacom
Astuces d'Absolacom|firefox|http://astuces.absolacom.com
folder:
folder:
#sep ajoute un séparateur
sep
# label: Ajoute un label aux menus
label:Connexions SSH
SSH server1|gnome-terminal|-x ssh root@google.com
SSH server2|gnome-terminal|-x ssh -p 456 manu@192.168.10.23
sep
# Utilise rdesktop pour se connecter à des postes windows
label:Connexions RDesktop
Win-Server 1|rdesktop|-T “Win-Server 1″ 1.2.3.4
Win-Server 3 (with many arguments)|rdesktop|-g 1320×680 -T “Win-Server 3″ -x l -P -r sound:local 1.2.3.6
sep
label:Connexions Putty
# PuTTY
PuTTY-Session 1|putty|-load SavedSession1
PuTTY-Session 2|putty|-load SavedSession2
#Si un fichier de connexion sshmenu est présent, il sera ajouté automatiquement

Comme vous le voyez, c’est simple d’usage et tellement pratique.

Edit du 24/08/12

Je modifie cet article pour apporter deux petites informations.

Tout d’abord, si vous mettez un underscore dans le nom de votre raccourci, vous pourrez avoir un accès rapide en appuyant sur la lettre correspondante. Par exemple, prenons la ligne PuTTY-Session 2|putty|-load SavedSession2 du fichier ci dessus, si je la note Pu_TTY-Session 2|putty|-load SavedSession2 dans mon fichier de configuration, je pourrais lancer ce raccourci en appuyant sur la touche « T ». Pas primordial, mais pratique, d’autant que je n’ai trouvé cette info nulle part, mais en bidouillant.

Ensuite, j’ai eu besoin de transformer un fichier de conf de sshmenu vers sshplus avec des dizaines d’entrées. Impossible d’utiliser le fichier d’origine dans sshplus, il ne me le prenait pas. Étant donné qu’il n’était pas question que je refasse tout à la main dans le cas présent, j’ai écrit un petit programme python pour le convertir. Il fonctionne comme suit en ligne de commande:

  • Sans argument, il va chercher le fichier ~/.sshmenu. S’il ne le trouve pas, le programme s’arrête.
  • En précisant sur la ligne de commande le chemin vers le fichier à transformer on peut préciser le fichier à utiliser. S’il ne le trouve pas, le programme s’arrête.
  • Le résultat converti est affiché dans le terminal. Une fois validé, on peut le rediriger vers un fichier (en général ~/.sshplus)
  • Le programme essaye de récupérer l’organisation des sous dossiers de sshmenu, mais il a des soucis avec les sous-sous-sous-…dossiers. Au pire, il ne vous restera plus qu’à placer les « folder: » au bon endroit. C’est plus rapide que de le faire manuellement quand on a beaucoup d’entrées.

Téléchargez le fichier sshmenu2sshplus , renommez le en « .py » ((wordpress ne me laisse pas les monter en py)), rendez le exécutable et lancez le en lui précisant l’emplacement vers votre fichier .sshmenu, et redirigez la sortie vers votre fichier sshplus. Par exemple:

./sshmenu2sshplus.py /tmp/.sshmenu >> ~/.sshplus

Unity et le dual screen

C’est rien, mais j’ai cherché quelques minutes avant de trouver ce qui était sous mon nez…

Quand on active le dual-screen, il faut désormais se poser la question de savoir sur quel écran on désire le lanceur. Sur les deux? Celui de gauche? Celui de droite?

Ceci dit, si vous ne vous posez pas la question, un petit détail va vous faire rager rapidement: le passage d’un écran à l’autre est gêné par un ralentissement de la souris dû aux bords collants. Grrr!

Bon, c’est tout simple et il faut lire les fenêtres, même quand on croit les connaitre.

Dans le réglage d’affichage, sélectionnez l’écran sur lequel vous voulez le menu et si vous désirez les bords collants.

Changer la couleur de fenêtre de Pidgin

J’ai eu besoin de communiquer par IRC sur un chan particulier, mais j’ai été confronté à un problème auquel je ne m’attendais pas: les administrateurs utilisant mirc (qui utilise par défaut un fond noir), ou irssi (qui fonctionne en console…noire de base) avaient choisi d’avoir des couleurs de polices blanches et jaunes pour certains éléments.

Or, Pidgin utilise un fond blanc, ce qui fait que beaucoup de choses étaient illisibles ((et effectuer des sélections du texte pour arriver à le lire est fatiguant à la longue.)).

Empathy permet de changer les thèmes, et de voir les messages écrits en noir sans tenir compte de la couleur d’origine, mais ne m’affichait pas les personnes présentes dans le salon. Donc, il n’a pas été retenu comme solution.

Mais comme avec le libre, tout est faisable, et un simple changement de couleur devant être à ma portée, j’ai cherché comment modifier Pidgin, et j’ai fini par trouver.

Simple quand on le sait, mais quand on ne sait pas, c’est autre chose…

  • Tout d’abord, ne cherchez pas le dossier pidgin, mais bien purple, qui se trouve dans votre home (~/.purple)
  • Par défaut, pidgin utilise le thème GTK de votre environnement. Sinon, et seulement sinon, il crée un fichier gtkrc-2.0 dans le dossier ~/.purple.
  • Si vous utilisez un gestionnaire de fenêtre basé sur GTK et que vous ne voulez pas changer votre thème général, il faudra créer un fichier nommé gtkrc-2.0 dans le dossier ~/.purple qui apportera des modification à pidgin par rapport à votre thème général.
  • Vous mettrez dans ce fichier texte les informations que vous voulez selon la syntaxe que vous donne la FAQ de Pidgin.((si vous connaissez un peu le CSS, vous devriez comprendre comment fonctionne le fichier))

Dans mon cas, cherchant juste à modifier l’aspect des fenêtres, j’ai utilisé le code fourni:

# Create a style called "inverted" where the text and base (the base color behind the widget) are the reverse of typical.
style "inverted"
{
text[NORMAL] = "#FFFFFF"
base[NORMAL] = "#000000"
}
 
# Apply "inverted" to conversation entry box--where you type.
widget "*pidgin_conv_entry" style "inverted"
 
# Apply "inverted" to conversation history pane--where you read the conversation.
widget "*pidgin_conv_imhtml" style "inverted"

Après avoir relancé Pidgin, c’est tout de suite beaucoup plus lisible ((Il ne s’agit pas du chan qui m’intéressait, mais celui ci présente les mêmes caractéristiques et me sert d’exemple)).

Du texte en couleur, mais lisibleSources: http://developer.pidgin.im/wiki/Using%20Pidgin

Supprimer la demande de confirmation à la sortie de gnome

Ubuntu 10.04 mais devrait être compatible toutes versions

Lorsque vous voulez fermer votre session, que ce soit pour changer d’utilisateur, éteindre ou redémarrer, vous avez une demande de confirmation.
Or, parfois, surtout pour des questions de rapidité, cette confirmation peut être gênante. Il m’est arrivé de partir en laissant le poste sur la confirmation alors que dans mon esprit ma session était fermée, puisque je demandais explicitement la fermeture. Mais j’étais parti avant de voir la demande de confirmation.

Sur mon portable, comme je ne veux pas attendre son redémarrage si j’ai demandé l’arrêt et que je me rends compte ensuite (c’est courant) que j’aurais dû regarder les mails ou un tarif avant de le fermer, je laisse cette confirmation qui me donne une seconde chance d’éviter un redémarrage inutile.
Par contre, sur mon poste de travail où je suis seul à avoir accès, cette confirmation est inutile. D’autant qu’il est allumé quasiment en 24/7.

Pour supprimer la demande de confirmation, il faut lancer l’éditeur de configuration de gnome en appuyant sur ALT+F2 et en entrant la commande gconf-editor.
Ensuite, rendez vous sur apps > indicator-session et cochez la case suppress_logout_restart_shutdown. Fermez ensuite la fenêtre de gconf-editor

Jusqu’à la Hardy, on pouvait régler ce fonctionnement dans les options obtenus avec un clic droit sur l’applet de déconnexion, mais je me rends compte que depuis la 10.04 (je n’ai pas utilisé les versions intermédiaires) cette possibilité n’existe plus.