PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Guillaume Vaillant : mémo telnet…

mercredi 3 octobre 2012 à 16:25

Quelques exemple de session telnet pour tester divers protocoles texte (HTTP, SMTP, …).

Si l’on veut tester les versions sécurisées de ces protocoles, il suffit d’utiliser la commande s_client de OpenSSL à la place de telnet:

openssl s_client -connect serveur:port

HTTP

Précision:

HEAD ou GET en HTTP 1.0:

$ telnet serveur 80
Trying serveur
Connected to serveur
Escape character id '^]'.
HEAD [http://vhost]/uri HTTP/1.0

HTTP/1.0 200 OK
Server: nom du soft utilisé
Date: la date
Content-Type: xxxx
Content-Length: xxxx
Last-Modified: une autre date
Connection: close
Accept-Ranges: bytes

Si on remplace HEAD par GET, on aura tout le contenu pointé par l’URL de servi.

Si on ne spécifie pas le vhost sur lequel on tape, l’URI sera servie par le vhost par défaut du serveur HTTP.

HEAD ou GET (simple) en HTTP 1.1:

$ telnet serveur 80
Trying serveur
Connected to serveur
Escape character id '^]'.
HEAD /uri HTTP/1.1
Host: vhost

HTTP/1.1 200 OK
Server: nom du soft utilisé
Date: la date
Content-Type: xxxx
Content-Length: xxxx
Last-Modified: une autre date
Connection: keep-alive
Keep-Alive: timeout=xx
Accept-Ranges: bytes

Comme en HTTP 1.0, si on remplace HEAD par GET, on prend tout dans la figure.

GET + Range (HTTP/1.1):

Le but ici est de ne demander qu’un morceau du fichier. C’est pas mal utilisé par les lecteurs de vidéos (typiquement, les iPhone/iPad ne font jamais un gros GET, mais une succession de GET+Range), ou pour les gestionnaires/accélérateurs de download et la gestion de la reprise des download.

$ telnet serveur 80
Trying serveur
Connected to serveur
Escape character id '^]'.
GET /uri HTTP/1.1
Host: vhost
Range: bytes=start-stop

HTTP/1.1 206 Partial Content
Server: nom du soft utilisé
Date: la date
Content-Type: xxxx
Content-Length: stop-start+1
Last-Modified: une autre date
Connection: keep-alive
Keep-Alive: timeout=xx
Content-Range: bytes start-stop/taille_totale

[des chose par forcément très lisibles :) ]

SMTP

Envoi depuis le mx de example.com vers une adresse en example.com

$ telnet mx.example.com 25
Trying x.y.z.t...
Connected to mx.example.com.
Escape character id '^]'.
220 example.com ESMTP
HELO some.place.net
250 mx.example.com
MAIL FROM: tester@dummy.org
250 2.1.0 Ok
RCPT TO: tested@example.com
250 2.1.5 Ok
DATA
354 End data with .
Date: la date
Subject: un sujet
From: Tester 
To: Tested 

message
.
250 2.0.0 Ok: queued as EBF2527FF9
QUIT
221 2.0.0 Bye

Il peut arriver qu’après le «RCPT TO» on se fasse jeter avec ce genre de message:

450 4.2.0 : Sender address rejected: Your email has been greylisted and will be delivered soon...

C’est un mécanisme pour limiter le SPAM, il suffit en général d’attendre 5 minutes avant de recommencer.

Tester si un serveur est un relai ouvert:

$ telnet mx.example.com 25
Trying x.y.z.t...
Connected to mx.example.com.
Escape character id '^]'.
220 example.com ESMTP
HELO some.place.net
250 mx.example.com
MAIL FROM: kevin@hotmail.fr
250 2.1.0 Ok
RCPT TO: kevina@live.com

Si le serveur est bien configuré, on aura cette réponse:

554 5.7.1 : Relay access denied

Sinon, on aura ce qu’on a déjà vu avant.

Envoi de mail + authentification

On reste dans un cas simple, l’authentification en «clair».

On a tout de même besoin de deux choses: le nom d’utilisateur et le mot de passe encodés en base64 (voir la fonction base64.b64encode(‘string’) de python, par exemple).

