Coller deux machines ensemble avec synergy et SSH
Le 18 November 2008, à 16:3 par Ulhume...

Cela fait maintenant longtemps que je bricole avec trois écrans. A l'origine il s'agissait "juste" de deux cartes vidéo collées dans la même bécane, puis ce fût deux machines différente histoire de "rentabiliser" la consommation électrique de mon serveur local. Aujourd'hui le serveur a disparu au sous-sol pour être remplacé par l'U810 sur sa station d'accueil. Dans tous les cas c'est la même problématique : deux bureaux différents qui doivent communiquer de manière suffisamment transparente pour donner l'illusions de former un seul et même espace.

Historique (tout afficher)
  • v2 - mise à jour, inclusion synergy (2008-11-18 21:09)
  • v1 - Version finale (2008-10-02 19:28)

Paramétrage de Synergy

Avec SSH, synergy est la clef de voûte de ce petit bricolage. Pour ceux qui ne le connaissent pas encore, cet outil multi-plateforme permet de contrôler avec un même clavier et une même souris un ensemble de machine MacOS, Linux ou même Windows. En paramétrant simplement la disposition physique des écrans, il est ainsi possible de glisser la souris d'une machine à l'autre sans même s'en rendre compte. Les entrées clavier vont là où le pointeur de souris se trouve. L'architecture de synergie se compose donc d'un serveur qui est hébergé sur la machine à laquelle sont connectés physiquement clavier et souris, et d'autant de clients que nécessaires pour toutes les machines à relier au serveur.

Sous Mandriva, l'installation passe par un urpmi synergy sur chacune des machines (clients et serveur) ensuite, seul le serveur est a paramétrer, les clients se contentant d'être lancés en indiquant où le serveur se trouve sur le réseau.

Dans le cas qui nous intéresse, synergy sera donc paramétré pour placer l'écran de l'U810 à gauche des deux écrans de la machine de bureau. Et cela se fait très simplement en éditant un bête fichier texte sur le serveur, /etc/synergy.conf:

section: screens
   netbook:
   desktop:
end
section: links
   desktop:
     left = netbook
   netbook:
     right = desktop
end
/etc/synergy.conf

Là vous devinez comment tout cela va fonctionner. Grâce à ce fichier de configuration, j'ai déclaré que l'écran de l'U810 (netbook) était à la gauche de celui de mon PC, que celui du PC était à la droite du netbook.

Il suffit maintenant de lancer le serveur Synergy (synergys) sur le desktop par synergys. Le processus se met automatiquement en mode démon. De la même manière, sur le netbook, je lance cette fois le client par synergyc desktop, où desktop est le nom réseau de la machine serveur. Déjà vous devriez pouvoir passer avec votre souris d'une machine à l'autre en la faisant "taper" sur le bord gauche de l'écran du PC pour qu'elle passe comme par magie sur l'écran du netbook. Le clavier est alors utilisable à cet endroit. Et comble du fin, le presse-papier est aussi exporté !! Si vous copiez du texte d'un côté, vous pouvez le coller de l'autre. C'est pas beau ça ?

Pour automatiser tout cela, il faut que les deux commandes soient lancées sur chaque machine à l'ouverture de session. Cela se fait très simplement en utilisant sous Gnome Système/Préférences/Sessions/Programmes au démarrage et en ajoutant les bonnes commande sur chacune des deux machines.

Pour aller encore un peu plus loin, il peut être utile que le netbook soit connecté au serveur synergy avant la session, de sorte à pouvoir permette de rentrer identifiant et mot de passe avec le clavier et la souris du serveur.

Pour ce faire, il suffit sur le netbook d'ajouter un fichier /etc/X11/synergy.xsetup :

# to be sourced
/usr/bin/killall synergyc
sleep 1
/usr/bin/synergyc desktop
/etc/X11/synergy.xsetup

Un petit coup de chmod +x /etc/X11/synergy.xsetup sur le museau et le client devrait se connecter au serveur dés l'apparition de l'invite de connexion.

Lancement des applications

