Configurer lightdm

Depuis quelques versions d’Ubuntu déjà, le bon vieux GDM a été remplacé par Lightdm. A priori, ce display manager n’a pas plus de défauts que l’ancien. Cependant, pour une raison mystérieuse, l’interface graphique de configuration a disparu et il n’est plus aussi évident de spécifier des paramètres basiques comme l’arrière plan à utiliser, le choix d’afficher ou non la liste des utilisateurs, ou même de désactiver la session invité !

C’est donc dans /etc/lightdm/lightdm.conf que ça se passe.

Pour masquer la liste des utilisateurs, ce qui permet de ne pas donner votre identifiant au premier venu, rajouter la ligne :
greeter-hide-users=true
et pour désactiver la session invité :
allow-guest=false
et enfin, pour rendre le tout un peu plus joli, avec Xubuntu, éditer le chemin de l’arrière plan dans le fichier /etc/lightdm/lightdm-gtk-greeter.conf.

Publié dans Personalisation, Ubuntu | Marqué avec , | Laisser un commentaire

Un script pour télécharger des images du site wallbase

Si vous connaissez le site wallbase — qui héberge des images de qualité mais a le très grave défaut de ne pas en spécifier la provenance ni la licence — vous avez sans doute déjà regretté de ne pas pouvoir importer massivement sur votre ordinateur les fichiers que vous aviez, par exemple, ajoutés à vos favoris, devant pour les copier chez vous faire un travail fastidieux et répétitif d’ouverture de page et d’enregistrement d’images. C’est en voulant m’éviter ce travail que j’ai commencé à vomir hier soir un script bash permettant d’automatiser cette tâche. Il suffit de le mettre en présence d’un fichier source d’une page de wallbase en présence de ce script pour que, moyennant quelques coups de wget, il télécharge les images listées sur cette page.

Voici ce petit script (sous licence GPL v3, oui, pour un si petit script) :

#!/bin/bash

# SCRIPT BASH DE TÉLÉCHARGEMENT D’IMAGES DE WALLBASE
# Version 0.1
# Auteur : Gabriel P.
# Licence : GPL v.3
# Script permettant de télécharger des fichiers présents sur une page de liste du site wallbase.cc
# Le script nécessite d’être mis d’être mis dans le même répertoire qu’un fichier html source d’une page du site wallbase contenant une liste d’images (résultat de recherche, page de favoris,…), mis sous le nom de « liste-wallbase.html ».
# Attention, avec l’utilisation de la pagination « infinite », seules les images normalement affichées sur une page sont téléchargées. Il est pour l’instant nécessaire de télécharger un fichier html par page de résultat et de les traiter indépendamment pour pallier à ce problème. Vous pouvez le réduire en augmentant la valeur du champs « thumbs per page » dans les préférences du site.
# Commandes unix nécessaires : mkdir, echo, cat, grep, cut, wget, cd, mv, rm et rmdir.

