Aller au contenu | Aller au menu | Aller à la recherche

mardi, août 18 2009

Positionner les fenêtres GTK (Gnome) au lancement des applications avec l'option --geometry

Positionnement de fenêtres Gnome

Je me demandais comment positionner mon terminal au même endroit à chaque lancement. Après une petite recherche, il y a un paramètre --geometry qui permet de définir la taille et de positionner en x et y toute application qui supporte ce paramètre.

La syntaxe est la suivante :

# pour définir les dimensions et le positionnement
[-geometry widthxheight+X+Y]
# pour définir uniquement le positionnement
[-geometry +X+Y]
# pour définir uniquement les dimensions
[-geometry widthxheight]

Width et Height sont les valeurs de largeur et de hauteur données en pixels. Exemple 640x480.

Le X et Y est la valeur par rapport au point haut gauche de l'écran. Si vous voulez placer votre fenêtre à 200px du haut de l'écran vous utiliserez +0+200

Si vous souhaitez aligner votre fenêtre par rapport au bas ou à la droite de votre écran, il faut utiliser des valeurs négatives dans les paramètres. Si par exemple vous voulez aligner votre application en bas de votre écran vous utiliserez +0-0, ce qui a pour effet d'aligner par rapport au point bas gauche de l'écran.

En temps normal la largeur et hauteur est donnée en pixels, mais pour le terminal c'est la largeur en nombre de caractères et la hauteur en nombre de lignes. Il faut vérifier le fonctionnement suivant l'application.

Cela donne avec le terminal pour une largeur de 208 caractères x24 lignes à 200px du haut de l'écran :

gnome-terminal --geometry 208x24+0+200

jeudi, juin 11 2009

Envoyer des mails via gMail depuis son serveur en utilisant sSMTP

gmail iconAu lieu de configurer un MTA de type postfix ou un sendmail, il est parfois pratique d'utiliser directement son adresse email pour envoyer des messages depuis le serveur. C'est exactement ce que ssmtp permet!

1) Installer sSMTP

Suivant votre distribution :

apt-get install ssmtp
emerge ssmtp
yum install ssmtp

2) Configurer

Fichier de config /etc/ssmtp/ssmtp.conf

FromLineOverride=YES
hostname=myhostname
AuthUser=email@gmail.com
AuthPass=password
mailhub=smtp.gmail.com:587
useSTARTTLS=YES

3) Tester !

echo "hello world" | mail -s "ssmtp mail" me@domain.com

Et c'est parti !

vendredi, mai 16 2008

Bash pageup and down dans history & .bashrc

Recherche des mots dans l'history avec pageup et pagedown

Editer le fichier /etc/inputrc

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
"\e[5~": history-search-backward
"\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\eO5C": forward-word
"\eO5D": backward-word

Retrouver les keymap

Pour retrouver le raccourci dans un shell faites CTRL-V et tappez le raccourci souhaitez. Exemple sous fedora CTRL+left arrow donne "^[O5D", il faut remplacer le "^[" par "\e" ce qui donne "\eO5D".

Autre solution, au lieu de modifier le /etc/inputrc, on peut utiliser bind dans le .bashrc

bind '"\e[5~":history-search-backward' bind '"\e[6~":history-search-forward'

Autres choses interessantes

  1. completion cyclique

bind '"²":menu-complete'

  1. montrer les possibilités si choix ambigu dans la completion

bind "set show-all-if-ambiguous on"

  1. ignorer la casse pour la completion

bind "set completion-ignore-case on"

.bashrc example

#aliases
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
#alias grep='grep --color'
export GREP_OPTIONS='--color=auto'

#environment
PS1='\[\033[01;34m\]\t \[\033[01;32m\]\u@\h \[\033[01;34m\]\w \$ \[\033[00m\]'
EDITOR="/usr/bin/nano"
VISUAL="/usr/bin/nano"

#history
bind '"\e[5~":history-search-backward'
bind '"\e[6~":history-search-forward'

#completion cyclique
bind '"²":menu-complete'
#montrer les possibilités si choix ambigu dans la completion
bind "set show-all-if-ambiguous on"
#ignorer la casse pour la completion
bind "set completion-ignore-case on"

#calculatrice
calc(){ awk "BEGIN{ print $* }" ;}

Ensuite

source .bashrc

Autre truc interessant à mettre dans le .bashrc pour les chmod :

  1. chmod all files/directory

alias chmodd=’find . -type d -exec chmod 711 {} \;’ alias chmodf=’find . -type f -exec chmod 755 {} \;’

Locale en UTF-8 pour l'utilisateur courant