Après le «AUTH LOGIN», on rentre le nom d’utilisateur puis le mot de passe. Si tout se passe bien, on obtient comme réponse un «Authentification successful».

$ telnet mx.example.com 25
Trying x.y.z.t...
Connected to mx.example.com.
Escape character id '^]'.
220 example.com ESMTP
HELO some.place.net
250 mx.example.com
AUTH LOGIN
334 VXNlcm5hbWU6
dGVzdGVyQGR1bW15Lm9yZw==
334 UGFzc3dvcmQ6
cDRzc3cwcmQ=
235 2.7.0 Authentication successful
MAIL FROM: tester@dummy.org
250 2.1.0 Ok
RCPT TO: tested@example.com
250 2.1.5 Ok
DATA
354 End data with .
Date: la date
Subject: un sujet
From: Tester 
To: Tested 

message
.
250 2.0.0 Ok: queued as BB1D127FF9
QUIT
221 2.0.0 Bye

IMAP

Une session IMAP, par défaut tout passe en clair.

$ telnet serveur 143
Trying serveur
Connected to serveur
Escape character id '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN AUTH=LOGIN] XXXX ready.
a login Utilisateur FauxMDP
a NO [AUTHENTICATIONFAILED] Authentication failed.
$ telnet serveur 143
Trying serveur
Connected to serveur
Escape character id '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN AUTH=LOGIN] XXXX ready.
a login Utilisateur MotDePasse
a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in
a list "" "*"
* LIST (\\HasNoChildren) "." "Drafts"
* LIST (\\HasNoChildren) "." "Sent"
* LIST (\\HasNoChildren) "." "Spam"
* LIST (\\HasNoChildren) "." "Trash"
* LIST (\\HasNoChildren) "." "INBOX"
a OK List completed.
a examine INBOX
* FLAGS (\\Answered \\Flagged \\Deleted \\Seen \\Draft NonJunk Junk $Forwarded $label1 $label2 $label3 $label4 $label5)
* OK [PERMANENTFLAGS ()] Read-only mailbox.
* 928 EXISTS
* 0 RECENT
* OK [UNSEEN 928] First unseen.
* OK [UIDVALIDITY 1256471328] UIDs valid
* OK [UIDNEXT 3383] Predicted next UID
* OK [HIGHESTMODSEQ 6421] Highest
a OK [READ-ONLY] Select completed.
a fetch 1 body[]
[... entêtes du mail #1 ...]

[... corps du mail #1 ...]
a OK Fetch completed.
a logout
* BYE Logging out
a OK Logout completed.

POP

À savoir: l’argument de la commande PASS est le mot de passe en clair.

$ telnet serveur 110
Trying serveur
Connected to serveur
Escape character id '^]'.
+OK ready
USER toto
+OK
PASS fauxMdpDeToto
-ERR Authentification failed.
QUIT
+OK Logging out.
$telnet serveur 110
Trying serveur
Connected to serveur
Escape character id '^]'.
+OK ready
USER toto
+OK
PASS mdpDeToto
+OK Logged in.
LIST
+OK X messages:
1 tailleMsg1
...
X tailleMsgX
.
TOP Y
[... Entêtes du mail #Y ...]
.
TOP Y Z
[... Entêtes du mail #Y ...]

[... Z premières lignes de #Y ...]
.
QUIT
+OK Logging out.

Gravatar de Guillaume Vaillant
Original post of Guillaume Vaillant.Votez pour ce billet sur Planet Libre.

Articles similaires

Framablog : Mozilla Persona : Enfin le bon système d’identification sur le Web ?

mercredi 3 octobre 2012 à 16:05

Avec combien de login et de mots de passe devons-nous jongler dans la journée ?

Beaucoup en effet…

En même encore plus si nous ne les enregistrions pas automatiquement par défaut dans notre machine (avec un gros risque de sécurité). Ou, pire encore, si nous n’avions pas décidé de nous enregistrer sur des services tiers avec notre compte Facebook, Twitter ou Google (avec un énorme risque de se retrouver prisonnier de leurs cages dorées).

À l’heure et à l’ère de la multiplication exponentielle des services Web, la question de l’identification devient cruciale et problématique.

Nous avons besoin d’un système global pratique, sécurisé et auquel nous pourrions faire confiance.. C’est ce que propose Persona, le nouveau système d’authentification de Mozilla.

Il n’est pas forcément aisé de le comprendre de l’intérieur mais c’est pour que ce soit le plus simple possible du côté de l’utilisateur :)

Mozilla Persona

Pourquoi Persona de Mozilla apporte la bonne réponse à la question de l’identification

Why Mozilla Persona Is the Right Answer to the Question of Identity

David Somers - 1er octobre 2012 - Blog personnel
(Traduction : greygjhart, ZeHiro, Yho, Evpok, aKa, FredB, Simounet, Mounou, Coyau, Isdf, peupleLa, thot, HgO, salelodenouye)

Le 27 septembre 2012, Mozilla a lancé la première version bêta de Persona. Persona est un système d’authentification d’apparence similaire à OpenID et oAuth, mais qui s’en distingue d’un point de vue technique et fonctionnel.

Nous avons eu la chance de nous associer à Mozilla pour créer la version bêta de The Times Crosswords lors du lancement du Mozilla App Store. Nous sommes ainsi l’un des premiers services tiers à avoir intégré Persona de Mozilla (qui s’appelait encore BrowserID à l’époque), Mozilla en a même fait une vidéo.

Pourquoi un nouveau système d’identification ?

Passons en revue quelques-uns des problèmes d’OpenID et oAuth :

Comment Persona et BrowserID résolvent-ils ces problèmes ?

Bien entendu, Persona ne vous sera d’aucune utilité quand vous aurez besoin d’accéder à des ressources tierces authentifiées comme vos données Twitter, mais ce n’est pas son rôle. Et c’est la ligne de démarcation qu’il faut entre votre identité et vos données.

Comment ça marche ?

Ce qu’il y a de bien avec la solution Persona de Mozilla, c’est qu’elle se décompose en deux niveaux. Le premier est le service BrowserID amorcé : Persona. Le second est le protocole d’identification en lui-même : BrowserID. En concevant ainsi l’amorçage du protocole, Mozilla évite les problèmes de prise en main et le rend attractif pour les développeurs.

BrowserID

Dans un monde idéal où BrowserID serait massivement adopté, voici ce qui se passerait au moment où vous voulez vous connecter à un site Web :

  1. Vous cliquez sur « Connexion ».
  2. Votre navigateur vous demande avec quelle adresse email vous voulez vous identifier.
  3. Vous êtes connecté.

Et voici ce qui se passerait dans le détail :

  1. Vous cliquez sur « Connexion » sur un site désigné ci-dessous par Service Tiers.
  2. Votre navigateur vous demande avec quelle adresse email vous voulez vous identifier.
  3. Votre navigateur contacte votre Service d’Identification (désigné dans la suite par S.I, par exemple Gmail) en utilisant vos identifiants (adresse email et clé publique) et demande un certificat signé.
  4. Optionnel : Votre S.I. vous demande de vous inscrire (avec les habituels identifiant/mot de passe pour cela).
  5. Votre S.I. envoie à votre navigateur un certificat signé qui dure 24 heures.
  6. Votre navigateur génère une « Assertion ». Elle fait preuve que vous êtes le légitime détenteur de votre adresse email : générée à partir de votre clé privée (stockée dans le navigateur), elle contient le domaine du site pour lequel vous vous authentifiez ainsi qu’une date d’expiration.
  7. L’assertion et votre certificat signé sont tous deux envoyés au Service Tiers.
  8. À l’aide de votre clé publique (fournie par votre navigateur), le Service Tiers vérifie que votre Assertion semble correcte.
  9. Le Service Tiers demande la clé publique de votre S.I. (mais n’envoie aucune information sur l’utilisateur) et s’en sert pour vérifier que le certificat, envoyé par votre navigateur, est également correct.
  10. Vous êtes connecté.

Plutôt long le processus ! Mais au moins, il est décentralisé, sécurisé et respecte votre vie privée (votre S.I. ne peut pas savoir quels sites vous êtes en train de visiter).

Si c’était la seule façon d’implémenter BrowserID, son déploiement serait compromis. C’est là que Persona entre en piste.

Mozilla Persona

Mozilla Persona est une application tierce qui fournit une interface de programmation (API) REST plutôt cool pour cacher toute cette cryptographie à clé publique.

En traitant toute la partie cryptographie, implémenter BrowserID ne requiert que quelques lignes de JavaScript (le bouton de login et les callbacks en POST pour envoyer l’assertion au serveur) et une requête cURL (pour valider l’assertion).

Envie de l’utiliser ?

Commencez par jeter un œil sur le Persona Quick Setup (NdT : Installer Rapidement Persona) qui vous fournira les instructions pour ajouter Persona à votre site Web, avec des exemples en JavaScript et une implémentation en Python de la vérification de l’assertion (c’est vraiment très simple). Le tout en une soixantaine de lignes de code.

Nous vous suggérons ensuite de consulter le guide des bonnes pratiques pour vous assurer que vous ne faites rien de travers.

NdT : En annexe deux liens de mozilliens francophones :

Gravatar de Framablog
Original post of Framablog.Votez pour ce billet sur Planet Libre.

Yannig : Mise en place selenium

mercredi 3 octobre 2012 à 14:02
Ces derniers temps, on m'a demandé de mettre en place de scénario de surveillance sur une application typiquement horrible : code HTML horrible, Internet Explorer only etc.

Bref, j'ai donc commencé à vouloir faire ça en cucumber mais je me suis rapidement frotté à des problèmes mon cher concombre masqué refusant catégoriquement mes noms de formulaires fantaisiste (il faut dire qu'on trouve des dollars ('$') dedans ...).

Bien triste, j'ai commencé à chercher quelque chose d'autre qui pourrait répondre à mon besoin et je suis tombé sur selenium (http://seleniumhq.org/) et son IDE (qui est une simple extension à installer dans firefox).

J'ai commencé à faire joujou avec l'IDE et - malgré un rendu HTML catastrophique - j'ai réussi à faire un scénario de test avec Firefox.

En trifouillant un peu, j'ai vu qu'il existait un serveur selenium (un process java) et qu'il pouvait tourner dans un serveur X virtuel. Devant tant de beauté, j'ai donc commencé à mettre ça en place :D.

Pré-requis python

Comme par la suite je vais générer des scripts au format python, nous allons devoir installer la librairie python permettant de communiquer avec selenium. Ici, rien de bien compliqué, un coup de apt-get pour installer le nécessaire :

apt-get install python-pip python-dev build-essential

Maintenant que nous avons pip, nous pouvons procéder à l'installation de la librairie selenium :

pip install -U selenium

Passons maintenant à la suite (et y'a du monde !)

X11 Virtual frame buffer (miam !)

Ce cher Xvfb ! Toujours un petit moment émouvant quand je le croise ! Pour le lancer, il faut simplement utiliser la ligne de commande suivante :

DISPLAY=:1 Xvfb :1 -screen 0 1024x768x24

Bien penser à le rendre utilisable depuis n'importe où avec la commande xhost :

DISPLAY=:1 xhost +

ATTENTION : L'utilisation de xhost + va rendre le serveur X visible depuis l'extérieur !!! Il est conseillé de mettre en place un parefeu pour bloquer les accès externes.

L'installation se fait avec un apt-get install xvfb (et x11-server-utils pour disposer de l'utilitaire xhost)

Installation de Firefox

Par la suite, nous utiliserons firefox pour faire nos tests. Donc rien de bien fameux si ce n'est un apt-get install firefox (à remplacer par iceweasel si vous êtes sur Debian).

Mise en place de Selenium

On arrive enfin au coeur du sujet. Selenium est un serveur qui s'appuie sur un jar java pour se lancer. Donc de manière logique, il va vous falloir un java fonctionnel. Je vous passe les détails, vous faîtes comme vous voulez.

Récupérer ensuite la dernière version de selenium serveur sous la forme d'un JAR. Vous pouvez ensuite le lancer avec la ligne de commande suivante :

export DISPLAY=:1
java -Djava.security.egd=file:/dev/./urandom \\
     -jar /path/to/jar/selenium-server-standalone-2.25.0.jar \\
     -browserSessionReuse

A noter la présence de l'option -browserSessionReuse qui permet d'éviter de relancer le navigateur à chaque lancement de scénario et l'option biscornu java.security.egd qui permet de passer du device aléatoire /dev/random (qui est lent) à /dev/urandom qui lui n'utilise pas l'entropie du système pour fonctionner mais un générateur de nombre aléatoire.

Test de notre premier scénario

À l'aide de l'IDE selenium, nous avons enregistré notre scénario. Nous allons maintenant exporter ce dernier au format Python 2 / unittest / Remote Control. Voici ce à quoi ça devrait ressembler :

from selenium import selenium
import unittest, time, re

class sites(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("localhost", 4444, "*chrome", "http://monsite/")
self.selenium.start()

def test_sites(self):
sel = self.selenium
sel.open("/ma_page")
sel.type("id=un_champ", "une_valeur")
sel.type("id=un_autre_champ", "une_autre_valeur")
sel.click("id=id_d_un_lien")
sel.wait_for_page_to_load("30000")

def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
unittest.main()
Lançons maintenant ce beau script depuis la machine faisant tourner selenium :

python mon_scenario.py
.
----------------------------------------------------------------------
Ran 1 test in 4.051s
OK

Magnifique non ? Tout à fait mais ça ne vous dit pas ce que vous allez en faire dans votre nagios.

(Des)intégrations dans nagios/Shinken

Comment ça, vous voulez le script qui analyse la sortie de tout ça et l'insert directement dans nagios ? Je vous trouve un peu exigeant quand même !

Bon, si vous insistez ... Il faut récupérer le script check_selenium.pl et lancer ensuite la sonde de la manière suivante :

/emplacement/scripts/check_selenium.pl --script \\
      /emplacement/de/mon/scenario.py  \\
      --label "Le test de ma super application"

De là, vous devriez obtenir la sortie suivante :

Selenium test OK (Le test de ma super application)|time=3.180s test_count=1

Elle est pas belle la vie ?

Gravatar de Yannig
Original post of Yannig.Votez pour ce billet sur Planet Libre.

Articles similaires

Guillaume Kulakowski : GNOME 3.6, GNOME Shell, Looking Glass & l'onglet erreurs

mercredi 3 octobre 2012 à 13:43

Depuis la version 3.6 de GNOME, l’outil Looking Glass s'est vu amputer de son onglet erreur. Bilan : mon extension gnome-shell-status-only-icon ne fonctionnait plus mais je ne savais pas pourquoi. Dorénavant pour accéder au contenu de l'ancien onglet erreur de Looking Glass il faudra passer par un tail du fichier ~/.cache/gdm/session.log.

Au final le changement est vraiment minime, mais suffisamment pour casser la compatibilité avec les versions 3.2 & 3.4.

Gravatar de Guillaume Kulakowski
Original post of Guillaume Kulakowski.Votez pour ce billet sur Planet Libre.

Articles similaires

PostBlue : Compaq Mini 700EF : configuration minimaliste sous Arch Linux

mercredi 3 octobre 2012 à 04:33

Alors que j’ai déjà pu le présenter dans quelques billets plutôt datés maintenant, je trimbale souvent à mon épaule un notebook Compaq Mini 700EF. À ce propos, j’ai enfin pu procéder à une mise à jour du BIOS, celle-ci étant distribuée par HP sous la forme d’un binaire exécutable dédié à Microsoft Windows.

À force de recherches, j’ai pu tomber sur une version “pour Linux” en fouillant les propositions : c’est en permettant d’afficher des résultats en anglais sur le site que je suis tombé sur cette page, la solution adéquate étant la proposition “HP Mobile Internet Experience”. La version du BIOS qui y est téléchargeable  n’est pas la plus à jour (F.16) mais apporte néanmoins les correctifs m’intéressant concernant la prise en charge de la batterie : un générateur de clef USB – un “Live DOS” me rendrai-je compte par après – permettant d’exécuter la mise à jour. Ainsi soit-il.

Dans la même veine, j’ai également pu utiliser une méthode similaire pour mettre à jour une carte mère MSI H61MA-E35 (B3) dont les binaires n’étaient aussi que des exécutables Microsoft Windows : après avoir tancé le support avec des notions telles qu’une liberté de choix d’un système GNU/Linux (surtout lors de l’achat d’un composant seul, rien ne présuppose du système que j’installerais), et la confrontation à une vente liée déguisée par leur support. Ceux-ci m’ont envoyé un exécutable Microsoft Windows de chez Hewlett Packard, soit la même !

Notons tout de même un moment sidérant dans cette épopée, soit ma tronche à la vue de l’écran de démarrage de… Windows 98, au démarrage de cette seconde Live DOS. Expérience totalement troublante, voire parfaitement dérangeante, croyez-moi. Cela dit, revenons à nos moutons, ou tout autre animal qu’il vous sied.

Comme gestionnaire de fenêtres, j’ai craqué pour un tiling manager : i3 (voir le wiki d’Arch Linux), embarquant i3bar et i3status par la même occasion pour gérer les barres des tâches. D’ailleurs, dans cette barre des tâches, j’y ai intégré batti, ClipIt, et volwheel.

C’est complet, compréhensible, modulaire, éditable aisément, en plus d’être léger par rapport à des environnements de bureau “clefs en main” : quelques 100mo sont utilisés lors d’un démarrage à froid, avec un boot en moins de dix secondes (un SSD et l’utilisation d’un systemd épuré des services inutilessystemd-analyze blame est mon ami – jouent aussi, bien évidemment).

Pour le navigateur, j’ai essayé luakit et ai été plutôt séduit (plus encore en découvrant la possibilité d’un bloqueur de publicités), le trouvant performant quoique parfois un peu trop minimaliste à mon goût, et rebutant dans sa configuration, et moche même, mais il convient très bien à l’utilisation que j’en ai. Dès que j’aurai un peu de temps devant moi, je me pencherai sur sa configuration, c’est certain. À ce propos, je déplore une alternative agréable à Luakit, basée par exemple sur Gecko (mon allergie à WebKit refait des siennes), en somme un “Luacko”.

Pour les notifications, je suis tombé fortuitement sur le cas de Dunst (disponible dans [community]), un gestionnaire de configuration basé sur dmenu (déjà utilisé par exemple dans le menu d’i3), beaucoup plus léger en dépendances que TWMN (qui nécessite Qt, et [troll]j’aime pas Qt, ni KDE, c’est mon horreur la plus infinie dans le logiciel libre[/troll]), que j’avais jugé néanmoins très intéressant.

Qui dit notebook induit une utilisation relativement nomade : il me sert majoritairement de support de prise de notes de cours. Ce nomadisme reflète un besoin : la connexion à des réseaux WiFi, donc pose le besoin d’un gestionnaire de connexion des plus efficaces. Mon choix s’est porté sur une maîtrise de netcfg (surtout depuis qu’il est pleinement supporté par systemd, ou l’inverse), créant des profils à la volée avec la commande wifi-menu (une commande similaire à wifi-select) que le paquet amène.

Il n’y a pour l’instant qu’eduroam, le réseau “protégé” de l’université où j’étudie, qui résiste à ma configuration. À mon avis le profil de connexion que j’ai pu trouver et reprendre est erroné, le reste fonctionne sans problème rédhibitoire. Notez que j’ai dû installer et configurer une interface dans rfkill pour ne pas avoir un fonctionnement faussé, quoique ça ne fonctionne pas à tous les coups – l’interrupteur étant parfois vu comme bloqué sans possibilité de le débloquer sinon en redémarrant. Ce qui ne met pas plus de dix secondes, ce n’est pas la mer à boire.

Restaient alors quelques applications nécessaires fondamentales, comme un terminal, ou un navigateur de fichiers. Pour ce dernier, mon choix est allé, une fois encore, vers la légèreté sans encore trop de compromis sur mes habitudes, soit PCManFM du projet LXDE – dont j’utilise déjà lxappareance pour régler le thème que j’utilise.

Cepandant, si la configuration de ce dernier a été plus que simple en suivant le divin wiki d’Arch Linux, un problème subsistait lors de l’affichage de la liste d’applications, lorsque le logiciel était lancé depuis dmenu : page blanche ! Un peu d’investigation aura suffit pour ajouter export XDG_MENU_PREFIX=lxde- à l’endroit qui va bien, à savoir ~.i3/config :

# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id XDG_MENU_PREFIX=lxde- dmenu_run

En ce qui concerne l’installation et la configuration d’urxvt, j’ai utilisé les ressources d’Ypnose, tout simplement – ajoutant et supprimant çà et là quelques éléments comme des extensions.

Ressources en vrac :

Concernant l’autonomie de ma machine, j’utilise ce script trouvé sur le forum de crunchbang en lieu et place de solutions lourdes et ralentissant mon démarrage comme Laptop Mode Tools. J’ai édité mon /etc/acpi/handler.sh en conséquence :

#!/bin/sh
# Default acpi script that takes an entry for all actions

minspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq`
maxspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq`
setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"

set $*

case "$1" in
    button/power)
        case "$2" in
            PBTN|PWRF)
                logger "PowerButton pressed: $2"
                systemctl poweroff
                ;;
            *)
                logger "ACPI action undefined: $2"
                ;;
        esac
        ;;
    button/sleep)
        case "$2" in
            SLPB|SBTN)
                #echo -n mem >/sys/power/state
                DISPLAY=:0.0 su postblue -c "/usr/bin/i3lock -i /usr/share/wallpaper.png" && echo -n mem >/sys/power/state
                systemctl suspend
                ;;
            *)
                logger "ACPI action undefined: $2"
                ;;
        esac
        ;;
    ac_adapter)
        case "$2" in
            AC*)
                case "$4" in
                    00000000)
                        echo -n $minspeed >$setspeed
                        #/etc/laptop-mode/laptop-mode start
                        pm-powersave true
                        ;;
                    00000001)
                        echo -n $maxspeed >$setspeed
                        #/etc/laptop-mode/laptop-mode stop
                        pm-powersave false
                        ;;
                esac
                ;;
            *)
                logger "ACPI action undefined: $2"
                ;;
        esac
        ;;
    battery)
        case "$2" in
            BAT*)
                case "$4" in
                    00000000)
                        logger 'Battery online'
                        ;;
                    00000001)
                        logger 'Battery offline'
                        ;;
                esac
                ;;
            CPU*)
                ;;
            *)  logger "ACPI action undefined: $2" ;;
        esac
        ;;
    button/lid)
        case "$3" in
            close)
                logger 'LID closed'
                DISPLAY=:0.0 su postblue -c "/usr/bin/i3lock -i /usr/share/wallpaper.png" && echo -n mem >/sys/power/state
                systemctl suspend
                ;;
            open)
                logger 'LID opened'
                ;;
            *)
                logger "ACPI action undefined: $3"
                ;;
    esac
    ;;
    *)
        logger "ACPI group/action undefined: $1 / $2"
        ;;
esac

# vim:set ts=4 sw=4 ft=sh et:

Cepandant, certaines des instructions liées aux composants Intel ne “passaient” pas à être éditées à la volée (jetez un œil à pm-powersave.log), aussi les ai-je insérées dans GRUB où elles ne posent maintenant plus de problème :

GRUB_DEFAULT=0
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="quiet fastboot"
GRUB_CMDLINE_LINUX="acpi_os_name=Linux pcie_aspm=force elevator=noop resume=/dev/sda2 i915.i915_enable_rc6=1 i915.lvds_downclock=1 i915.i915_enable_fbc=1 i915.semaphores=1"

En espérant que ces indications puissent vous servir ! Cette configuration est bien évidemment ouverte aux suggestions : j’aimerais par exemple trouver un moyen pour que dmenu_run ne liste que les programmes reprise dans le menu d’lxde, non pas toutes les commandes du système.

flattr this!

Gravatar de PostBlue
Original post of PostBlue.Votez pour ce billet sur Planet Libre.

Articles similaires