mkdir images/ temp/
# Découpage et téléchargement
echo "## NOUVELLE SESSION ##" >> temp/erreurs.log
echo "# liste-wallbase.html -> pages.html #" >> temp/erreurs.log
cat liste-wallbase.html | grep /wallpaper/ >> temp/pages.html 2>> temp/erreurs.log
echo "# pages.html -> pages.list #" >> temp/erreurs.log
cut -d\" -f2 temp/pages.html >> temp/pages.list 2>> temp/erreurs.log
echo "# pages.list -> images-pages.html #" >> temp/erreurs.log
wget -i temp/pages.list -O temp/images-pages.html
echo "# images-pages.html -> images.html #" >> temp/erreurs.log
cat temp/images-pages.html | grep " > temp/images.html 2>> temp/erreurs.log
echo "# images.html -> images.list #" >> temp/erreurs.log
cut -d\' -f2 temp/images.html >> temp/images.list 2>> temp/erreurs.log
echo "# images.list -> io.[jp|pn]g #" >> temp/erreurs.log
cd images/
wget -i ../temp/images.list 2>> ../temp/erreurs.log
# Nettoyage et fin
cd .. && mv temp/erreurs.log erreurs.log && rm temp/* && rmdir temp

Archive contenant le script : telechargement-wallbase.sh-0.1.tar

Publié dans Général, Ligne de commande | 3 commentaires

Screen

J’avais entendu parlé depuis assez longtemps de screen mais ne me suis résolu à l’essayer il n’y a que quelques jours, pour l’adopter quasiment immédiatement.

Présentation

Mais qu’est‐ce que screen ? Screen est un multiplexeur de terminaux, c’est‐à‐dire un utilitaire qui permet d’ouvrir plusieurs terminaux au sein d’une même console. Bien que la légitimité d’un tel outil puisse être remise en cause par le fait qu’il soit possible d’ouvrir autant de terminaux qu’on le souhaite dans un environnement graphique moderne, screen permet de beaucoup se simplifier la vie de l’utilisateur quotidien de la ligne de commande.

En effet, dans un environnement graphique fenêtré comme Gnome, KDE ou Xfce, l’ouverture d’un terminal se fait, dans la configuration par défaut, à l’aide de la souris, ce qui contraint l’utilisateur à quitter la CLI dès qu’il a besoin d’un nouveau terminal. Dans le cas d’une utilisation en « TTY » de son ordinateur, bien moins courant, l’ouverture d’un nouveau terminal est impossible sans effectuer une nouvelle connexion, et le nombre de terminaux qu’on peut ouvrir est limité à 6. Le problème est le même dans le cas d’une connexion en ssh à un serveur.

C’est à ces limitations que screen permet de pallier en ouvrant plusieurs terminaux au sein d’une même console. En voilà un exemple concret, screen, avec trois fenêtres ouvertes et mises côte à côte :

Utilisation

Comment utiliser screen ?
Pour ouvrir une session screen, il suffit de taper dans un terminal « screen ». Les commandes de screen se font en tapant une combinaison de touches, ctrl+A par défaut, suivie d’une lettre. Voici une liste des commandes les plus couramment utilisées :

Navigation entre les terminaux.

Les commandes de screen sont sensibles à la casse. Par exemple, « ctrl+a » suivi de « a » et « ctrl+a » suivi de A auront un effet différent.
ctrl+a suivi de c : Créer un nouveau terminal.
ctrl+a suivi de K : Fermer le terminal courant (kill). Il est préférable de se déconnecter du terminal par ctrl+a ou par exit.
ctrl+a suivi de n : Aller au terminal suivant (next).
ctrl+a suivi de p : Aller au terminal précédent (previous).
ctrl+a suivi de 0 à 9 : Aller au terminal portant le numéro tapé.
ctrl+a suivi de ' : Demander le numéro de terminal où aller. Une invite de commande vous demandera d’entrer le numéro du terminal dans lequel vous souhaitez vous rendre.
ctrl+a suivi de " : Afficher une liste des différents terminaux, avec la possibilité d’y naviguer avec les touches « haut » et « bas » ou « j » et « k » et d’en choisir un avec la touche « entrée ».
ctrl+a suivi de A : Renommer le terminal. Par défaut, le nom est « bash ».
ctrl+a suivi de a : Aller au dernier terminal utilisé.
ctrl+a suivi de S : Séparer la console courante en deux régions disposées l’une au dessus de l’autre (Split) ; les régions ainsi créés peuvent accueillir des terminaux de screen. Par défaut, la région créée ne contient pas de terminal. Créez‐en un ou déplacez‐y en un.
ctrl+a suivi de tabulation : Se déplacer entre les régions de la vue séparée.
ctrl+a suivi de X : Fermer la région active. Le terminal qui y est affiché n’est pas supprimé pour autant.

Gestion de sessions

Screen intègre un système de gestion de sessions. On peut interrompre une session pour la reprendre par la suite.
La commende screen -ls permet d’afficher une liste des sessions en cours. Chaque session est suivie d’un « (Attached) », d’un « (Detached) » ou (moins souvent) d’un « (Dead ???) », qui signifient respectivement que la session est utilisée, c’est‐à‐dire que quelqu’un y est connecté, qu’elle est en veille, c’est‐à‐dire qu’elle n’est utilisée par personne, ou qu’elle semble avoir planté. Une session screen peut donc être arrêtée temporairement et reprise plus tard, lors d’une connexion ultérieure par exemple. Mais comment mettre en veille ou reprendre une session ?
Tout d’abord, il est possible de nommer les session screen pour pouvoir les identifier et les reprendre plus facilement par la suite. Pour ce faire, utilisez la commande « screen -S 'nom de la session' ».
La mise en veille d’une session (détachement) se fait avec une combinaison de touches du même type que les combinaisons de navigations : ctrl+a suivi de d.
Pour détacher screen et fermer la session, utilisez ctrl+a suivi de DD.
Afin de reprendre une session screen (rattacher), utilisez la commande « screen -r » suivie du numéro (obtenu par « screen -ls »ou du nom de la session que vous voulez rattacher.
Notez qu’il est aussi possible de partager des sessions screen, c’est‐à‐dire qu’on peut rattacher une session déjà active. La commande nécessaire à ce tour de magie est « screen -x » suivi du nom ou du numéro de la session. Les deux instances afficheront la même chose simultanément et la saisie pourra se faire indifféremment dans l’une ou dans l’autre. Cette fonctionnalité est très utile pour l’assistance à distance.

Autres commandes utiles

ctrl+a suivi de F : Redimentionner la fenêtre pour l’adapter à celle du terminal ; surtout utilisé lors des partages de sessions (Fit).
ctrl+a suivi de H : Enregistrer ce qui s’affiche à l’écran dans un fichier ~/home/screenlog.[n° de la console].
ctrl+a suivi de esc : Entrer en mode défilement et copie qui permet de se déplacer dans le terminal actif à l’aide des touches fléchées ou h j k l.
ctrl+a suivi de entrée, en mode défilement et copie : Commencer la sélection, un second appui sur entrée arrêtera la sélection et placera le texte sélectionné dans le presse papier de screen.
ctrl+a suivi de ] : Coller le contenu du presse papier.
ctrl+a suivi de ? : Afficher la liste des commandes.

Personalisation

La configuration de screen se fait simplement grâce à un fichier de configuration. Copiez le fichier /etc/screenrc dans votre répertoire personnel sous le nom de .screenrc pour l’éditer.

Quelques éléments de configuration

Supprimer le message de démarrage

Pour supprimer le message au démarrage de screen, votre .screenrc doit contenir :
startup_message off

Afficher une barre de statut en bas de la session screen

Par défaut, screen n’affiche aucune information, ce qui n’est pas pratique pour connaître le terminal dans lequel on se trouve. Il est possible d’afficher une barre de statut en ajoutant ces lignes à votre .screenrc :
hardstatus on # Activer la barre de statut
hardstatus alwayslastline # Afficher la barre de statut à la dernière ligne
hardstatus string '%{= db}%H | %= %?%-Lw%?%{dw}%n*%f %t%?%u)%?%{= db}%?%+Lw%?%?%= | %d/%m %c' # Configuration de la barre de statut.

La dernière ligne permet de configurer ce qu’affichera la barre de statut. Celle‐là est celle que vous pouvez voir sur la capture d’écran ci‐dessus.

Combinaisons de touches personnalisées

Il est possible de définir des commandes personnalisées de la manière suivante :
bind '#1' #2#1 est la touche à laquelle assigner la commande (qui sera tapée après ctrl+a) et #2 la commande à lancer avec cette combinaison de touches.
Par exemple, bind 'V' split -v permet de séparer verticalement screen en deux régions grâce à l’enchaînement ctrl+a puis V.
Pour changer la séquence d’échappement (ctrl+a par défaut), il faut ajouter au .screenrc :
escape ^bb où b est la nouvelle lettre d’échappement.
Notez qu’il est nécessaire d’entrer deux fois cette lettre. Cette personnalisation est très utile lorsqu’on compte lancer des sessions screen les unes dans les autres, comme lors d’une connexion en ssh ; chaque session a alors sa propre séquence d’échappement et peut être contrôlée sans influence sur les autres.

Lancer screen au démarrage d’une session bash

Ajouter une ligne « screen » à votre ~/.bashrc lancera screen à l’ouverture d’une session (y compris dans un terminal graphique) mais la session screen ouverte ouvrira elle-même récursivement des terminaux jusqu’à avoir atteint le nombre de 40. Pour pallier à cette erreur et lancer screen correctement à caque connexion, il est nécessaire d’ajouter « [ -z "$STY" ] && exec screen » à votre ~/.bashrc.

À propos de byobu

Depuis la version 10.04, Ubuntu intègre une couche d’amélioration à screen, byobu, qui permet, outre les commande classiques, l’utilisation de raccourcis allant de F2 à F9 pour une utilisation simpléfiée ainsi qu’une interface de configuration qui vous évitera de mettre les mains dans l’atroce cambouis des fichiers de configuration.
Personnellement, je préfère de loin un bon vieux screen, sûrement parce que ça fait plus « geek ». En tout cas, c’est moins moche et plus contrôlable !

Publié dans Ligne de commande, Ubuntu | Laisser un commentaire

Un premier article

Bonjour à tous et bienvenue.

Voici le premier article de ce blog destiné à présenter quelques procédures, astuces, logiciels, distributions, bref, tout ce qui me passe par la tête touchant de près ou de loin au monde de GNU/Linux. Étant pour l’instant quasiment exclusivement sous Ubuntu, les articles porteront principalement sur cette distribution, mais il n’est pas exclu que je vous parle d’autres distributions ou de logiciels sans les relier à un S.E. en particulier.
J’espère que vous trouverez mes articles intéressants et vous souhaite une bonne visite.

Publié dans Général | Un commentaire