Catégorie : linux

Mint et Ubuntu : une vitesse de clavier bien plus rapide que Windows

La vitesse de répétition du clavier est liée non pas au hardware (comme je l’ai cru pendant des années), mais au software, donc au système d’exploitation.

Mon ami Windows (« ami »… vous sentez l’ironie ?), qui est fait principalement pour les personnes qui pensent (à tort) qu’on est plus rapide avec une souris qu’avec un clavier, propose un délai avant de répéter les touches très long, même au minimum, et une vitesse de répétition plutôt lente, pour des personnes comme moi qui aiment aller vite.

Mon vrai ami Linux, lui, permet d’aller extrêmement vite, et c’est génial. Bon ok, il permet d’aller si vite qu’on peut faire des petites blagounettes à son camarade de classe. Alors Ubuntu a eu l’idée complètement débile (et je reste poli) de copier Windows et de limiter la vitesse de répétition, et le délai, à des temps très longs, qui se rapprochent de ceux de Windows.

Pourquoi brider tout cela ? Quel est l’intérêt de limiter sa voiture à 50km/h si elle peut aller à 200km/h (et que les autoroutes ne sont pas limitées !).

La solution : après avoir demandé ici sur stackoverflow, voici la réponse, je vous la mets en français : ouvrez un terminal et copiez-collez ce code :

Si vous êtes sur Linux en général

gsettings set org.gnome.settings-daemon.peripherals.keyboard repeat-interval 20

gsettings set org.gnome.settings-daemon.peripherals.keyboard delay 140

Si vous êtes sur Mint ou sur Ubuntu, autre solution

gsettings set org.cinnamon.settings-daemon.peripherals.keyboard repeat-interval 20

gsettings set org.cinnamon.settings-daemon.peripherals.keyboard delay 140

Et voilà. C’est le genre de choses, quand j’ai fini de coder toute la journée, et que je reviens sur Windows pour jouer un peu, qui fait que si je dois faire autre chose que jouer, je me mets à détester Windows et rebooter rien que pour écrire mes mails (au final je reste sur Mint parce que je ne vais pas re-rebooter pour rejouer…).

Linux / shell / cheatsheet

Shell hints / aide

Déclaration de script

