En effet, ça a l'air totalement inutile, ton truc, donc absolument indispensable.
e_esprit
Ah ca peut etre sympa...
Tu nous tiens au courant ?
246tNt
Comme j'utilise principalement que des terminal ( pour vim, pour programmer ), je me suis dit que j'essaierait bien un truc :
J'aurait une fenetre en full screen dans laquelle je peut faire apparaitre plusieurs autres fenetres qui sont des terminaux et avec l'open GL, je peut gerer la vrai transparence ( quand un terminal est au dessus de l'autres ), quand j'en fait passé un a l'arriere plan, on pourrait le voir "s'enfoncer" un peu comme dans de l'eau avec des petit effets graphique, ... Bref plein de truc qui servent pas a grand chose c juste pour le fun ;)
En fouillant les source de rxvt j'ai trouvé ce que je cherchait :
Code :
setsid()
setpgid( 0,0 );
setpgrp();
Et la ca marche. Mais j'ai encore rien a montrer j'ai pas encore fait la partie graphique ;)
e_esprit
Je peux pas t'aider, mais je vois pas bien l'interet d'un terme openGL...
Alors j'aimerais bien que tu detailles si c'est possible...
246tNt
Voila, j'essaye de faire un petit prog qui m'afficherait un terminal ( comme xterm quoi ) avec de l'opengl et des truc joli.
Ce que je fait.
J'ouvre un couple /dev/pty /dev/tty. Je fork.
Dans le child :
Code :
close( fd_pty );
dup2( fd_tty, FILENO_STDIN );
dup2( fd_tty, FILENO_STDOUT );
dup2( fd_tty, FILENO_STDERR );
exec( "/bin/sh", argv );
Dans le parent, je close stdin,out,err et fd_tty. J'attend un evenement ( frappe clavier ou arriver d'un char sur fd_pty ). J'affice ce qui vient de fd_pty et j'envoie les caractère au clavier sur fd_pty. Ca marche assez bien sauf :
- Les car special je les gère pas encore ( couleur position ) mais ca je sais comment faire.
- Certain programme ( genre 'su' ), le prompt du password s'affiche pas dans la fenetre que je gere mais dans la fenetre ou le parent a été lancé ...