Nous avons maintenant lié nos deux écrans. cependant pour que ce soit réellement le même bureau il faut que l'on puisse sur le netbook afficher des applications qui en réalité s'exécutent sur le serveur. Pour cela il existe deux solutions, soit un freeNX ou beaucoup plus simplement un SSH configuré pour faire du déport de port X11 (voir ici pour plus d'info). Vu la proximité des deux machines, c'est la deuxième solution qui est adoptée, le réseau local supportant sans problème le débit imposé par la communication entre l'application et le serveur X11. Ainsi pour lancer par exemple evolution, il suffit juste sur le netbook d'ouvrir une session ssh, via un terminal, sur le serveur et de.. lancer evolution.

Paramétrer l'ouverture de liens

Maintenant, lorsque l'on clique sur un lien dans liferea, cela ne s'ouvre pas sur le firefox du desktop mais sur celui du netbook... En effet, FireFox utilise l'identifiant de l'écran (variable DISPLAY) pour savoir où ajouter son onglet. Or cette variable dans une session SSH n'est évidement pas le :0.0 dans lequel FireFox tourne, mais plutôt un localhost:11.0 lié au tunnel créé par SSH.

La "Solution" est donc de se dire que si FireFox est toujours sur mon écran de droite, autrement dit DISPLAY=:0, il suffit de faire un petit script qui va systématique ouvrir les URL sur cet écran en exporter la valeur de DISPLAY avant d'appeler FireFox

#! /bin/sh

export DISPLAY=:0
/usr/bin/firefox $1

Pour que Gnome utilise ce script, il ne reste plus qu'à lancer Préférences/applications préférées pour remplacer l'appel d'origine à FireFox par celui à notre script. Du coup toutes les applications Gnome ouvrent maintenant sur le bon firefox.

Il se peut que cela continue de coincer pour des raisons de sécurité. Pour régler cela, lancez en tant que root gdmsetup et dans l'onglet sécurité, cochez la case Autorisé la connexion uniquement si l'utilisateur possède son répertoire personnel. Au redémarrage de votre session sur la machine desktop, le problème devrait être réglé.

Faire causer FireFox avec l'aggregateur de nouvelles

Avec liferea est fournit un petit script, /usr/bin/liferea-add-feed qui fait normalement le boulot. Et pour l'ajouter à firefox, là aussi, la procédure c'est diablement simplifiée. Il suffit maintenant d'aller dans les préférences, onglet Applications, aller à Flux WEB et sélectionner Autres... puis le fameux script.

Maintenant cela marchera très bien si liferea est lancé directement sur le desktop, un peu moins s'il est affiché par le netbook. La raison en est que dans le second cas, le liferea lancé via ssh n'est pas connecté à dbus. Pour que cela fonctionne, il faut renseigner la variable DBUS_SESSION_BUS_ADDRESS qui contient la référence au serveur DBUS principal. Et le « problème » lorsque nous nous connectons via SSH, cette fameuse variable n'existe pas et du coup les applications lancées dans le SSH ne peuvent communiquer avec celles lancées dans la session gnome qui elles, ont cette variable.

Pour régler cela, nous allons commencer par créer un fichier /etc/X11/xinit.d/35export_dbus en y mettant le contenu suivant :

# to be sourced

echo DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS > ~/.ssh/environment
/etc/X11/xinit.d/35export_dbus

L'astuce ici est donc de renseigner au lancement de la session, ce fichier ~/.ssh/environment qui est utilisé par ssh pour nourrir l'environnement d'une nouvelle session. Mais pour que cela fonctionne, il faut modifier le fichier /etc/ssh/sshd_config pour ajouter la permission PermitUserEnvironment yes et redémarrer le serveur ssh.

Du coup, toute session SSH ouverte sur la machine desktop aura sa bonne variable DBUS et les applications pourront communiquer d'où qu'elles soient lancées.

Lancer X sur le portable à partir de la machine de bureau

Il n'est pas nécessaire, surtout si votre "écran externe" est une petite machine qui ne fait cela, de lancer toute l'artillerie Gnome. Vous pouvez très bien ne lancer que le serveur X11 avec dans ~/.xinitrc le strict minimum comme un openbox, fbpanel, etc.

Dans cette option, on aime bien l'idée de lancer ce serveur à la main à partir de la machine de bureau. Le seul "hic" c'est qu'un utilisateur ne peut "officiellement" pas lancer un serveur X, je donne ici le résultat pour que Google le mange :

gaston$ssh machine_esclave "startx" &
xauth: creating new authority file /home/yoran/.serverauth.9780
 
Authentication failed - cannot start X server.
Perhaps you do not have console ownership?
gaston$ 

L'astuce cette fois est d'autoriser une telle chose en modifiant, sur la machine esclave le fichier /etc/pam.d/xserver comme suite :

#%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_console.so
#auth required pam_permit.so
account required pam_permit.so

Maintenant vous pouvez lancer, via ssh, votre serveur X à distance et le nouvel écran devrait prendre vie et vous devez pouvoir y aller avec votre souris.

Conclusion

J'avais prévenu c'est du bricolage, mais un bricolage que j'utilise quotidiennement depuis plus de deux ans et qui marche très bien0. Et avouez que c’est fascinant ce que X11 et un peu d’huile de ou de permettent de faire ! Je ne voudrais pas jouer les trolls provoquant mais je vois mal ce genre de montage fonctionner avec Windows (sans Cygwin Wink.

Comments

Dab, le 24 January, 2008 - 22:37

Héhé en effet je suis l'un des intéressés Wink
Marrant ce truc, et qui de plus couplé avec un vnc complète bien la panoplie.
hmmmm ... ça va finir dans Zaurusfr, qu'en pense tu ?

malic (not verified), le 31 January, 2008 - 09:18

C'est une excellente idée mais j'imagine qu'il est impossible de glisser une fenetre des 2 premiers écrans vers le 3ème et inversement?

Ulhume, le 31 January, 2008 - 11:14

Non effectivement ce n'est pas possible.. pour l'instant Smiling

En fait dans le projet GPE il y a un outil qui s'appelle Teleport qui fait exactement ce travail, à savoir re-rooter une fenêtre d'un serveur sur un autre. Je n'ai pas trouvé de paquet pour la driva mais il semble qu'il y en ait sous debian/ubuntu.

Sinon il est possible d'utiliser le proxy de serveur XMove qui fait aussi ce travail là, je n'ai pas encore testé.

Maintenant, c'est pour cela que je ne colle que kmail, akregator et kopete sur cet écran, à savoir des choses que je ne suis jamais amené à bouger. Le seul problème était donc l'ouverture des URL.

Ulhume, le 24 January, 2008 - 23:13

Je pense que ça le ferait bien Smiling En plus c'est ultra-fluide et permet de modifier la distrib bcp plus rapidement qu'avec vnc ou le sytus. En plus le copier/coller du PC vers le zaurus et vice-versa, un bonheur Smiling

Dab, le 8 February, 2008 - 19:45

Un vrai plaisir que de te lire ...
J'ai appris plein de choses, merci
Sinon tu es fiévreux Ulhume ? Douter du choix Mandriva, t'approcher de Gnome ... va quand même pas se mettre au C maintenant ? Smiling

Dab, le 25 January, 2008 - 00:17

OK c'est dedans.
Là je bataille pour la supprssion de l'ipv6 et de l'irda comme tu me l'a suggéré... C'est tenace ces saloperies Smiling

Ulhume, le 25 January, 2008 - 09:12

Un peu oui Smiling J'avoue que ma méthode (suppression du module) est quelque peu.. sauvage Smiling

Ulhume, le 8 February, 2008 - 20:48

Venant de toi, cela me touche Big grin

Pour ce qui est Gnome, j'ai fais plus que m'en approché, je suis totalement immergé tu veux dire ! J'ai eu le syndrome "Longhorn"... J'ai essayé KDE4 une journée, et je me suis dit, cette direction là, non merci. Du coup, de la même maniè_ère que je suis passé à Longhorn, ça c'est fini en fin de journée par un magnifique urpme $(rmp -qa | grep kde) ...

Maintenant pour le C, j'en doute un peu, mais ceci dit tu n'as pas tord sur un point, Qt & KDE m'avait un peu écoeuré de développer pour le bureau tant le ticket d'entrée est cher. Tandis que là, je viens en 1/2 heure de récupérer/modifier/recompiler gnome-terminal pour le faire correspondre à mes besoins. J'ai du tenter 100 fois l'équivalent avec un élément de KDE en déclarant formait quasi systématiquement à la troisième gerbe d'insulte du compilateur... Du coup, ajouté des heures de vols qu'on a toi et moi avec les bidouillages d'applis Gtk because Zaurus, ça redonne envie de contribuer sur du natif.

Bref, 2008, année du changement, alors Debian, finalement, pourquoi pas Wink

Dab, le 8 February, 2008 - 22:40

Arrêtes j'en rougis Smiling
Je n'en suis pas à tripatouiller le code gtk, pas encors du moins ... j'attends le prochaine article "Gtk c'est facile" Wink
Ouai Debian c'est cool ! Avec un tel argument pas la peine de tergiverser Wink

Janusz (not verified), le 25 January, 2008 - 09:53

Très bon outils en effet. Même le presse papier (copier/coller) entre machines de système différents fonctionne.

Attention tout de même à ne pas prendre l'habitude de taper ses mots de passe par Synergy ; les informations circulent en claire sur le réseau. Un tunnel ssh peut corriger ce problème (voir dans la doc du site de Synergy).

Ulhume, le 10 February, 2008 - 08:38

Oui, là j'avoue que c'est le commentaire qui tue, je vais donc essayer un debian sous peu Wink

Ulhume, le 25 January, 2008 - 10:36

@janusz bonne remarque pour la sécurité mais c'est tout de même limité en terme de risque par le besoin d'avoir un écran physique, la machine est donc généralement dans nos pieds Wink

Pour le copier coller je l'avais marqué il me semble, je vais mettre cela plus en relief car c'est vraiment un des éléments qui rend la solution ultra-naturelle. Manquerait plus que le drag-n-drop Smiling

Armetiz (not verified), le 18 November, 2008 - 21:18

Coucou,
J'utilise synergy depuis une bonne année maintenant, et c'est du pure bonheur ! Surtout avec un pc portable, quand on arrive à la maison, meme pas besoin de station d'accueil à je ne sais pas combien d'euros pour avoir une souris supplémentaire, il suffit de brancher la prise réseau pour partager clavier/souris avec le fixe.

Par contre, je ne suis pas sur de comprendre l'intérêt de la déportation du X via SSH.
Tu dispose d'un serveur suffisamment puissant pour héberger plusieurs sessions graphiques, mais après ? Je n'arrive pas à saisir le croisement que tu fais.
Je me suis arrêté à synergy : partage de clavier/souris entre Mac OS/X - Linux - Windows... Et au fait que l'on pouvait démarrer une session graphique via le réseau. Mais le mix que tu fais avec les deux ?

Voilà, j'espère que c'est un peu moins obscure maintenant. Et la raison qui m'a fait mettre tout cela en tuto c'est que je commence à avoir des gens qui passe chez moi en me disant "euh, comment je fais la même chose" (coucou Ludo Wink. Donc ce "besoin" ne doit pas être si unique Smiling

Dab, le 26 June, 2008 - 10:27

Et hop un p'tit lien intéressant que je viens de voir passer sur Planete Libre : http://0pointer.de/blog/projects/mango-lassi.html ( http://www.atlas95.com/blog/2008/06/25/en-vrac-pulseaudio-51-pulseaudio-... )

Ulhume, le 26 June, 2008 - 12:17

Ca avait l’air sympa ce Mango-Lassi, mais… marche pas bien chez moi… Peut-être la faute au double twinview (ma machine A et ma machine B ont chacune 2 écrans en nvidia/twin) ?

- Sur la machine A (celle qui a clavier-souris), j’ai les préférences et je peux connecter la machine B mais la souris ne sort pas de l’écran de A pour aller sur B.

- Et sur la machine B, qui n’a ni clavier ni souris, il me claque une erreur lorsque je cherche à afficher les préférences :
(mango-lassi:6699): Gtk-CRITICAL **: gtk_window_present_with_time: assertion `GTK_IS_WINDOW (window)’ failed

Donc pas grand succès… Pourtant tout le monde se voit, les messages de connection s’affichent des deux côtés, c’est juste la souris qui ne semble pas désirer se balader…

Et pourtant, le plus étrange est que si je débranche la souris de A pour la brancher sur B, j’ai une souris qui apparaît sur A… Et qui ne va jamais sur B Smiling))) Là, là… ça devient assez surréaliste Smiling

Alors soit j’ai loupé une énorme marche, soit il va falloir laisser le produit un peu maturer Smiling

Synergy, lui, je l’utilise depuis des mois (depuis cet article en fait) et il marche très bien. La seule différence est qu’il n’utilise pas Avahi ce qui n’est pas d’un grand intérêt à mon sens pour des machines qui sont côte à côte par la force des choses. L’autre petite différence sont les messages à l’écran pour dire qui est connecté sur quoi, mais là aussi, le but est que ce soit connecté tout court, a la limite les messages me font prendre conscience que ce sont deux bécanes différentes alors qu’avec synergy je finis même par oublier ce “détail” tant je passe naturellement de l’une aux autres.

Enfin bon, on va voir comment ça va évoluer mais à première vue, synergy a encore une bonne longueur d’avance et je ne suis pas bien sur de comprendre l’intérêt d’un 3ième produit qui fait la même chose.

Ulhume, le 18 November, 2008 - 22:20

@Armetiz

L'intérêt de lancer les applications via SSH est que
1/ La machine n'a pas besoin d'être puissante.
2/ Je n'ai pas besoin d'y installer les applications que je veux utiliser sur "son" écran.
3/ Je n'ai pas besoin de paramétrer une application sur le netbook pour l'utiliser alors qu'elle l'est déjà sur mon PC principale.

Je peux par exemple ouvrir eclipse sur l'écran central, travailler, le fermer et le réouvrir sur l'écran de gauche pour avoir le code sous les yeux en écran histoire d'écrir un mail compliqué, en ayant fait la même chose dans l'autre sens avec evolution.

En fait pour mieux comprendre le concept, il faudrait imaginer un synergy qui me permette de transférer une fenêtre d'un écran à l'autre. Pour l'instant je ne peux pas, donc j'utilise la ligne de commande et SSH. J'ai dans l'idée un petit soft qui me permettrait de faire cela en re-rootant une fenêtre de manière plus ergonomique sur un autre serveur X. Cette application existe sous GPE (Gnome pour les PDA) mais demande à être portée sur Gnome tout court.

Tout cela tient donc au fait que j'ai pris l'habitude de travailler intensivement avec trois écrans. Synergy n'est donc pas là pour commander mon netbook, je n'utilise en réalité les applications du netbook que lorsque je suis en déplacement, mais pour étendre mon bureau principal et SSH me permet juste d'y relocaliser des applications.

Akrew, le 21 November, 2008 - 02:03

Bonjour Ulhume,

as-tu deja envisagé d'essayer MPX (Multi-Pointer X : http://wearables.unisa.edu.au/mpx/?q=mpx ) qui te permet d'utiliser, sur une seule machine, plusieurs pointeurs et claviers totalement independants à l'interieur d'une seule et même application ? J'essaie d'imaginer les possibilités qui seraient offertes s'il est possible de partager de la sorte la session graphique en combinant MPX avec synergy ? J'imagine déjà du codage en binôme sur un seul et même eclipse à partir de deux postes différent ...

Dup (not verified), le 18 November, 2008 - 23:48

Bon voilà un ptit article intéressant qui mèle deux concept connu mais qu'on ne pense pas forcément à marier Wink

Je retiens surtour le coup de DBUS_SESSION dans ssh, sinon oui synergy est un outil qui m'a vraiment épaté et réactif.

Bravo pour cet article, bon je retoune voir ton ldap il me faut l'option pour passer le password de maillon en maillon Sticking out tongue

Dab, le 26 June, 2008 - 16:50

Je dois te dire que je n'ai même pas testé (zaurus au repos en ce moment), mais j'aimais bien l'idée d'un transfert de la souris ET du son avec pulseaudio.
Sinon c'est vrai que si son seul apport est l'affichage de popup je vais freiner des 4 fers.
Un surcouche à synergy le fait aussi semble-t-il : http://code.google.com/p/gnome-synergy/source/checkout

Ulhume, le 26 June, 2008 - 16:52

Ahbé ça je connaissais pas, merci Smiling

Ulhume, le 18 November, 2008 - 23:52

@Dup comment ça "mon" ldap ?!?

Dup (not verified), le 19 November, 2008 - 02:02

Erf miss, article sur pam, ldap c'est ce que je cherche à faire Wink

Ulhume, le 19 November, 2008 - 09:24

@Dup ah ok, je comprend mieux Smiling

VV666 (not verified), le 19 November, 2008 - 10:07

Super astuce ! J'aime se genre de bricolage Big grin

erdnaxeli (not verified), le 20 November, 2008 - 17:21

Excellent ce truc ! Faudra que je teste avec mon eeePC.
Par contre quand il faut rediriger Xorg via SSH je n'ai pas tout compris. Si j'ai bien suivi on redirige le port de X11 vers le netbook ce qui fait que quand on lance via ssh une application depuis le netbook celle-ci s'affiche directement sur l'écran du netbook alors qu'elle tourne sur l'autre PC. Quel est le port à rediriger ? Et si j'ouvre un nautilus depuis le netbook (nautilus tournant sur l'autre PC) verrais-je les fichiers du netbook ou de l'autre PC (je penche pour le deuxième solution) ?
Autre question : à ton avis, quel est le vitesse de réseau nécéssaire pour déporter xorg (je demande ça parce que je suis en wifi et assez loin du routeur) ?

Ah oui aussi je n'ai pas saisi l'intêret de lancer X sur le portable à partir de la machine de bureau.

Ulhume, le 20 November, 2008 - 17:34

@erdnaxeli

J'ai essayé d'expliquer le principe le mieux possible ici : http://artisan.karma-lab.net/node/82

Pour prendre le cas netbook --SSH---> PC :
- Le port (automatique) redirigé par SSH est le NetBook:6000 généralement qui mappé sur généralement le localhost:6010 .

- Ce qui fait qu'au sein de la session SSH sur PC, le serveur X utilisé est DISPLAY=localhost:10.

Donc c'est bien le deuxième cas, l'application tourne sur le PC, mais utilise un faux display qui est forwardé par ssh sur le vrai serveur X du netbook.

Pour le débit je n'ai pas fait de tests, je suis en lan gigabit donc très mauvais juge. Mais si ton débit est trop faible, je te conseille de passer soit par NX, soit par LBX.

Pour l'intérêt de lancer X à partir du PC de bureau correspond au cas de figure où l'on n'utilise pas un portable, mais une machine fixe, généralement un petit serveur sans clavier ni souris. Lancer le serveur X automatiquement permet donc d'automatiser "l'allumage" du 3ième écran sans avoir à saisir quoi que ce soit.

Ulhume, le 21 November, 2008 - 02:20

@Akrew Tu connais ma devise sur "XP ou comment prendre deux mauvais développeurs pour en faire un qui soit à peine médiocre" Wink

Plus sérieusement non, je n'ai jamais envisagé car je n'en ai jamais eu le besoin, personne d'autre que moi n'a le droit de touche à ma machine Smiling

Akrew, le 21 November, 2008 - 03:02

@Ulhume Ha Ha ...je la retiens la devise, non pas que je sois a peine médiocre mais parce que je vais devoir former deux developpeurs pour ME remplacer MOI TOUT SEUL sur une application existante Wink Tongue ça aurait dû flatter mon ego

J'emprunte le concept de développement en binôme de méthodes tels que l'extrême programming, non pas que j'en sois un grand fans mais parce que dans certains cas ça peut s'avérer très utile pour expliquer ou former quelqu'un sans lui arracher la souris des mains toutes les 30 secondes Wink , tout en restant assis sagement à sa place.
J'imagine deja des futures séances de coloriages de Mickey dans Gimp avec mes neveus et nièces.
Des corrections de document Openoffice faites simultanément avec un Collaborateur sans qu'aucun de nous ne se déplace ... etc...

Rêve, science fiction, réalité ?

Ulhume, le 21 November, 2008 - 09:23

Ah je croyais que tu la connaissais déjà. J'avoue avoir du mal avec une méthode qui a le nom d'un planche de surf. Maintenant pour ce qui est d'emprunter des trucs je suis d'accord, j'en ai fauché aussi pas mal, mais bon, à chaque fois que je vois les vrais les durs en "standing" réunion, j'ai envie de leur coller des roes de bure à capuchon et un cierge à chacun, j'sais pas pourquoi Smiling

Pour revenir mpx, dis moi si tu testes avec succès, ça m'intéresse malgré tout. Mais c'est suffisamment simple dans l'idée pour que ce ne soit pas de la sf.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • To highlight piece of code, just surround them with <code type="language"> Your code &tl;/code>>. Language can be java,c++,bash,etc... Everything Geshi support.
  • Lines and paragraphs break automatically.
  • Textual smileys will be replaced with graphical ones.
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options

User login
Recent comments