Shebang le meilleur
Merci stackoverflow
#!/usr/bin/env bash
Déclarer une fonction et comment l’appeler function fn_deprotege() {
    chmod 777 -R ./*
    chown -R daemon:daemon ./*
}
fn_deprotege && echo "Site deprotégé"
La calculette version Linux = 10 fois plus puissante (« man bc ») bc

Outils de capture d’écran

  • scrot = capture en ligne de commande
  • shutter meilleur que celui par défaut
sudo apt-get install scrot
sudo apt-get install shutter
Note : pour mettre shutter par défaut, lire la documentation ici.
Commentaires fermés sur Linux / shell / cheatsheet Publié dans Mots-clé ,

Linux : ajouter un client sftp et le chrooter

UPDATE : voici le lien (merci Hervé !) que j’aurais dû lire avant de faire tout cela…
A vous de lire mon blog + celui qui suit et de prendre le meilleur de chacun pour aller au plus vite !

Restrict SSH User Access to Certain Directory Using Chrooted Jail


Voici ce qu’il faut savoir (et qui m’a pris le plus de temps) : pour chrooter vraiment un utilisateur, il faut lui mettre les ordres de commande minimales requises dans un dossier bin et l’autre dossier qui gère les entrées-sorties dev. Et puis ajouter configurer le serveur ssh pour préciser « que du sftp, pas de ssh ». Ce n’est presque jamais documenté dans les sites d’exemples que vous trouverez sur le Web, merci unix.stackexchange !

Dans mon cas, voici tous les ordres que j’ai faits, et qui font qu’au final tout a fonctionné. Si ça se trouve il y en a un ou deux qui sont inutiles… mais je n’ai pas le temps de tout parfaitement nettoyer, je vous dis ce que j’ai compris des ordres, à ma manière :

  • Installer une ligne de commande shell qui peut fonctionner sans aucune dépendance :
    apt-get install bash-static
  • Ajouter l’utilisateur thomas en précisant le nom du shell à lancer :
    useradd -m -c /home/thomas -s /home/thomas/bin/sh thomas
  • Changer son mot de passe :
    passwd thomas
  • S’assurer que le home de Thomas appartient bien à root et est en 755 (sinon ssh refuse la connexion) :
    chmod 755 /home/thomas ; chown root: /home/thomas
  • Créer les dossiers bin et dev :
    mkdir /home/thomas/bin
    mkdir /home/thomas/dev
    cp /bin/bash-static /home/thomas/bin/sh
  • Ensuite il faut copier puis exécuter ce code, mais je ne sais pas trop à quoi ça sert :
    cp /dev/MAKEDEV /home/thomas/dev/
    cd /home/thomas/dev/ && ./MAKEDEV
  • Enfin le plus important : configurer le serveur sshd
    vim /etc/ssh/sshd_config

    Et y ajouter ces lignes, qui précisent où chrooter et (surtout) qu’on n’autorise que le sftp :

    Match user thomas
        ChrootDirectory /home/%u
        AllowTCPForwarding no
        X11Forwarding no
        ForceCommand internal-sftp

C’est le tout dernier ordre, toute dernière ligne qui m’a fait perdre énormément de temps !

Steam : comment créer un serveur de cache local

Toute l’explication est ici, simple et claire, en anglais.

Mais je vais résumer l’idée au cas où vous ne seriez pas forcément tenté de tout lire : lorsque vous installez un jeu, le programme Steam (que j’appellerai dorénavant simplement « Steam » parce que je suis fainéant) va demander au serveur Steam de distribution de contenu le plus proche. Et ça n’est pas forcément toujours le plus proche, ce qui fait que cela risque d’être long, mais surtout, vous serez toujours limité à la vitesse de votre connexion Internet. Ici, l’article explique comment faire la demande de votre Steam en priorité à un serveur Nginx local qui servira de cache : si ce dernier n’a pas le jeu en cache, il va aller faire suivre la demande de manière classique. Bien évidemment, si vous êtes comme moi et que vous possédez plus de 500 jeux sur Steam – oui, 500, certaines personnes croient que je mens… – il vous faudra un disque de plus de un terra pour qu’il garde la plupart des jeux en cache (oui oui, vous voulez quelques exemples de jeux lourds ? Je vous en donne après), mais cela dit à chaque fois que vous voudrez réinstaller un jeu, ou si vous achetez un nouvel ordinateur portable, ou vos amis arrivent avec leur portable chez vous et vous voulez leur faire installer, tester ou éventuellement acheter un jeu sur steam dans tous les cas c’est génial. Lisez l’article ici :

how-to-build-a-local-steam-cache-server

Quelques jeux qu’il est très bon d’avoir en cache :

  1. Viking: battle for Asgard: 5Go
  2. Ys VI: The Ark of Napishtim: 3Go
  3. Styx: Master of Shadows: 7Go
  4. Stronghold Crusader 2: 3Go
  5. Risen 2 – Dark Waters: 8Go
  6. Resident Evil 4 / Biohazard 4: 12Go
  7. Rayman Origins: 2Go
  8. Project Cars: 22Go
  9. Pap & Yo: 2Go
  10. Outlast: 4Go
  11. Ori and the Blind Forest: Definitive Edition: 11Go
  12. Operation Flashpoint: Dragon Rising: 5Go
  13. Operation Flashpoint: Red River: 5Go
  14. Oddworld: new ‘n’ tasty: 8Go

J’arrête là, on en est déjà à plus de 100Go pour 13 jeux, imaginez pour plus de 500 jeux… ils ne font pas tous plus de 2Go, heureusement !

Varnish 4.x : comment faire un redirect

Après avoir passé plusieurs heures sans aucune réponse satisfaisante, j’ai enfin trouvé la solution du redirect.
Varnish n’a pas la possibilité de faire un redirect « simplement », il faut normalement laisser cela au « backend », c’est à dire au serveur derrière (Apache ou autre).
Mais moi je ne voulais pas. C’est mon droit non ?
Voici comment faire un redirect qui fonctionne :

sub vcl_recv {
    # Rediriger tous les ".fr" vers ".com"
    if (
        (req.http.host ~ "(.*)monsite\.fr$")
    ) {
        # ! error = envoyer vers la sous-routine "vcl_error"
        set req.http.x-redir = "http://www.bb.com" + req.url;
        return(synth(850, "Moved permanently"));
    }
}

L’astuce principale était : utiliser vcl_synth

D’après le code, je vous résume ce que j’ai compris : si jamais on a un status 850 qui semble être un ordre particulier, alors automatiquement changer les headers en y appliquant la redirection, et les renvoyer directement le résultat.
Donc, après la routine vcl_recv il vous suffit d’ajouter vcl_synth comme ceci :

sub vcl_synth {
    if (resp.status == 850) {
        set resp.http.Location = req.http.x-redir;
        set resp.status = 302;
        return (deliver);
    }
}

vim – astuces / cheatsheet

Vim

Séparation par fenêtres

:split Split horizontal
:vsplit Split vertical
:res XX Hauteur fenêtre = XX lignes
:vertical resize XX Largeur fenêtre courante = XX caractères
:30winc > Vertical : 30 caractères à droite
:30winc < Vertical : 30 caractères à gauche
:30winc + Horizontal : 30 caractères à droite
:30winc - Horizontal : 30 caractères à gauche
30[CTRL]W > Décaler de 30 caractères à droite
30[CTRL]W < Décaler de 30 caractères à gauche

Macros

:%s/\%(^ *\)\@<= /\&nbsp;/g Remplacer tous les espaces de début par &nbsp;

Debian 7 : comment changer le pointeur de souris

C’est très simple… une fois que vous avez cherché pendant longtemps :

Première solution

  1. Lancez le programme dconf-editor, et si vous êtes comme moi et que vous ne savez pas trop comment chercher via l’interface graphique, cela fonctionne tout aussi bien en ligne de commande
  2. Une fois le programme lancé, allez dans la branche org » gnome » desktop » interface
  3. Modifiez la valeur cursor-size par une valeur plus grande. Par exemple, j’ai mis 56 et ça me donne enfin un pointeur d’une taille très grossière et pratique – choisissez l’adjectif qui vous convient le mieux, pour moi les deux sont applicables

Seconde solution

  1. Téléchargez le fichier « theme ». Décompressez le.
  2. Créez un dossier ~/.icons
  3. Vérifiez que dans le dossier de votre thème il y a bien un sous dossier cursors
  4. Déplacez le thème au complet dans le dossier ~/.icons
  5. Installez gnome tweak tool comme ceci : sudo apt-get install gnome-tweak-tool
  6. Ensuite appuyez sur la touche Windows et tapez tw pour rechercher le programme Tweak
  7. Lancez le et dans la section « curseur », ouvrez la liste de sélection, et vous verrez vos nouveaux curseurs

C’est cet article qui m’a beaucoup aidé, même s’il manque des informations…
En espérant avoir fait gagner du temps… Bien sûr si vous avez des méthodes plus efficaces, rapides, ou « propres », n’hésitez pas à laisser un commentaire !

WordPress et Permaliens : une solution / hint / astuce

Si jamais les permaliens ne fonctionnent pas :

  • via les fichiers .htaccess ;
  • que vous avez essayé de copier-coller le code qu’il vous a donné dans un fichier vhost ;
  • que vous n’y comprenez rien en règles de réécriture…

Alors essayez de mettre ce qui suit en règle de réécriture dans votre fichier vhost :

# Olivier Pons : règles pour WordPress
# faites "à la main" :
# si index, on stoppe tout :
RewriteRule ^index\.php$ - [QSA,L]
# Tester TOUTES les possibilités
# pour voir si c'est un fichier :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule . /index.php [QSA,L]

Dans mon cas leurs règles ne fonctionnaient pas car il ne voyait pas que les fichiers étaient bien là, alors j’ai ajouté la vérification en ajoutant %{DOCUMENT_ROOT}.
Oui je sais ça n’est pas l’idéal, mais comme il est écrit sur l’entrée de Facebook :

Done is better than perfect.

…And I got this thing done. Whatever.