export lang=fr_FR.utf8 export LANG=fr_FR.utf8 export LANGUAGE=fr_FR.utf8 export LC_ADDRESS=fr_FR.utf8 export LC_ALL=fr_FR.utf8 export LC_COLLATE=fr_FR.utf8 export LC_IDENTIFICATION=fr_FR.utf8 export LC_MESSAGES=fr_FR.utf8 export LC_MEASUREMENT=fr_FR.utf8 export LC_MONETARY=fr_FR.utf8 export LC_NAME=fr_FR.utf8 export LC_NUMERIC=fr_FR.utf8 export LC_PAPER=fr_FR.utf8 export LC_TELEPHONE=fr_FR.utf8 export LC_TIME=fr_FR.utf8 export LC_TYPE=fr_FR.utf8

Et voilà!

mercredi, mars 19 2008

Pure-ftp

Ajout de l'utilisateur

pure-pw useradd toto -d /export/ftp/toto/ -t 60 -N 2048 -y 3 -u 21 -g 21

-d directory -t limitation de la bande passante en download à 60ko/s -N 2048Mo en limite -y nombre de connexions simultanées 2 ou 3 -u uid 21=ftp -g gid 21=ftp Mise à jour de la DB

pure-pw mkdb

Verification des options de l'utilisateur

pure-pw show toto

Test de la connexion a faire coté client. Vérification des connexions sur le serveur

watch -n 1 pure-ftpwho

mardi, décembre 11 2007

FFmpeg

Aide sur ffmpeg

ffmpeg  -i input.ogg -ar 22050 -ab 56 -aspect 4:3 -b 200 -r 12 -f flv -s 320x240 -acodec mp3 -ac 1 output.flv

Sans audio mpeg2

ffmpeg  -i input.ogg -an -aspect 4:3 -b 200 -r 15 -s 320x240 -target pal-dvd output.mpg

Conversion en flash

ffmpeg  -i input.ogg output.swf

Options importantes:

-an : no audio
-target: pal-dvd
-b: bitrate video
-s: resolution
-aspect: aspect
-f: codec

mercredi, octobre 31 2007

e-mail en japonais...

Envoyer les titres des emails correctement dans un codage autre que ISO-8859. Voir explication ci-dessous:

Now we have an encoded subject, but our mail reader won't know that. So we need to tell it by formatting our subject as follows: "=?" charset "?" encoding "?" encoded-text "?=" , where charset is the original character set and encoding is either "Q" for Quoted-Printable or "B" for Base64.

Examples:
The subject containing the Quoted-Printable ISO-8859-1 string "Voilà une message", is written as:
Subject: =?ISO-8859-1?Q?Voil=E0_une_message?=
The Base64 version of the ISO-8859-1 string is:
Subject: =?ISO-8859-1?B?Vm9pbOAgdW5lIG1lc3NhZ2U=?=
The Quoted-Printable version of the UTF-8 string is:
Subject: =?UTF-8?Q?Voil=C3=A0_une_message?=
The Base64 version of the UTF-8 string is:
Subject: =?UTF-8?B?Vm9pbMOgIHVuZSBtZXNzYWdl?=

"Raw" non-encoded subjects can work and modern mail clients handle it properly, but I found that at least using utf-8 as encoding, the spam analizers complain stating "BAD HEADER Non-encoded 8-bit data". To prevent this, and taking the info above, I decided to use base64, which at least seems to have specific functions (and because it works, of course). So, one could use the following code:

Donc voici ce qu'il faut faire pour tout encoder en base_64:

<?php
...
$charset='UTF-8';
$subject='Subject with extra chars: áéíóú';
$encoded_subject="=?$charset?B?".base64_encode($subject)."?=
";
$to=mail@foo.com;
$body='This is the body';
$headers="From: ".$from."
"
    . "Content-Type: text/plain; charset=$charset; format=flowed
"
    . "MIME-Version: 1.0
"
    . "Content-Transfer-Encoding: 8bit
"
    . "X-Mailer: PHP
";
mail($to,$encoded_subject, $body,$headers);

?>

Solution trouvé sur php.net.

mardi, août 28 2007

Seq

Comment générer une suite de chiffres très facilement avec un format particulier?

seq -s ',' -f 01021501C%04g 16 20

va génerer:

01021501C0016,01021501C0017,01021501C0018,01021501C0019,01021501C0020

Comment faire plus facile??

Completement RAID

Et oui heureusement que j'avais un RAID1 car un de mes 2 disques vient de me lacher sur un de mes serveurs. Alors voici la manip pour tout remettre en ordre.

1) Acheter un disque si vous n'aviez pas prévu le disque de spare...

2) Copie de la table de partition du disque A vers le nouveau disque B

sfdisk -d /dev/sda | sfdisk /dev/sdb

3) Si le disque contenait déjà un raid, il faut effacer la signature

mdadm --zero-superblock /dev/sdb

4) Ajouter le disque au raid existant (hot add) et réitérer pour les partitions suivantes

Juste avant il faut marquer comme défaillant le disque existant

mdadm --manage /dev/md1 --fail /dev/sdb1
mdadm -a /dev/md1 /dev/sdb1
mdadm -a /dev/mdX /dev/sdbX

Et normalement notre gentil mdadm répond: "hot added /dev/sdb1"

5) Il reste plus qu'à regarder (watch) l'avancement avec un petit

watch -n 1 cat /proc/mdstat

Autre commandes utiles:

Avoir plus d'infos sur le raid

mdadm -D /dev/md0

Stopper un raid

umount /dev/md1
mdadm -stop /dev/md1

Enlever une partition du raid

mdadm -r /dev/md1 /dev/sda1

mardi, juillet 3 2007

Petits problèmes et conseils pour Ubuntu 7.10

Config clavier xorg.conf

Votre clavier est passé en qwerty suite à une mise à jour de xorg? Voici la solution

SAMBA:

Parcque partager ses fichiers c'est mieux! http://doc.ubuntu-fr.org/installation/monterpartagewindows

en ligne de commande

mount //serveur/partage /media/partage/ -o username=bob,iocharset=utf8,users,user,rw,uid=bob,gid=users

dans fstab:

//serveur/partage   /media/partage  smbfs defaults,user,users,iocharset=utf8,codepage=850,dmask=755,fmask=644,rw,credentials=/root/.smbcredentials,uid=bob,gid=users 0 0

crédentials

username=bob
password=marley

VirtualBox:

La virtualisation simplifiée avec VirtualBox

Bip système

Pour supprimer le bip dans le terminal, créer un fichier .inputrc dans le home de l'utilisateur avec le contenu suivant:

set bell-style visible

lundi, juillet 2 2007

Un KVM software?

Comment utiliser plusieurs ordinateurs avec un seul clavier et une seule souris ? Avec un KVM bien sûr, et un KVM software c'est encore mieux.

Explications en détails ici grâce à l'utilisation de synergy.

mardi, mars 20 2007

GNU Screen tips et le .screenrc

Screen est un multiplexeur de terminal. Je vais vous donner quelques tips sympa pour utiliser au mieux cet outil merveilleux.

Si vous ne connaissez pas cet outil, je vous laisse le découvrir en lisant ceci ou allant sur la homepage du projet

Lancement de screen

Lancement classique

screen

Reprendre une session existante

screen -rd

Lister les sessions existantes

screen -ls

Reprendre une session parmi plusieurs

screen -rd <num> #seulement le premier chiffre suffit

Lancer une session en mode collaboratif

screen -x

.screenrc

Problèmes d'escape? utilisez les bind suivant

bindkey -b -d kb stuff ^H
bindkey -d -k kb stuff "\010"

Voir également http://www.linuxquestions.org/questions/showthread.php?threadid=132819

Voici mon .screenrc complet

startup_message off
# send CTRL-H when use backspace
bindkey -b -d kb stuff ^H
# set terminal type
#term vt100
# set a big scrolling buffer
defscrollback 5000
caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c"
# screen visual bell message
vbell_msg " Dinggg "
# utf-8 for new windows
defutf8 on
# utf-8-aware in the 2 ways
utf8 on on

Tips

Toutes les commandes commencent pas CTRL-a abregé sur les docs pas C-a

Quelques commandes basiques:

  • C-a C création d'un nouveau terminal
  • C-a 2 permet de sélectionner le terminal 2
  • C-a " permet de voir la liste des terminaux ouverts
  • C-a a permet de switcher avec le dernier terminal ouvert
  • C-a d permet de détacher screen
  • C-a A permet de renommer le terminal courant

Quelques commandes sympa:

  • C-a S split le screen en horizontal, ça s'appelle les régions
  • C-a <tab> permet de naviguer entre les régions
  • C-a X permet de fermer toutes les régions et de revenir au comportement par défaut
  • C-a : active la ligne de commande interne à screen. exemple tapper resize 30 pour changer la taille d'une région
  • C-a <esc> permet de passer en mode copy
  • <space> pendant le mode copy set le début de la copie, rappuyer sur <space> à la fin de la sélection. Pour utiliser ce buffer il faut faire C-a ]

Ressources:

Le Gentoo wiki : énorme documentation doc http://gentoo-wiki.com/TIP_Using_screen